当用户禁用cookie后,服务器每次 session_start() 都会 创建一个全新的seesion文件,后果就是无法让多个页面php,去共享同一份session文件.解决该问题要从cookie sessoin 和http协议入手解决解决方案如下:
方案一:在每个超链接上添加一个PHPSESSID=sesssionId;同时在每个页面加入:
if(isset($_GET['PHPSESSID'])){
//设置sesssion_id
session_id($_GET['PHPSESSID']);
}
session_start();
//下面的方案二、三也需要添加上面if语句
$id=session_id();
echo "<a href='ShopProcess.php?bookid=sn003&bookname=西游记&PHPSESSID=$id'>西游记</a><br/>";
方案二:使用常量SID常量SID相当于 “PHPSESSID=xxxxxxxxxxxxxxxxxxxxxxxxxxx”
使用方法如下:
在超链接 action header(“Location: xx”) 可以直接拼接 SID常量即可
echo "<a href='ShopProcess.php?bookid=sn003&bookname=西游记&".SID."'>西游记</a><br/>";
方案三:可以配置 php.ini 文件,启用session.use_trans_sid 指定是否启用透明 SID 支持即可以这样设置
ssssion. use_trans_sid = 1 ,这样重启apache即可生效.
设为1后,在href、action、header会自动加 SID ,但是js的跳转不会加
禁用Cookie时,PHP共享Session文件解决方案
原创
©著作权归作者所有:来自51CTO博客作者风中木偶的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
php大文件下载时防止内存溢出的解决方案
大文件下载防止内容溢出
文件句柄 加载 打开文件 -
session共享原理以及PHP 实现多网站共享用户SESSION 数据解决方案
总而言之:session共享的关键技术点在于两点: 1. 让客户端访问同一个sessionId,
session共享 服务器 memcached php -
解决session共享问方案
解决session共享问方案 tomcat的session复制 优点:不需要额外开发,只需要搭建tomcat集群即可。缺点:tomcat 是
tomcat redis session共享