PHP中的session在默认情况下是使用客户端的Cookie来保存session id的,所以当客户端的cookie出现问题的时候就会影响session了。必须注意的是:session不一定必须依赖cookie,这也是 session相比cookie的高明之处。当客户端的Cookie被禁用或出现问题时,PHP会自动把session id附着在URL中,这样再通过session id就能跨页使用session变量了。但这种附着也是有一定条件的,即“php.ini中的session.use_trans_sid = 1或者编译时打开打开了--enable-trans-sid选项”。
所以,我们可以抛开cookie使用session,即假定用户关闭cookie的情况下使用session,其实现途径有以下几种:
第一种方式:在每个超链接上添加一个PHPSESSID=$sid
代码如下 | 复制代码 |
//防止返回初始页产生新的session if(isset($_GET["PHPSESSID"])){ session_id($_GET["PHPSESSID"]); } //启动一个session session_start(); //获取当前session的session_id() $sid=session_id(); //在每个链接上添加参数PHPSESSID=$sid 其他页面的获取方式为: if(isset($_GET["PHPSESSID"])){ //设置当前的session为初始的session,session_id()一致即可 session_id($_GET["PHPSESSID"]) } session_start(); |
第二种方式:使用 SID 常量替换链接上的 PHPSESSID=$sid (SID的值类似:PHPSESSID=sddg34r593dfdlksrewr)
代码如下 | 复制代码 |
if(isset($_GET["PHPSESSID"])){ 其他页面的获取方式为: |
第三种方式:使用session.use_trans_sid=1,php.ini中配置
1、设置php.ini中的session.use_trans_sid = 1或者编译时打开打开了--enable-trans-sid选项,让PHP自动跨页传递session id。
2、手动通过URL传值、隐藏表单传递session id。
3、用文件、数据库等形式保存session_id,在跨页过程中手动调用。
代码如下 | 复制代码 |
index.php
|
茶杯头甜蜜终章dlc 官方手机版v1.0.0.3
下载火柴人传说暗影格斗内置菜单 最新版v3.0.1
下载荒野乱斗测试服 安卓版v61.10.3
下载荒野乱斗彩虹服 安卓版v61.10.3
下载寒霜启示录 安卓版v1.25.10
寒霜启示录是一款生存模拟游戏,不少玩家可能对于末日都有着自己
末日城堡免广告版 安卓最新版v0.7.1
末日城堡免广告版是一款非常好玩的模拟经营类游戏,内部可以不看
甜蜜人生模拟器 最新版v1.4.5
甜蜜人生模拟器是一款非常好玩的模拟恋爱手游,玩家在这里能够对
武器锻造师内置功能菜单 v10.4
武器锻造师内置菜单版是游戏的破解版本,在该版本中为玩家提供了
开放空间overfield 安卓版v1.0.5
开放空间Overfield是一款箱庭养成经营手游,让你在广阔