Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

$_COOKIE['cookiefoo'], try to get a cookie

I'm newbie with webapps and PHP.

I'm trying to get a cookie that it's not created yet, I mean, when I try to load a page that looks for a non-existent cookie I get an error, I tried to get rid of this with a try/catch but not success. This this the code I'm trying:

try{

    $cookie =  $_COOKIE['cookiefoo'];

    if($cookie){

          //many stuffs here
    }
    else
        throw new Exception("there is not a cookie"); 
}
catch(Exception $e){

}

How can I achieve this, any ideas, it would be appreciated it.

like image 947
Felix Avatar asked May 25 '10 14:05

Felix


1 Answers

Use isset to prevent an any warnings or notices from happening if the key is non-existent:

if(isset($_COOKIE['cookiefoo']) && !empty($_COOKIE['cookiefoo'])) {
    // exists, has a value
    $cookie =  $_COOKIE['cookiefoo'];
}

The same can be done with array_key_exists, though I think isset is more concise:

if(array_key_exists('cookiefoo', $_COOKIE) && !empty($_COOKIE['cookiefoo'])) {
    // exists, has a value
    $cookie =  $_COOKIE['cookiefoo'];
}
like image 128
karim79 Avatar answered Nov 15 '22 00:11

karim79