是否有可能检查用户是否在没有页面重新加载的情况下在PHP中启用了cookie?

时间:2011-01-11 07:00:44

标签: php cookies

例如,在刷新页面之前,即使实际设置了cookie,以下代码似乎也不起作用。

setcookie("cookies","1", time()+ 86400,"/" ); 
if (!isset($_COOKIE["cookies"])) {  
   $cookies = "foobar";
}

我试图在我的网站上编写一个准确的“唯一用户”计数器,该计数器的工作原理是检查用户是否在计算机上设置了cookie,如果他们没有,它会+1,并设置曲奇饼。这里的问题是,没有cookie的用户每次加载页面时只会+1,所以我自然只想为那些启用了cookie的人运行此代码。

然而,上面的cookie检查器将始终在第一页加载时返回$ cookies =“foobar”,无论用户是否已打开cookie或关闭。因此,如果用户只是查看该网站的1页,他们的访问将不会被计数器注册。

2 个答案:

答案 0 :(得分:1)

您无法通过检查设定值立即检查其是否存在Cookie,因为在下次往返客户端之前,Cookie不会发送到浏览器。

您可以做的一件事是在页面上设置cookie,然后在图像脚本上进行检查。

还有其他解决方法。

答案 1 :(得分:0)

我想到的想法是在加载页面后执行javascriptcheck,然后使用ajax将计数器写入数据库或者您希望存储它。 PHP是服务器端,而cookie存储在客户端,所以像你正在尝试的那样进行检查会成为一个问题。