使用$ _SESSION

时间:2013-06-15 18:00:20

标签: php session server-side

会话在其他会话之前是否有任何风险到期,即使它们是在同一时间宣布的?

我想将40多个变量声明为会话,但前提是它们尚不存在,如下所示:

if (!array_key_exists('user', $_SESSION))
{
$_SESSION['user']['username'] = "";
$_SESSION['user']['age'] = "";
$_SESSION['user']['location'] = "";
//...and 40+ more
}

但如果其中一个会话在其他会话之前到期,则会破坏整个代码。这有可能吗?

谢谢!

2 个答案:

答案 0 :(得分:2)

$ _ SESSION是一个关联数组。因此,您存储在其中的内容不是单独的“会话”,而是数组中的值。由于$ _SESSION在会话到期时被丢弃,因此其所有值都会同时消失。

所以没有:$ _SESSION数组中的一个这样的值不会在另一个之前到期,它们会在同一时间到期。有关使用会话和$ _SESSION的更多信息:http://www.php.net/manual/en/session.examples.basic.php

答案 1 :(得分:1)

在php.ini中检查为session.gc_maxlifetime设置的值是以秒为单位的ID生存期。

我认为默认是24分钟。

同时检查:http://www.php.net/manual/en/session.configuration.php 变量是否有限制?不,没有!