会话到期时会话销毁和续订

时间:2014-02-07 10:12:18

标签: php session

我将数据放入会话中:

session_start();
$_SESSION['color']='green';

下次收到查询时,会话过期。会发生什么?是否会破坏旧会话数据并使用session_start()创建新会话?我能访问存储在previos请求中的数据吗?

4 个答案:

答案 0 :(得分:1)

  

会发生什么?是否会销毁旧会话数据和新会话   使用session_start()创建?

在浏览器关闭或您隐式调用session_destroy();之前,会话变量仍然存在,您可以在任何页面上访问它们。

  

我是否可以访问存储在previos请求中的数据?

是的,你可以。只需在PHP代码的顶部添加session_start();,就可以像echo $_SESSION['color'];

那样访问它

答案 1 :(得分:1)

如果之前启动了会话,则Session_start()将恢复现有会话。所以你的代码很好

答案 2 :(得分:1)

session_start()开始新会话或使用现有会话。

因此,如果会话在$_SESSION[]变量仍然存在之前没有被销毁。

$_SESSION['color']的值为'green',直到:

  • 浏览器已关闭
  • 会话未设置/已销毁
  • 变量未设置

要访问$_SESSION[]个变量,必须位于页面顶部的session_start(),应该访问$_SESSION[]变量。

答案 3 :(得分:0)

最好你这样做:

if (session_id() == "") {
  session_start();
}

&安培;在另一次打击之后你的价值不会改变