2013-05-03 54 views
4

我想寫一個自動logout腳本似乎工作,但不符合我的期望,我不知道究竟是什麼做錯了,我想把timeout.php在每一頁上,以便當用戶空閒時,它會自動註銷並重定向到login頁面,但是當我將timeout.php設置爲管理員添加用戶的添加用戶頁面時,它將覆蓋添加用戶頁面的鏈接並放置一個也不是出來很好(即形式正在擺脫其位置)it looks like this創建一個自動註銷頁面在php

這是timeout.php代碼

<?php 
$_SESSION = 0; 
if($_SESSION['session_count'] == 0) { 
$_SESSION['session_count'] = 1; 
$_SESSION['session_start_time']=time(); 
} else { 
$_SESSION['session_count'] = $_SESSION['session_count'] + 1; 
} 

$session_timeout = 10; // (in sec) 

$session_duration = time() - $_SESSION['session_start_time']; 
if ($session_duration > $session_timeout) { 
session_unset(); 
session_destroy(); 
session_start(); 
session_regenerate_id(true); 
$_SESSION["expired"] = "yes"; 
header("Location: login.php"); // Redirect to Login Page 
} else { 
$_SESSION['session_start_time']=time(); 
} 
?> 

我希望它會自動註銷和自身重定向到登錄頁面的消息yoour會話已過期,我希望它把它的每一頁上沒有它干擾形式或重疊的頁面

+4

你有沒有試過使用輪詢javascript來檢查重定向之前的活動(如滾動和鼠標點擊)?無論如何,我建議你查看[this](http://paulirish.com/2009/jquery-idletimer-plugin/)插件。 – 2013-05-03 06:45:07

回答

0

這可能與問題無關:爲什麼在if-tag中使用$_SESSION["expired"] = "yes";?如果你不使用它,我沒有看到設置會話變量的重點。 (也許你在其他地方使用它,我不知道)。

此外,你確定你的重定向是正確的嗎? 嘗試echo header("Location: login.php"); 這應該可以幫助您檢查您的重定向是否至少正確。

如果不是這樣:請檢查您是否已正確添加用戶頁面上的timeout.php鏈接。 (例如:想象你在添加用戶頁面上使用if-else,它應該在你的if-tag中,但是你在你的else標籤中使用它)