我在 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();
功能,则消息显示正常。我确定这是一个简单的会话问题