在 codeigniter 中注销
Posted
技术标签:
【中文标题】在 codeigniter 中注销【英文标题】:Logout in codeigniter 【发布时间】:2013-08-27 17:12:24 【问题描述】:我正在尝试在 codeigniter 框架中设计登录/注销页面。我的问题是,当我注销网页时,我被重定向到登录页面。 当我回去时,我得到一个页面,上面写着:
文档已过期
This document is no longer available.
但是当我刷新此页面时,我会再次登录系统(o.O)
以下代码包含我的构造函数和注销功能。请帮我设计一个完美的登录退出页面
function __construct()
parent::__construct();
$this->load->model('user_model');
$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, post-check=0, pre-check=0');
$this->output->set_header('Pragma: no-cache');
$this->output->set_header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
function logout()
$newdata = array(
'user_name' =>'',
'user_email' => '',
'logged_in' => FALSE,
);
$this->session->unset_userdata($newdata);
$this->session->sess_destroy();
redirect('default_controller','refresh');
我尝试找到正确的注销方法,但我找不到。
【问题讨论】:
好吧,您能否也发布您的登录方法,并提供有关您的确切交互步骤的更多详细信息(即,表单提交 -> 登录页面(重定向?) -> 注销(重定向)-> 返回历史记录-> 刷新)?所以基本上我很好奇你是否可能通过点击刷新来重复登录过程,在这种情况下,登录后的重定向应该会有所帮助。 aahh,您正在加载会话库吗?由于重定向,任何此类错误都可能被隐藏。 我正在自动加载会话库 【参考方案1】:public function Logout()
$this->session->sess_destroy();
redirect('login');
/** Here ('login') is controller class .
In view ('logout-page'):-**/
<a href="home/logout">Logout</a>
【讨论】:
【参考方案2】:试着像这样简单
function logout()
$user_data = $this->session->all_userdata();
foreach ($user_data as $key => $value)
if ($key != 'session_id' && $key != 'ip_address' && $key != 'user_agent' && $key != 'last_activity')
$this->session->unset_userdata($key);
$this->session->sess_destroy();
redirect('default_controller');
【讨论】:
【参考方案3】:不需要使用这条线
$this->session->sess_destroy();
【讨论】:
我没听明白 .. 我仍然面临 mylogout 的问题以上是关于在 codeigniter 中注销的主要内容,如果未能解决你的问题,请参考以下文章
[CI] 使用CodeIgniter框架搭建RESTful API服务
如何在登录系统中使用会话并在codeigniter中实现注销