【问题标题】:Handling multiple sessions in PHP在 PHP 中处理多个会话
【发布时间】:2012-08-18 18:09:56
【问题描述】:

我有一个包含许多 PHP 页面的简单网站。其中,有四个页面使用了公共变量,我应该存储在会话对象中。但问题是,这些值不应该对其他页面可见,所以我决定使用session_name 创建一个新会话。它将启动一个新会话,但是这四个页面正在使用旧会话中的值,这在我尝试打印 $_SESSION 时产生了问题:在我的新会话开始后它是一个空数组。我希望这个新会话保留旧值和新值。

我不是在寻找这种$_SESSION['page_group']['variable_name'] 类型的解决方案,因为我不能使用数组。

【问题讨论】:

  • 欢迎您!我不明白;为什么其他 pages 不能“看到”会话变量? “每页多个初始化会话”听起来是个坏主意。
  • @JaredFarrish 听起来像是一台服务器上的多个网络应用程序。
  • @JaredFarrish 谢谢,bcoz 我需要取消设置我在这四个页面中创建的所有这些变量,特别检查我创建了多少变量我创建了哪些变量我真的无法使用其他会话控制它们我可以通过简单地销毁新会话来取消设置该会话中的所有变量
  • 我通过会话 ID 将其存储在数据库中的表中,检查“正确”页面的 URL,并从表中设置任何变量,这是不可能的吗? (您还应该清除过期的会话。)
  • @JaredFarrish 这是一个可能的解决方案,但如果我尝试那样做,我告诉你可能遇到的困难是不是不可能的?即,如果我问的是基础知识,请使用两个会话对不起,我对多个会话概念真的很陌生。

标签: php session session-variables


【解决方案1】:

使用类似的东西怎么样

session_start();
$temp=$_SESSION;
session_write_close();
session_name("newname");
session_start();

然后将 $temp 合并到(新的)$_SESSION(在需要的地方)?

【讨论】:

  • 我已经尝试了上面提到的代码,但是有一个问题。如果我在新的 session_start 之后尝试在与 $temp 合并之前打印 $_SESSION ,我仍然得到了为较早的会议。
猜你喜欢
  • 1970-01-01
  • 2016-01-03
  • 1970-01-01
  • 2015-11-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-11
  • 1970-01-01
相关资源
最近更新 更多