2013-11-27 33 views
-1

我有一个页面session.php文件和我的代码是:如何设置会话超时代码PHP

@session_start(); 
      if(!isset($_SESSION['uname']) || $_SESSION['uname'] == " " || !isset($_SESSION['uid']) || $_SESSION['uid'] == " ") 
        { 
       echo "<script language='javascript'>"; 
       echo "window.location='../index.php'"; 
       echo "</script> "; 
       exit;   
      } 

而且我也想编辑会话超时功能,这个代码是:

$_SESSION['start'] = time(); // taking now logged in time 
     $_SESSION['expire'] = $_SESSION['start'] + (1* 10) ; // ending a session in 30 seconds 
      $now = time(); // checking the time now when home page starts 
      if($now > $_SESSION['expire']) 
      { 
       session_destroy(); 
       echo "Your session has expire ! <a href='logout.php'>Click Here to Login</a>"; 
      } 
      else 
      { 
       echo "This should be expired in 1 min <a href='logout.php'>Click Here to Login</a>"; 
      } 

但是,这段代码无法正常工作,请帮助我如何在session.php页面中设置会话超时。

谢谢。

+0

从上面发布的代码,您似乎总是设置加载页面时的会话开始时间。因此,会话永远不会过期,因为两个'time()'语句之间的时间差异非常小。 – Caramiriel

+0

检查此链接 http://stackoverflow.com/questions/3068744/php-session-timeout – atluriajith

+0

检查这一点 - https://stackoverflow.com/questions/520237/how-do-i-expire-a -php-session-after-30-minutes?answertab =最老的#tab-top –

回答

0

你可以试试这个,因为,在你的代码中已设定有效期限每个&每次页面加载得到,现在又增加了状态的时间。

@session_start();  
    if(!isset($_SESSION['uname']) || $_SESSION['uname'] == " " || !isset($_SESSION['uid']) || $_SESSION['uid'] == " ") 
    { 
     echo "<script language='javascript'>"; 
     echo "window.location='../index.php'"; 
     echo "</script> "; 
     exit; 
    } 

    $_SESSION['start'] = time(); // taking now logged in time 

    if(!isset($_SESSION['expire'])){ 
     $_SESSION['expire'] = $_SESSION['start'] + (1* 10) ; // ending a session in 30 seconds 
    } 
    $now = time(); // checking the time now when home page starts 

    if($now > $_SESSION['expire']) 
    { 
     session_destroy(); 
     echo "Your session has expire ! <a href='logout.php'>Click Here to Login</a>"; 
    } 
    else 
    { 
     echo "This should be expired in 1 min <a href='logout.php'>Click Here to Login</a>"; 
    } 
+0

非常感谢。 但是这段代码不正常工作会发生错误 – SATSANGI

+0

发生了什么错误? –

+0

非常感谢... !! 成功完成会话过期代码。 – SATSANGI