I\'ve tried
$cookie = $_COOKIE[\'cookie\'];
if the cookie is not set it will give me an error
PHP ERROR
Undefined index: cook
Depending on your needs.
// If not set, $cookie = NULL;
if (isset($_COOKIE['cookie'])) { $cookie = $_COOKIE['cookie']; }
or
// If not set, $cookie = '';
$cookie = (isset($_COOKIE['cookie'])) ? $_COOKIE['cookie'] : '';
or
// If not set, $cookie = false;
$cookie = (isset($_COOKIE['cookie'])) ? $_COOKIE['cookie'] : false;
References:
Try this:
$cookie = isset($_COOKIE['cookie'])?$_COOKIE['cookie']:'';
//checks if there is a cookie, if not then an empty string
Example not mentioned in responses: Say you set a cookie for 60 seconds if conditions are right :
if ($some_condition == $met_condition) {
setcookie('cookie', 'some_value', time()+ 60, "/","", false);
}
Technically we need to check that it's set AND it's not expired or it will throw warnings etc.. :
$cookie = ''; //or null if you prefer
if (array_key_exists('cookie', $_COOKIE) && isset($_COOKIE['cookie'])) {
$cookie = $_COOKIE['cookie'];
}
You would want to check in a way that ensures that expired cookies aren't used and it's set, the above example could obviously not always set the cookie etc.. We should always account for that. The array_key_exists is mainly their to keep warnings from showing up in logs but it would work without it.
Use isset to see if the cookie exists.
if(isset($_COOKIE['cookie'])){
$cookie = $_COOKIE['cookie'];
}
else{
// Cookie is not set
}
You can use array_key_exists for this purpose as follows:
$cookie = array_key_exists('cookie', $_COOKIE) ? $_COOKIE['cookie'] : null;