php java session共享_php 函数session_id()思考。实现同服务器下session共享

session_id()

session_id() 存取目前 session 代号。

语法: string session_id(string [id]);

本函数可取得或者重新配置目前存放 Session 的代号。若无参数 id 则表示只有取得目前 Session 的代号,加上参数则表示将 Session 代号设成新指定的 id。输入及返回均为字符串。

输出 session_id()

<?php

session_start();

echo session_id();

// 输出 dqr58dnuqj2gufvg4o3tmjb9v4

?>

设置 session_id()

<?php

session_id("NowaMagic");

session_start();

echo session_id();

// 输出 NowaMagic

?>

session_id 恢复 session的内容

php的session是可以程序恢复的,这个和java不太一样。session的恢复机制可以实现多个应用程序session的共享,因为 php的session都是以文件形式或者数据库存储的。首先是session_id的获取是通过session_id()函数获取,这个值可以进行传 递。

程序恢复session,首先要知道session_id,大家通过手册可以知道session的恢复通过session_id($id);但是在 恢复时要注意一个先后顺序,要得到之前session的内容,必须在session_start()之前执行session_id($id),这样才能在 执行了session_start时初始化session的时候恢复到之前的内容,否则的话你得到的是一个空的session,你什么也得不到。之前 session被重新初始化了。这个和session_start()的作用有密切关系,因为session_start告诉php,session要初 始化,要从session文件中反序列化session内容,所以session_start的作用就是把之前存储的文件内容反序列化。 session_start序列化之前要知道session_id,如果没有就生成一个新的session_id。如果有就反序列化相应文件的内容。

那么问题来了。如果我们想session共享怎么办。我的想法是,需要共享的时候,把自身的sessionid传递过去,然后再开启session。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值