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

前端 未结 5 1516
再見小時候
再見小時候 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:18

    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:

    • isset()
    • ternary operator (?)
    0 讨论(0)
  • 2021-02-07 04:20

    Try this:

     $cookie = isset($_COOKIE['cookie'])?$_COOKIE['cookie']:'';
     //checks if there is a cookie, if not then an empty string
    
    0 讨论(0)
  • 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.

    0 讨论(0)
  • 2021-02-07 04:32

    Use isset to see if the cookie exists.

    if(isset($_COOKIE['cookie'])){
        $cookie = $_COOKIE['cookie'];
    }
    else{
        // Cookie is not set
    }
    
    0 讨论(0)
  • 2021-02-07 04:34

    You can use array_key_exists for this purpose as follows:

    $cookie = array_key_exists('cookie', $_COOKIE) ? $_COOKIE['cookie'] : null;
    
    0 讨论(0)
提交回复
热议问题