2013-11-27 6 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 = oldest # 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