【发布时间】:2015-07-27 04:56:03
【问题描述】:
我有一个 cookie,用于识别用户是否是第一次打开页面。我有它,所以当它是第一次时,如果尚未设置 cookie,则会设置它。每次用户第二次或第三次尝试加载页面时,代码都会检查 cookie 是否已设置并执行某些操作..
但是,由于某种原因,在第二个页面加载时,即使它是在我的 chrome 浏览器中创建的,代码也找不到 cookie
<?php
$canvas_id = $_GET["canvas_id"];
if (!isset($_COOKIE[$canvas_id]))
{
setcookie($canvas_id, "NO", time()+3600, '/');
}
else
{
//do something...
} ?>
<!DOCTYPE HTML>
<html>
<body>
<?php
if (isset($_COOKIE[$canvas_id]))
{
echo ("HELLO");
}
?>
</body>
</html>
我有它,以便创建的 cookie 是从前一页传递的。我尝试将 cookie 值更改为硬编码变量并且它可以工作。示例:
<?php
if (!isset($_COOKIE["test"]))
{
setcookie("test", "NO", time()+3600, '/');
}
else
{
//do something...
} ?>
<!DOCTYPE HTML>
<html>
<body>
<?php
if (isset($_COOKIE["test"]))
{
echo ("HELLO");
}
?>
</body>
</html>
有人能解释一下为什么第一个示例代码不起作用,而第二个示例代码起作用吗?
非常感谢
【问题讨论】:
-
您确定该用户每次通过 GET 检索到的变量都相同吗?即用户第一次、第二次和第三次访问该页面时的url是什么?
-
通过 GET 得到的变量可能每次都不一样。我想让它创建一个新的 cookie,如果该 cookie 不存在,如果具有变量名称的 cookie 已经存在,做一些事情......
-
请查看我更新的答案。希望你现在能明白你的第一个 sn-p 中发生了什么。
标签: javascript php cookies