2013-07-30 66 views
0

使用以下php腳本。在用戶註銷之前,我如何激活會話。它每30分鐘(大約)註銷一次。或者如果註銷用戶重定向到最後一個頁面。使PHP會話處於活動狀態或退出返回上一頁

<?PHP 
require_once("./include/membersite_config.php"); 

if(!$fgmembersite->CheckLogin()) 
{ $loggedin="0";} else { $loggedin="1"; } 
if ($loggedin=="1") {echo ("<SCRIPT LANGUAGE='JavaScript'> 
window.alert('You are already signed in. Please continue to use') 
window.history.back(); 
</SCRIPT>"); 
exit; } 

if(isset($_POST['submitted'])) 
{ 
if($fgmembersite->Login()) 
{ 
$fgmembersite->RedirectToURL("Upload.php"); 
} 
} 
?> 


    function CheckLogin() 
    { 
    session_start(); 

    $sessionvar = $this->GetLoginSessionVar(); 

    if(empty($_SESSION[$sessionvar])) 
    { 
     return false; 
    } 
    return true; 
} 
+0

該腳本沒有顯示會話處理邏輯。 –

+0

檢查登錄...有沒有 – user1915224

+0

是的,但你顯示的代碼只是顯示方法調用'$ fgmembersite'對象。這沒有告訴我們關於開始/銷燬會話的邏輯或與登錄有關的邏輯。我們不知道這些方法是做什麼的。你需要展示更多的上下文。 –

回答

0

這是一個PHP配置問題。如果您沒有任何訪問php.ini文件或不想弄亂它,你可以做的是,每次你進入一個頁面,你將當前頁面保存在數據庫的表格中(它應該有與用戶表的關係),並且當用戶在30分鐘限制之後登出時,您只需從數據庫中檢索該值。

您可以通過$_SERVER['PHP_SELF']獲取當前網址。要檢查用戶註銷是否保存會話變量,並且每次頁面加載,請執行以下操作:

if(!isset($_SESSION['userid'])){ 
    // redirect to the page in the database table 
    header("Location: ".$field_from_db); 
} 

希望它有幫助!

相關問題