2017-03-22 227 views
0

我在註銷函數中使用重定向URL,一日一次註銷其第1次註銷後工作正常,但後續的請求不會到達註銷功能,而是直接調用重定向URL,爲什麼會這樣, 有什麼解釋?重定向問題

public function logout() 
{ 
    $this->session->unset_userdata('user'); 
    $this->session->sess_destroy(); 
    redirect(base_url('user/def')); 
} 

登錄會話後工作正常

public function login(){ 
    if($user->name && $pwd){ 
     $data = array('id'=>$user->id,'username'=> $uname,'loggedin' => TRUE); 
     $this->session->set_userdata('user',$data); 
     $this->session->set_userdata($data); 
    } 
} 
+1

重定向( '登錄', '刷新');用你的重定向代碼替換並檢查它。 –

+0

沒有,也沒有工作 – user7756509

+0

實際上註銷工作在本地主機正常,但不是在服務器 – user7756509

回答

0

這肯定是緩存的問題,但對於我清除瀏覽器緩存,並將其與魅力的一日工作,但後來就同一問題 不知道問題是否由瀏覽器緩存或造成笨是否管理任何緩存會這樣,如下所述 爲無緩存添加標題:

$this->output->set_header("Pragma: no-cache") 

但仍然d idn't工作

終於放晴了這個問題通過使登出網址動態即而不是調用

<a href='user/logout' >logout</a> 

登出網址被稱爲:

<a href="<?php echo 'user/logout?i='.rand(); ?>" >logout</a> 

www.example.com/user/logout?i = 67543878

每次使用新的i值時,瀏覽器將tr把它當作新的URL來調用,這是我解決上述問題的方法。

如果有任何其他有效的解決方案,請讓我知道。

0

其他頁面,我認爲在功能上登出您的重定向指令代碼是錯誤的。它應該是 redirect ('login');

+0

違背重定向(「登錄」),重定向(BASE_URL(「登錄」))將使用完整基本URL隨後URI段爲:HTTP:www.example.com/login而簡單的重定向( 'login')會使用login uri作爲附加到當前url的重定向url – user7756509

0

試試這個..

redirect('Controller_name/function_name');