2012-06-24 47 views
0

好吧,我對PHP會話一個完全以noob問題:PHP會話基礎

我有3個(及以上)的PHP頁面,我需要保護他們的登錄系統和會話。現在,我包括這對每個頁面的頂部:

session_name('somename'); 
session_start(); 

if(!$_SESSION['user_loggedIn']){ 
    header("location: login.php"); 
} 

if (isset($_SESSION["timeout"])) { 
$inactive = 900; 
    $sessionTTL = time() - $_SESSION["timeout"]; 

     if ($sessionTTL > $inactive) { 
     session_destroy(); 
     header("location: login.php"); 
     } 

} 

問:這是正確的添加類似包括session.php文件;到每個php文件的頂部,ofc。 session.php只包含上面的代碼。

+1

確保在你的'header()'調用後添加'exit();' –

回答

1

你不應該自己處理會話超時,你的web服務器幾乎肯定會爲你處理。你所需要做的就是檢查會話是否存在,並確保你在該會話中有登錄信息。

此外,至於「什麼是正確的做法」 - 如果你需要它在每個php文件的頂部,請記住使用「require_once」,因爲如果一遍又一遍地做同樣的事情沒有意義你包含其他文件。此外,您可能只需在網頁上執行此操作,但您知道只需要受保護的用戶,但並不總是網站的每個頁面。