Home  >  Article  >  Backend Development  >  setcookie的问题

setcookie的问题

WBOY
WBOYOriginal
2016-06-23 14:03:391008browse

setcookie('uid', $id);

1.如果第三参数不传,是不是就是退出浏览器cookie就失效?

2.我用jquery的$ajax调用php,php里执行了setcookie('uid', $id, $cookietime, '/', '.xxx.net', 0);
在$ajax success里reload了页面,为什么取不到cookie?
而且在%temp%\..\Temporary Internet Files目录下也看不到对应网站的cookie文件。


回复讨论(解决方案)

是我服务器时间的问题。
现在好了。
另外问下。
我用setcookie('uid');删除cookie
往复几次。判断就会失效了。这是什么情况?

IE8有这个问题。。360Chrome没有问题。。

setcookie('uid',null)

统一一下,不用这个setcookie('uid');
setcookie("uid", "", time() - 3600);比较标准

统一一下,不用这个setcookie('uid');
setcookie("uid", "", time() - 3600);比较标准

还是不行,IE8只要登录再退出,再登录,就不能保存COOKIE了。
不知道为什么。我看了下discuz。
discuz自己写了个dsetcookie来处理。

挽尊。。。。

因为你没有设置作用域

login:
setcookie('uid', $dzid, $cookietime, '/', '.xxxx.net', 0);
setcookie('upd', $pass, $cookietime, '/', '.xxxx.net', 0);

logout:
setcookie('uid', '', $time - 3600, '/', '.xxxx.net', 0);
setcookie('upd', '', $time - 3600, '/', '.xxxx.net', 0);

在360Chrome可以反复登录。
IE就不行,反复登录最多2次,就不会再保存cookie了。
必须要关闭IE重新开启才行,我用的IE8测试的。

discuz也是用的setcookie嘛,就没问题。
虽然外面封装了一层dsetcookie,但貌似关系不大吧。

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn