【问题标题】:Logout in codeigniter 3在codeigniter 3中注销
【发布时间】:2016-12-16 23:59:27
【问题描述】:

我有这个登录验证:

        public function login_validation() {

            $this->load->library('form_validation');

            $this->form_validation->set_rules('email','Email',
            'required|trim|callback_validate_credentials');
            $this->form_validation->set_rules('password','Password','required|md5|trim');

            if ($this->form_validation->run()){
                $data= array(
                    'email'=> $this->input->post('email'),
                    'is_logged_in' => true
                );
                $this->session->set_userdata($data);
                redirect('Pag');
            }else {
                $this->load->view('login');
            }
            }

这个重定向:

        public function members() {
            if($this->session->userdata('is_logged_in')){
                redirect('Pag');
            }else{
                redirect('main/restricted');
            }  
            }

然后退出:

        public function logout() {
            $this->session->unset_userdata('is_logged_in');
            $this->session->sess_destroy();
            redirect('main/login');
        }

但是当我从我的页面按注销时,我将被重定向到登录选项卡,但如果我使用 /Pag 编写 URL 路由,我将再次进入该站点(无需键入凭据),我认为sess_destroy 实际上并没有破坏我的会话。

【问题讨论】:

  • 您是否正在检查/Pag 上的会话?
  • 我该怎么做?
  • 在您的 /Pag 页面上运行 members() 函数以及登录

标签: php codeigniter-3


【解决方案1】:
  1. 请确保您在 /Page 处检查会话
  2. 某些服务器有问题(使用 www 和没有 www 的注销问题)。您需要使用 301 重定向。我由这个管理 在您的 .htaccess 文件中输入此代码

    重写引擎开启 RewriteCond %{SERVER_PORT} 80 重写规则 ^(.*)$ https://www.example.com/$1 [R,L]

【讨论】:

    猜你喜欢
    • 2013-08-27
    • 2020-06-17
    • 2018-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-29
    • 2018-04-14
    • 1970-01-01
    相关资源
    最近更新 更多