我正在看一些关于如何设置cookie的PHP教程。我注意到在FF4和IE9上成功设置了cookies,但在Chrome (11.0.696.60)中没有设置。PHP文件由XAMPP (localhost)提供。
我尝试了w3schools中的示例:
<?php
setcookie("user", "Alex Porter", time()+3600);
?>从this site (对于本地主机环境):
<?php
setcookie("username", "George", false, "/", false);
?>提前谢谢。
发布于 2011-05-01 23:41:13
禁用IP地址和localhost的cookies是设计决策。另请参阅:https://code.google.com/p/chromium/issues/detail?id=56211
解决此问题的方法包括:
cookie设置本地域(例如,编辑cookie以使用127.0.0.1 localhost.com).
/etc/hosts时指向a空域值。例如,在PHP中
setcookie(
$AUTH_COOKIE_NAME,
$cookie_value,
time() + cookie_expiration(),
$BASE_DIRECTORY,
null,
false,
true
);这里的值null表示不应该设置该域。
注意:不设置域将阻止cookie对子域可见。
发布于 2013-04-18 17:06:38
域应等于NULL。
应该给&一个截止日期。即,
setcookie("username", "George", time() + (20 * 365 * 24 * 60 * 60), "/", NULL);发布于 2011-05-02 11:49:25
看起来这可能是Chrome的“开发者工具”功能的一个bug。我一直在尝试设置cookie (但不是检索它),但它在另一个浏览器上工作。如果你信任FF的cookie查看部分,或者找到IE的cookie文件,它就可以工作。在Chrome中,我依赖于“开发人员工具”的"Cookies“部分(开发人员工具>资源> Cookies)。
我决定更进一步,使用WHT (posted by Natcoweb)中的脚本实际输出cookie的值:
<?php
setcookie('test', 'This is a test', time() + 3600);
if(isset($_COOKIE['test'])){
$cookieSet = 'The cookie is ' . $_COOKIE['test'];
} else {
$cookieSet = 'No cookie has been set';
}
?>
<html>
<head><title>cookie</title></head>
<body>
<?php
echo $cookieSet;
?>
</body>
</html>而且它可以在所有浏览器上运行,包括Chrome (我得到的是:“cookie is This is a test")!然而,Chrome的cookie检查器继续显示“此站点没有cookie”。我还设法找到了存储在Chrome设置中的cookie列表(选项>内容设置>所有cookie和站点数据),最终找到了cookie(需要检查的步骤更多,但至少比开发人员工具更准确)。
结论: cookies已经设置好了,但是Chrome的开发工具由于某些原因看不到它。
https://stackoverflow.com/questions/5849013
复制相似问题