神秘地自己设定的饼干


Cookie that mysteriously sets itself

当满足第一个if语句的条件时,cookie "c2"也被设置。我真的很挠头。什么好主意吗?仅供参考,这是本页上处理cookie的唯一代码。

<?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'];
?>

This:

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

将用这些值重置全局$_COOKIE数组。但是页面重新加载仍然会再次填充,因为cookie仍然有效并存储在浏览器中。

为了从浏览器中删除它们,您需要:

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