浏览器禁用cookie后php如何保持session会话-use_trans_sid机制

为防止浏览器禁用cookie导致服务器会话无法保持,php开发了一个机制,该机制开启后,浏览器发起请求后,服务器会创建session文件,并对返回给浏览器的页面中所有的url进行处理,若url为相对路径(不带http://ip地址)则认为此url是链接至本服务器,因此在url后补上sessionid。当用户点击带有此url的链接标签时会携带sessionid到服务器,因此实现了会话保持。

我的php版本为5.6.16,开启上述机制的参数配置条件为:

 

session.use_cookies = 0  //设置客户端是否使用cookie来保存session值  该参数的值不影响上述机制的进行。

但是为了验证该机制,这里把该参数设为0,排除cookie携带seesionid的可能

session.use_only_cookies = 0  //是否只使用cookie来保存session值  该参数为1时,上述机制失效。

session.use_trans_sid = 1

修改php.ini参数后需要重启php-fpm 

 service php-fpm stop

  service php-fpm start


我用如下函数对上述机制进行了测试:

test.php

<?php

session_start();
$_SESSION[’var1’]="中华人民共和国";
 echo '<a href="s2.php">下一页</a>';

?>

s2.php

<?php

session_start();
echo "传递的session变量var1的值为:".$_SESSION[’var1’];

?>

请求test.php后,传输到浏览器的代码为:

红色部分为空时也会补上sessid,跳转至当前页。若填写为http://172.16.22.28/s2.php则不会补全


去掉http://后,也会自动补全sessid,本人认为PHP该机制的处理应该是以http://为判断条件的。


因此,刷新操作也不会补上sessid参数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值