所以我搜索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名称,您应该将其与设置为的值进行比较。