2017-03-22 177 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');