php网站程序里setcookie在IE浏览器不能用,火狐浏览器可以浏览的问题
最近做一项功能的时候存在疑惑,在IE浏览器下(没有做具体测试,可能是IE的各个版本,我使用的是IE8),php5.2.13版本存在的问题,如果没有设置setcookie函数中的path和domain参数,那么可能会有cookie不能生效的事情发生。其实这并不是PHP的问题,而是IE浏览器自身的问题,在firefox浏览器下用firecookie来查看的时候,cookie生效了,可是用IE cookieview看的时候,IE下是没有的。
解决办法:尽可能规范自己的代码,将函数参数的设置为正确可用的值(譬如path设置为’/’,domain设置为’.127.0.0.1′)
via:Walleve
IE、Firefox PHP设置cookie的区别
今天利用 Cookie 做网站的用户登录,经过调试,用
setcookie("username", "username", time()+1000,"/php100/");
等储存用户的登录信息,然后利用
setcookie("username", "", time()-3600);
做 退出,在IE下测试没有任何问题。既然做网站,就要兼容尽可能多的浏览器,呵呵。于是在 Firefox 中测试,登陆一切正常,当 推出时,遇到了麻烦。怎么也不会退出,用户总是在登录状态。于是查看了 IE、Firefox 中cookie记录的区别,经过测试,才恍然大悟。
原来如果没有指定 setcookie() 的第四个参数(合法路径参数),默认会把当前目录作为合法路径,而我测试的路径为:http://www.awzsr.com/php/rss2fla/data/log.php ,所以导致登陆和退出时 所设置的 cookie 路径不同。
IE比Firefox要人性化,呵呵,当美指定路径时,会覆盖当前 IP 下的同名Cookie变量,而FireFox比较严格了,导致又重新建了个变量……
现在觉得垄断在某些方面也不是什么坏处,如果就 IE 一个浏览器,就不用这么麻烦了……哈哈……