加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

读取PHP的会话数据而不加载它

发布时间:2020-12-13 17:45:09 所属栏目:PHP教程 来源:网络整理
导读:我有一个session_id,我想读取它的数据而不加载到$_SESSION数组.请记住,我没有将我的问题局限于某个特定的会话处理程序. [UPDATE] 这是我的情景: 我有两个(或更多)不同的开源项目,我想合并为一个.这些项目使用会话,但它们相互覆盖是可行的(因为它们都在同一
我有一个session_id,我想读取它的数据而不加载到$_SESSION数组.请记住,我没有将我的问题局限于某个特定的会话处理程序.

[UPDATE]

这是我的情景:

我有两个(或更多)不同的开源项目,我想合并为一个.这些项目使用会话,但它们相互覆盖是可行的(因为它们都在同一主机和同一域中).为了防止这种情况发生,我为每个设置了不同的session_names,因此他们将拥有自己的会话.但是我需要编写胶水代码,我必须能够访问这两个会话.我可以在$_SESSION中加载一个,但我必须在不加载的情况下阅读其他内容.

[UPDATE]

考虑到目前为止给出的答案,我想更多地澄清一些事情.我寻找的解决方案是在同一个请求中启动两次(或更多次)会话.并且每次使用不同的session_id.这样我就可以复制会话并加载另一个会话.有了这个说,没有必要唯一的解决方案,但它最接近我正在寻找的(只是一个提示).

解决方法

我将逐个启动两个会话并将$_SESSION值存储在本地数组中.

// Loading the first session.
session_name('first_session_name');
session_start();
// Now we have first session variables available in $_SESSION
$_FIRST_SESSION = $_SESSION;
// End current session.
session_write_close();
// Just to make sure nothing remains in the session.
unset($_SESSION);
// Now set the second session name.
session_name('second_session_name');
// Check and see if the second session name has a session id.
if (isset($_COOKIE['second_session_name']))
    // There's already a session id for this name.
    session_id($_COOKIE['second_session_name']);
else
    // We need to generate a new session id as this is the first time.
    session_id(sha1(mt_rand()));
session_start();
$_SECOND_SESSION = $_SESSION;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读