Home >Backend Development >PHP Tutorial >为什么URL重定向之后SESSION就不能用了?

为什么URL重定向之后SESSION就不能用了?

WBOY
WBOYOriginal
2016-06-06 20:36:172232browse

为什么URL重定向之后SESSION就不能用了?
http://www.baidu.com/index.php 此时写个SESSION['key'] = 200;
重定向到 http://www.sian.com , http://www.sian.com再重定向到
http://www.baidu.com/index.php ,发现SESSION['key'] 就找不到了??
请问为什么啊?还有COOKIE 存在这样情况吗?

回复内容:

为什么URL重定向之后SESSION就不能用了?
http://www.baidu.com/index.php 此时写个SESSION['key'] = 200;
重定向到 http://www.sian.com , http://www.sian.com再重定向到
http://www.baidu.com/index.php ,发现SESSION['key'] 就找不到了??
请问为什么啊?还有COOKIE 存在这样情况吗?

你是用服务器端直接redirect的么?若是,很有可能会出现这种问题。因为session要与cookie对应
client-->A(set session and redirect to B)-->B-->A第一次访问A时set的Cookie有可能还没保存到用户浏览器,就收到302重定向走了,所以再返回A时就没有cookie去对应session了,当然也有可能是从B重定向到A时,因为跨域,请求头里没有A域下的cookie,所以拿不到session。
所以这种重定向,一般是单独做一个重定向页面(js或其他方式)做跳转,而不是直接服务器端redirect,参考微博,空间等网站都有类似的专门重定向页面

程序还是游览器?游览器的话,跟服务的设置和游览器的设置有关系的。

可以在每次redirect的时候,预设session,这样可以保证每次重定向后,session依然有效。

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