【问题标题】:customizing php session variable自定义 php 会话变量
【发布时间】:2015-04-21 05:56:02
【问题描述】:

我一直在检查这里的所有帖子,但没有得到我需要的东西。我有多个会话变量,

有些用于登录后创建的登录信息:

$_SESSION['user']=$username; // Initializing Session user
$_SESSION['dept']='Admin'; // Initializing Session dept.

一些用于在我的一个页面中创建的活动:

$_SESSION['actTxt1']=$_POST['actTxt1'];
$_SESSION['type2']=$_POST['type2'];
$_SESSION['level2']=$_POST['level2'];
$_SESSION['cogni1']=$_POST['cogni1'];

如果活动完成,我想清除所有在此处创建的会话,但我仍然不会被注销。

session_destroy();

当它启动时,我的登录信息会话变量也被破坏了,有什么办法可以保留它吗??

【问题讨论】:

  • session_destroy() 几乎等同于$_SESSION = array()。如果您想保留 $_SESSION 中的部分内容,则必须保留它们,调用 session_destroy,然后恢复保留的内容。

标签: php session


【解决方案1】:

尝试对活动使用多维数组:

$_SESSION['activity']['actTxt1'] = $_POST['actTxt1'];
$_SESSION['activity']['type2'] = $_POST['type2'];
// etc...

然后清除该数组:

unset($_SESSION['activity']);
// or
$_SESSION['activity'] = array();

实际上,如果您想要会话中的所有 $_POST 值,那么添加它们会更容易:

$_SESSION['activity'] = $_POST;

【讨论】:

    【解决方案2】:

    调用 session_destroy() 将销毁所有可用的会话。要销毁特定会话,您可以使用 unset() 方法,如下所示:

    unset($_SESSION['session_name']);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-16
      • 2011-10-27
      • 1970-01-01
      • 1970-01-01
      • 2012-10-27
      • 1970-01-01
      • 2014-12-26
      • 2021-05-18
      相关资源
      最近更新 更多