错误:使用codeigniter登录和注销时 [英] Error: while login and logout using codeigniter

查看:78
本文介绍了错误:使用codeigniter登录和注销时的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

登录和注销工作正常,但是,从页面注销后,即时消息仍然能够访问该页面,例如,如果我用作codeigniter_try / index.php / Home / backend,则使用url显示其不应显示的页面碰巧,我的意思是说仅当我使用用户名和密码登录时,它才应该显示。

The login and logout is working fine but, after getting logout from the page im still able to access that page, for example in url if i use as codeigniter_try/index.php/Home/backend its displaying the page which should not happen, i mean to say it should display only when i loggedin with the username and password. what issue im facing here can any one guide me ?

这是我的Controller.php

This is my Controller.php

//-------this is Login method --------
public function login()
{
    if($this->input->post('login'))
    {
        $username=$this->input->post('username');
        $password=md5($this->input->post('password'));
        $query=$this->db->query("select * from login where username='".$username."' and password='$password'");
        $row = $query->num_rows();
        if($row)
        {
            $newdata=array(
                'username' => $this->input->post('username'),
                'password' => md5($this->input->post('password')),
                'is_logged_in'=>TRUE
            );
            $this->session->set_userdata($newdata);
            redirect('Home/Backend');
        }
        else
        {
            $data['error']="<h3 style='color:red'>Invalid login details</h3>";
        }   
    }

    $this->load->view('login',@$data);      
}

//---------this is Logout method --------
public function logout()
{
    $this->session->unset_userdata($newdata);
$this->session->sess_destroy();
redirect('Home/login');
}

//-------Backend page---------

     public function Backend()
   {
     $this->load->view('backend');
     }


推荐答案

希望这会帮助您:

您的注销方法应如下所示:

your logout method should be like this :

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

您的后端应该是这样的:您必须在所有控制器中检查它

Your Backend should be like this : you have to check it in all controllers

public function Backend()
{ 
   if (! $this->session->userdata('is_logged_in')) redirect('Home/login'); 
   $this->load->view('backend'); 
} 

更多: https://www.codeigniter.com/user_guide/libraries/sessions.html#destroying-a-session

这篇关于错误:使用codeigniter登录和注销时的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆