当前位置:Gxlcms > PHP教程 > 为什么URL重定向之后SESSION就不能用了?

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

时间:2021-07-01 10:21:17 帮助过:9人阅读

为什么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依然有效。

人气教程排行