有三個介面 logon.php / checklogon.php / detail.php / logout.php
logon.php - session_start() 還有包括登陸form等的其他靜態html,點登陸了按鈕後跳轉到checklogon.php.
checklogon.php - 串連資料庫並返回使用者資訊。如果成功$_SESSION['user'] = 使用者的相關資訊,並跳轉到detail.php。
$user = UserBusiness::GetUser($_POST["username"], $_POST["password"]);if($user == null){header("location: /index.php");exit;}$_SESSION['user'] = $user;
detail.php - 上麵包括了一個登出link,單擊後會調用logout.php.
logout.php -
當點擊了logout按鈕後,頁面到了登陸介面,但是點擊瀏覽器的後退按鈕後(IE 8/Firefox),前一個detail介面又顯示了。 請問大家如何解決。
當點擊後退按鈕後,detail.php裡面的代碼並沒有執行,應該是緩衝的detail.php有顯示了出來。
回複討論(解決方案)
你這個得貼出detail.php的驗證部分來看看
你這個得貼出detail.php的驗證部分來看看 貼上了
這個就是?
你裡邊都沒有驗證session是否存在的代碼,即使你銷毀了session又有什麼用
修改登陸的PHP,加入如下代碼。
IsValid($_POST["username"],$_POST["password"],$ss_user_id)){$_SESSION["ss_user_id"]=$ss_user_id; //使用者IDecho "";}//如果不正確,重新整理頁面else{echo "";}}?>
修改checklogin.php或者建立一個check.php加入驗證使用者是否存在代碼。
在除登陸和退出頁面以外的其他分頁檔頭處都加上上面這段代碼。