dqq46733 2015-10-18 17:10
浏览 41
已采纳

神秘地设置自己的Cookie

When the condition of the first if statement is met, the cookie "c2" is also set. I'm really scratching my head here. Any ideas? FYI this is the only code that handles cookies on this page.

<?php
    //set cookies on correct answers
    if ( $_POST['answer-1'] == 'rob' ) :
        $c1 = 'correct';
        setcookie('c1', 'correct');
    endif;
    if ( $_POST['answer-2'] == 'blue' ) :
        $c2 = 'correct';
        setcookie('c2', 'correct');
    endif;

    //reset cookies
    if ( !empty($_POST['reset']) ) :
        $_COOKIE['c1'] = ''; 
        $_COOKIE['c2'] = '';
    endif;

    $c1c = $_COOKIE['c1'];
    $c2c = $_COOKIE['c2'];
?>
  • 写回答

1条回答 默认 最新

  • dongshi1424 2015-10-18 17:20
    关注

    This:

    //reset cookies
    if ( !empty($_POST['reset']) ) :
        $_COOKIE['c1'] = ''; 
        $_COOKIE['c2'] = '';
    endif;
    

    will reset the global $_COOKIE array with these values. But a page reload will still populate that again, as the cookies are still valid and stored in the browser.

    In order to also delete them from the browser, you need:

    //reset cookies
    if ( !empty($_POST['reset']) ) :
        $_COOKIE['c1'] = ''; 
        $_COOKIE['c2'] = '';
        setcookie('c1', '', -3600);
        setcookie('c2', '', -3600);
    endif;
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?