【发布时间】:2011-03-16 22:39:33
【问题描述】:
我在我的 CI 1.7.3 应用程序中使用 Tank Auth 进行用户管理。一切正常,但我试图设置一个flash_message 在用户注销时显示。问题是$this->tank_auth->logout(); 函数破坏了会话。我已将 Tank Auth 库中的注销功能修改为如下所示:
function logout() {
$this->delete_autologin();
// See http://codeigniter.com/forums/viewreply/662369/ as the reason for the next line
$user_session_data = array('user_id' => '', 'username' => '', 'status' => '');
$this->ci->session->set_userdata($user_session_data);
$this->ci->session->unset_userdata($user_session_data);
}
以前是
function logout()
{
$this->delete_autologin();
// See http://codeigniter.com/forums/viewreply/662369/ as the reason for the next line
$this->ci->session->set_userdata(array('user_id' => '', 'username' => '', 'status' => ''));
$this->ci->session->sess_destroy();
}
在我的控制器中
function logout(){
if ($this->tank_auth->is_logged_in()) { // logged in
$this->session->set_flashdata('status_message', $this->lang->line('auth_message_logged_out'));
$this->tank_auth->logout();
redirect('');
}
}
如果我删除 $this->tank_auth->logout(); 函数,则消息显示正常。我确定这是一个简单的会话问题
【问题讨论】:
标签: php session codeigniter tankauth