在 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中实现注销

codeigniter 中的注销功能

是“root web server”和localhost一样吗?安装CodeIgniter

CI框架获取post和get参数 CodeIgniter

在 Codeigniter 上注销