2013-10-04 55 views
0

其他例子還沒有爲我工作,好奇如何讓會話在30分鐘後過期。我在設置會話的登錄頁面上有此代碼,因此在填寫表單之後,請轉到下載頁面。會議的目的(我知道它不是100%安全的)是爲了防止人們直接進入下載頁面。 $ _REQUEST僅用於跟蹤,我們不希望這些網頁上的人不是來自專門形成的着陸頁網址。我想在30分鐘後將此會話展示出來,以便用戶無法繞過註冊頁面繼續回到下載頁面。PHP SESSION過期的具體用例

<?php 
    session_start(); 
    $_SESSION["loggedIn"] = 'Y'; 
    //the below is for google analytics tracking purposes, please ignore. 
    if (isset($_REQUEST['utm_source']) && (!empty($_REQUEST['utm_source']))) { 
?> 
<!DOCTYPE html> 
    <head></head> 
    <body> 
     //all page code here 
     </body> 
</html> 
<?php 
    } else { 

    header('Location: http://www.anothersite.com') ; 

    } 
    ?> 
+1

[PHP會話超時]的可能重複(http://stackoverflow.com/questions/3068744/php-session-timeout) – Pitchinnate

+0

默認情況下,會話將在1440秒後過期,如24分鐘。你有沒有搜索SO或谷歌的解決方案? – dbf

+1

@dbf,我很確定這是一個服務器設置,所以你不能指望它是。關於如何設置會話過期有一個很好的概述[這裏](http://stackoverflow.com/questions/520237/how-do-i-expire-a-php-session-after-30-minutes/1270960#1270960) 。 – EmmyS

回答

1

其更好地使用cookie,並設置到期時間(time()+(30*60)),或者你可以使用會話,例如:

//set session to now + 30 minute 
$_SESSION['expire'] = time()+(30*60); 

//check 
if($_SESSION['expire'] <= time()){ 
//destroy session 
} 

但有一個事實,會話將自動終止,當用戶關閉瀏覽器窗口。

+0

我欣賞這裏的知識,將切換到使用$ _SESSION。比我嘗試過的其他方法容易得多。謝謝。 –