if语句-PHP检查cookie值以获取响应,response获胜';清除cookie后不会恢复


if statement - PHP checks cookie value for response, Response won't revert back after cookie is cleared

所以我搜索w3schools和这个好网站已经有一段时间了,但我不明白这一点。

我有一个脚本,在加载浏览器时在用户会话中创建一个cookie,另一个脚本将检查所述cookie的值,并根据值用2个echo响应。

创建cookie的脚本是:

<?php
$cookie_name = "CTF";
$cookie_value = "ChangeThis";
if(!isset($_COOKIE[$cookie_name])) {
setcookie($cookie_name, $cookie_value, time() + 86400, "/", NULL);
}
?>

我的IF值检查如下:

<?php
if($_COOKIE[$cookie_value] = "CTF") {
    echo "Congratulations. Your token code is 4HeWPzK63Lf5NkGS";
    } else { 
    echo "Your cookie is not set yet.";
    }
?>

代码有效,当cookie更改为CTF时,它会回显正确的行。然而,当我删除cookie并刷新页面时,实际上是将cookie重置回"ChangeThis"的值,第一个回声仍然出现在页面上。

有人能给我指正确的方向吗?

问题在于您的if条件。您已使用=而不是==。您正在指定值,而不是进行比较。该条件检查分配是否成功。您需要的是以下声明:

if($_COOKIE[$cookie_name] == "CTF") 

此外,cookie值不是"CTF",这是cookie名称,您应该将其与设置为的值进行比较。