禁用Cookie时,PHP共享Session文件解决方案

当用户禁用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文件解决方案)