2010-04-14 68 views
0

對我的php腳本使用wamp服務器。我在註銷代碼上遇到困難。 每當我點擊註銷鏈接,然後點擊網頁瀏覽器上的後退按鈕,它仍然顯示只能被登錄用戶訪問的頁面。 我在index.php的開頭有這段代碼這是由註銷鏈接稱爲摧毀會話:如何使頁面在登錄時不被緩存

<?php 
session_start(); 
session_destroy(); 


?> 

而且我有這個在用戶頁面的開頭:

<? 
session_start(); 
if(!session_is_registered(myusername)){ 
header("location:login.php"); 
} 
?> 

我不知道爲什麼userpage尚可在用戶註銷後訪問。

作爲另一個說明將禁用這個後退按鈕可以解決問題 請幫助。

回答

0

從高速緩存頁面停止你的瀏覽器在HTML或PHP文件的頭部標記添加代碼的這兩行(如果與HTML中使用)

<META HTTP-EQUIV="Pragma" CONTENT="no-cache"> 
<META HTTP-EQUIV="expires" CONTENT="0"> 
9

而應該設置頁面不能緩存,這樣的:打回來的時候,越來越

header("Cache-Control: no-cache, must-revalidate"); 
header("Expires: Thu, 15 Apr 2010 20:00:00 GMT"); 

通過這種方式,客戶端應該重新請求頁面的新鮮從「退出」版本服務器。

另一方面,不要永遠與客戶的按鈕混亂,他們希望他們以某種方式工作,最好爲您的網站行爲像99.999%的互聯網,而不是打破他們的經驗。

+0

什麼他的要求是不可能的(設計)的任何情況。即使您設置了頁面離開處理程序並且什麼都不做,大多數現代瀏覽器都會檢測到這種反模式並允許用戶離開頁面。 +1。 – 2010-04-14 03:09:10

+0

我不明白,請我仍然是初學者。我在哪裏放置代碼。我試圖把它放在頁面的部分: <?php header(「Cache-Control:no-cache,must-revalidate」); ?> 但沒有工作 – user225269 2010-04-14 03:14:04

+0

@ user225269 - 更新...我忘了expires頭文件一起去了(對不起,自PHP項目以來已經有一段時間了)。你堅持在你不希望他們回去的頁面上(或者沒有看到緩存版本),它告訴客戶端,這個頁面在重新加載時不好,它需要再次詢問服務器。 – 2010-04-14 03:17:41

相關問題