如何解决setcookie不会在Google Chrome浏览器中设置cookie
| 我正在阅读一些有关如何设置cookie的PHP教程。我注意到Cookie已在FF4和IE9上成功设置,但是未在Chrome(11.0.696.60)中设置。该PHP文件由XAMPP(localhost)提供。 我尝试了w3schools的示例:<?php
setcookie(\"user\",\"Alex Porter\",time()+3600);
?>
并且从此站点(对于localhost环境):
<?php
setcookie(\"username\",\"George\",false,\"/\",false);
?>
提前致谢。
解决方法
禁用IP地址和“ 2”的cookie是一项设计决定。另请参阅:https://code.google.com/p/chromium/issues/detail?id=56211
解决此问题的方法包括:
设置一个本地域(例如,编辑
/etc/hosts
以使用127.0.0.1 localhost.com
)。
使用http://myproject.localhacks.com/(指向127.0.0.1)。
设置Cookie时,请使用一个空的域值。
例如,在PHP中:
setcookie(
$AUTH_COOKIE_NAME,$cookie_value,time() + cookie_expiration(),$BASE_DIRECTORY,null,false,true
);
此处的值“ 6”表示不应设置域。
注意:未设置域会阻止cookie对子域可见。
,域应等于NULL。
&应该指定有效期限。即
setcookie(\"username\",\"George\",time() + (20 * 365 * 24 * 60 * 60),\"/\",NULL);
,Chrome的“开发人员工具”功能似乎是一个错误。一直以来,我一直在尝试设置Cookie(但未检索它),并且它与其他浏览器一起使用。假设您信任FF的cookie查看部分或为IE找到cookie的文件,它就可以工作。在Chrome浏览器中,我依靠的是“开发人员工具”(“开发人员工具”>“资源”>“ Cookies”)的“ Cookies”部分。
我决定更进一步,并使用WHT中的以下脚本(由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在内的所有浏览器上运行(我得到:\“ cookies is This is a test \”)!但是,Chrome的Cookie检查器会继续显示“此网站没有Cookie”。我还设法找到了存储在Chrome设置中的Cookie列表(“选项”>“高级选项”>“内容设置”>“所有Cookie和网站数据”),最后找到了Cookie(检查步骤更多,但至少比开发人员工具更准确) )!
结论:正在设置cookie,但是Chrome的开发工具由于某种原因无法看到它。
,您检查系统日期了吗?
$日期
如果是旧时光,那你应该改变时间
$ date -s 2007.04.08-22:46 + 0000
我希望这有帮助。我有同样的问题,它的工作
,我尝试如下时遇到了同样的问题
setcookie(\"gb_role\",base64_encode($_SESSION[\"role\"]),time()+60*60*24*30);
当我将其更改为以下
setcookie(\"gb_role\",time()+2592000);
我工作得很好,区别在于我只是做了time()+一些数值工作,而不是time()+ 60 * 60 * 24 * 30。我知道那没有道理,但确实有效。
,这段代码适用于IE,Chrome和FF
if($_COOKIE[\'language\']==NULL || empty($_COOKIE[\'language\']))
{
$dirname = rtrim(dirname($_SERVER[\'PHP_SELF\']),\'/\').\'/\';
$expire=time()+31536000;
setcookie(\"language\",\"English\",$expire,\"$dirname\",\"mydomain.com\",false);
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。