【发布时间】:2014-06-05 17:14:07
【问题描述】:
我开发了一个两步验证登录,它使用 cookie 来检查设备是否已经过验证:此 cookie 包含一个唯一的 ID 和一个随机密码,每次访问设备时都会更改。 为了进行更新,我使用了这个 php 代码
setcookie('nameofthecookie', '', time()-600,"/");
setcookie('nameofthecookie', $newcookiecontent, time()+2629743,"/");
这在大多数浏览器上都能完美运行,但在某些安卓浏览器上却不行:事实上,使用它们,cookie 不会更新。
我尝试做的事情:
-
仅使用创建 cookie
setcookie('nameofthecookie', $newcookiecontent, time()+2629743,"/");
并且它有效;
-
仅使用删除 cookie
setcookie('nameofthecookie', '', time()-600,"/");
并且它有效。
谁能给我一个解决方案?
【问题讨论】:
-
不要使用“接近”的相对时间来使 cookie 过期。您取决于用户的时钟是否相对准确。始终使用“遥远”的时间,例如时间 = 1(1970 年 1 月 1 日上午 00:00:01)。如果任何人的时间已经过得太远以至于他们已经回到了 70 多岁,那么他们应该没有正常工作
-
感谢您的评论,我正在按照您的建议更新我的代码。所以正确的代码是 setcookie('nameofthecookie', '', time(1),"/"); ?