Php 神秘的饼干
当满足第一条if语句的条件时,也会设置cookie“c2”。我真是抓狂。有什么想法吗?仅供参考,这是此页面上处理cookie的唯一代码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
<?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是用户可读的,用户可以修改。一旦用户意识到这一点(他们会),他们将创建cookiesc2
,直到c99
,并获得他们的奖品或此应用程序的任何用途。使用会话在服务器端存储特定于用户的数据。//reset cookies“只设置PHP超全局,不清除实际的Cookie。Cookiec2
依赖于第二条if
语句,该语句与第一条if
语句无关(它不在else
块中)。