【发布时间】:2017-01-06 20:18:09
【问题描述】:
我对 cookie 的值有疑问,此问题仅在使用 Chrome 时发生,而不是在 Firefox 或 IE 上。
我有以下代码,每次用户登录时都会运行:
function randomUserKey($length)
{
$random = openssl_random_pseudo_bytes($length);
$key = bin2hex($random);
return $key;
}
/*SET COOKIE*/
$UserKey= randomUserKey(32);
$expiration= time() + 365*24*3600;
setcookie('CookieID', $UserKey, $expiration, NULL, NULL);
//testing the value of $UserKey in the console
echo'<script type="text/javascript">console.log("'.$UserKey.'");</script>';
/************/
现在,如果我将控制台中 $UserKey 的值与响应标头中 cookie 的值进行比较,则它在 FF 和 IE 中的值是 X。这就是我想要的。
但是在 Chrome 上,控制台中的值是 X,响应头中的值是 Y。如果我查看请求头,cookie 是正确的值:X。
在 FF 或 IE 上,Request Header 中的 cookie 作为先前创建的 cookie 的值(用户的先前连接)。这是正确的行为,我所期待的。用户自带 cookie > 我检查值 > 已验证 > 用户已登录并获取新 cookie。
所以我在 Chrome 上肯定有问题,但我不知道它是从哪里来的。
感谢您提供的任何帮助,如果需要,我可以提供更多代码。
【问题讨论】:
-
stackoverflow.com/questions/5849013/… 用这个程序试过一次。
-
我看了主题,但你是什么意思?我应该指定我不在本地主机上,并且我对 cookie 到期日期没有问题。
标签: php google-chrome cookies header setcookie