我試圖在用戶註銷CodeIgniter(PHP)應用程序時停止/禁用瀏覽器的後退按鈕功能。但是,我認爲瀏覽器正在緩存頁面,因此儘管會話從註銷中銷燬,它仍然可見。註銷後的CodeIgniter後退按鈕
我知道會話是死的,因爲當用戶試圖做任何事情(點擊任何鏈接等),他們通過我的控制器中的方法踢出。
由於上一頁包含機密信息,因此使用後退按鈕以這種方式工作並不理想。
不知道如何解決這個問題,也許是一個介於兩者之間的重定向頁面(但用戶可以很快地將後退按鈕放在右邊?),幫助!
謝謝。
我試圖在用戶註銷CodeIgniter(PHP)應用程序時停止/禁用瀏覽器的後退按鈕功能。但是,我認爲瀏覽器正在緩存頁面,因此儘管會話從註銷中銷燬,它仍然可見。註銷後的CodeIgniter後退按鈕
我知道會話是死的,因爲當用戶試圖做任何事情(點擊任何鏈接等),他們通過我的控制器中的方法踢出。
由於上一頁包含機密信息,因此使用後退按鈕以這種方式工作並不理想。
不知道如何解決這個問題,也許是一個介於兩者之間的重定向頁面(但用戶可以很快地將後退按鈕放在右邊?),幫助!
謝謝。
添加是爲了防止以前的頁面緩存:
header("cache-Control: no-store, no-cache, must-revalidate");
header("cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT");
後註銷轉到一個頁面顯示像有些消息「很快見到你」一段時間後,從到所需的頁面,這可能解決您的問題 如下面的代碼爲重定向第二次 頭重定向(「刷新3; URL = home.php「);
http://stackoverflow.com/questions/6648093/php-prevent-going-back-page-after-log-out – user1370510
您可以在註銷後使用javascript關閉窗口 - 從而消除返回頁面的任何能力。
很多網上銀行都這樣做來解決這個問題。
我認爲這可以幫助你,它爲我工作。
笨Framework版本:
$this->output->set_header('Last-Modified:'.gmdate('D, d M Y H:i:s').'GMT');
$this->output->set_header('Cache-Control: no-store, no-cache, must-revalidate');
$this->output->set_header('Cache-Control: post-check=0, pre-check=0',false);
$this->output->set_header('Pragma: no-cache');
PHP版本:
header('Last-Modified:'.gmdate('D, d M Y H:i:s').'GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0',false);
header('Pragma: no-cache');
如果你正在使用PHP OOP把上面的代碼在構造函數初始化您的網頁上。
我應該在哪裏添加上面的代碼?在控制器或每個視圖頁面?我正在使用codeigniter框架。 –
我認爲有以下應該幫助你
1)創建一個logout.php文件和下面的代碼添加到它
<html>
<head>
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#submit").trigger("click");
});
</script>
</head>
<body>
<form action="<?php echo base_url();?>login" method="post">
<input type="submit" id="submit" style="display: none;">
</form>
</body>
</html>
2)修改註銷功能加載上面的視圖文件logout.php
我對這個問題的解決方案:
如果未設置cookie,則會重定向到登錄頁面。
if(isset($_COOKIE['ci_session'])){
$user= $this->security->xss_clean($this->input->post('user'));
$pass= $this->security->xss_clean($this->input->post('pass'));
$result = $usrLog->loguearUsuario($user, $pass);
if($result == TRUE){
$data = $this->session->set_userdata('logged_in', $sessArray);
$this->load->view('pages/admin', $data);
}
}else{
header('Location: login');
}
我希望你能學習!對不起,我的英語!:-)
http://stackoverflow.com/questions/5251110/back-button-takes-the-user-back-to-protected-page-after-logout-zend-framework不codeigniter,但我想你會讓它工作 –
檢查這一個,我認爲它會幫助你http://stackoverflow.com/questions/4630484/how-do-i-make-firefox-reload-page-when-back-button-is-pressed – Ula
感謝@Ula,頭文件解決方案爲我工作。 –