【问题标题】:Strange logout issue in CodeigniterCodeigniter 中的奇怪注销问题
【发布时间】:2016-12-01 08:09:49
【问题描述】:

为了防止在codeigniter中缓存,我正在使用

<?php
header('Expires: Sun, 01 Jan 1995 00:00:00 GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');    
header('Pragma: no-cache');
?>

在注销时我取消设置会话数据并销毁会话

    $this->session->unset_userdata('logged_in');
    $this->session->unset_userdata('name');
    $this->session->sess_destroy();
    redirect('user/login');

当我第一次按下后退按钮时,只会出现登录页面,而不会出现其他访问过的页面。所以我假设 no-cache 是有效的。

但是,如果我一直按返回按钮,然后确认表单重新提交页面出现,当我刷新页面时,主页会显示。会话数据“name”用于显示用户名,显示为空白。

我在所有控制器功能上使用以下代码来防止访问

if(!$this->user->is_logged_in()) {
        redirect('user/login');
    }

定义在模型中

public function is_logged_in()
{
    return $this->session->userdata('logged_in') ? TRUE : FALSE;
}

请指导我解决此问题。

【问题讨论】:

    标签: php codeigniter


    【解决方案1】:

    每个控制器检查会话都设置为 TRUE。如果 TRUE 继续您的代码,否则重定向到登录页面。

    在控制器中

    public function index()
    {
    
        $logged = $this->session->userdata('logged_in');
        if($logged == TRUE)
        {
            # Your code 
        }
        else{
            # redirect login page
            redirect('login');
    
        }
    }
    

    在登录功能中

    $newdata = array(
        'username'  => $value,
        'logged_in' => TRUE
    );
    
    $this->session->set_userdata($newdata);
    

    并像这样销毁会话集。

    $this->load->driver('cache');
    $this->session->sess_destroy();
    $this->cache->clean();
    redirect('login');
    ob_clean();
    

    【讨论】:

    • 我已经这样做了,但问题仍然存在。这个问题在 Firefox 中没有出现,但在 chrome 和 IE 中都没有。注销并按后退按钮后,当我刷新页面时,会显示主页。但会话数据“名称”显示为空白。
    • 我已经解决了。问题出在登录控制器上,在成功验证后,我加载了页面视图。现在,我没有在登录控制器中加载页面,而是重定向到另一个控制器,在检查 is_logged_in 之后,我加载了页面。谢谢
    【解决方案2】:

    我在一个项目中遇到了同样的问题,但这件事帮助了我。我在上面写着的地方更改了我的 config/config.php 文件

    $config['sess_regenerate_destroy'] = FALSE;

    我更改为 TRUE,它解决了我的问题。

    【讨论】:

      猜你喜欢
      • 2020-06-27
      • 2012-07-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-01
      • 1970-01-01
      • 2015-07-10
      相关资源
      最近更新 更多