【问题标题】:Is it possible to check if user has cookies enabled in php without a page reload?是否可以检查用户是否在 php 中启用了 cookie 而无需重新加载页面?
【发布时间】:2011-01-11 15:19:59
【问题描述】:

例如,像下面这样的代码似乎不起作用,即使实际设置了 cookie,直到我刷新页面。

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

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

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

【问题讨论】:

  • 你可以用javascript来解决这个问题吗?

标签: php cookies


【解决方案1】:

您无法通过检查设置值立即检查其是否存在 cookie,因为 cookie 直到下一次往返客户端时才会发送到浏览器。

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

还有其他解决方法。

【讨论】:

    【解决方案2】:

    我想到的想法是在页面加载后执行 javascriptcheck,然后使用 ajax 将计数器写入数据库或您希望存储的任何位置。 PHP 是服务器端,而 cookie 存储在客户端,因此像您尝试的那样进行检查将是一个问题。

    【讨论】:

      猜你喜欢
      • 2012-02-26
      • 2020-03-12
      • 1970-01-01
      • 2011-10-03
      • 2014-11-13
      • 2012-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多