PHP中的会话超时

时间:2009-10-19 11:11:10

标签: php

HI, 我有会议时间的代码,但我不知道什么问题它没有工作的人请看看这个并帮助我。这是代码:

  $inactive = 10;

  // check to see if $_SESSION['timeout'] is set

  if(isset($_SESSION['timeout']) ) {

  $session_life = time() - $_SESSION['timeout'];

  if($session_life > $inactive)

  { 
      session_destroy(); 
      header("Location: logoutpage.php"); }
   }

  $_SESSION['timeout'] = time();

感谢。

1 个答案:

答案 0 :(得分:4)

time()变量返回自Unix Epoch(1970年1月1日00:00:00 GMT)以来的秒数测量的当前时间。您的 $ inactive 变量意味着您希望将会话保持打开状态10分钟,但您可能会发现将其切换为秒以便与使用time()函数保持一致更为方便。

// set inactive to 10 minutes (in seconds)
$inactive = 600;

if (!empty($_SESSION['timeout'])) {

    // set session life to current time minus timeout
    $session_life = time() - $_SESSION['timeout'];

    // check if your session life is greater than 10 minutes
    if ($session_life > $inactive) {
        session_destroy();
        header("Location: logoutpage.php");
        die;
    }

}

$_SESSION['timeout'] = time();