Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 神秘的饼干_Php_Cookies - Fatal编程技术网

Php 神秘的饼干

Php 神秘的饼干,php,cookies,Php,Cookies,当满足第一条if语句的条件时,也会设置cookie“c2”。我真是抓狂。有什么想法吗?仅供参考,这是此页面上处理cookie的唯一代码 <?php //set cookies on correct answers if ( $_POST['answer-1'] == 'rob' ) : $c1 = 'correct'; setcookie('c1', 'correct'); endif; if ( $_POST['answer

当满足第一条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'];
?>

这是:

//reset cookies
if ( !empty($_POST['reset']) ) :
    $_COOKIE['c1'] = ''; 
    $_COOKIE['c2'] = '';
endif;
将使用这些值重置全局
$\u COOKIE
数组。但是页面重新加载仍然会再次填充,因为cookie仍然有效并存储在浏览器中

要同时从浏览器中删除它们,您需要:

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

射击我错了。当我更改cookie的名称时,也会发生同样的行为。当然,您在尝试之间清除了浏览器中的cookie?是的。这就是//reset cookies作为旁注所做的-
setcookie('c1','correct')
-是的,你不想这样。Cookie是用户可读的,用户可以修改。一旦用户意识到这一点(他们会),他们将创建cookies
c2
,直到
c99
,并获得他们的奖品或此应用程序的任何用途。使用会话在服务器端存储特定于用户的数据。//reset cookies“只设置PHP超全局,不清除实际的Cookie。Cookie
c2
依赖于第二条
if
语句,该语句与第一条
if
语句无关(它不在
else
块中)。