How would I test if a cookie is set using php and if it's not set do nothing

前端 未结 5 1503
再見小時候
再見小時候 2021-02-07 04:06

I\'ve tried

 $cookie = $_COOKIE[\'cookie\'];

if the cookie is not set it will give me an error

PHP ERROR
Undefined index: cook         


        
5条回答
  •  一生所求
    2021-02-07 04:24

    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.

提交回复
热议问题