PHP-php setcookie有时会在ie下失效

发布于 2017-02-03 05:42:02 字数 72 浏览 1170 评论 3

做登陆时,会记录用户的信息在cookie中,setcookie在指定域中,有时setcookie会失效,中不下cookie,为什么

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

归属感 2017-10-12 05:08:54

在setcookie时如果没有指定 setcookie() 的第四个参数(合法路径参数),默认会把当前目录作为合法路径,所以导致Cookie无效,因为所设置的 cookie 路径不同。

IE当没有指定路径时,会覆盖当前 IP 下的同名Cookie变量,而FireFox比较严格,导致又重新建了个变量

甜柠檬 2017-09-18 08:40:31

IE下,如果没有设置setcookie函数中的path和domain参数,那么可能会有cookie不能生效的事情。这真不是setcookie的原因,尽可能规范自己的代码,将函数参数的设置为正确可用的值(譬如path设置为’/',domain设置为’.127.0.0.1′)

浮生未歇 2017-03-21 11:36:46

<?php
setcookie(“cookie[one]“, “cookieone”,time()+36000,”/”);
setcookie(“cookie[two]“, “cookietwo”,time()+36000,”/”);
setcookie(“cookie[three]“, “cookiethree”, time()+36000,”/”,”.65.la”);
// 页面重新
if (isset($_COOKIE["cookie"])) {
foreach ($_COOKIE["cookie"] as $name => $value) {
$name = htmlspecialchars($name);
$value = htmlspecialchars($value);
echo “$name : $value <br />n”;
}
}
?>
上面代码,在chrome和firefox下可以生成三个cookie:
cookie[one]、cookie[two]、cookie[three]
在IE下,只能生成cookie[one]、cookie[two]两个cookie,第三个因为指定了”.65.la”,导致cookie[three]生成失败。
不知道你遇到的是神马问题,希望可以帮到你。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文