PHP-php setcookie有时会在ie下失效
做登陆时,会记录用户的信息在cookie中,setcookie在指定域中,有时setcookie会失效,中不下cookie,为什么
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
做登陆时,会记录用户的信息在cookie中,setcookie在指定域中,有时setcookie会失效,中不下cookie,为什么
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(3)
在setcookie时如果没有指定 setcookie() 的第四个参数(合法路径参数),默认会把当前目录作为合法路径,所以导致Cookie无效,因为所设置的 cookie 路径不同。
IE当没有指定路径时,会覆盖当前 IP 下的同名Cookie变量,而FireFox比较严格,导致又重新建了个变量
IE下,如果没有设置setcookie函数中的path和domain参数,那么可能会有cookie不能生效的事情。这真不是setcookie的原因,尽可能规范自己的代码,将函数参数的设置为正确可用的值(譬如path设置为’/',domain设置为’.127.0.0.1′)
<?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]生成失败。
不知道你遇到的是神马问题,希望可以帮到你。