登录后如何限制返回codeigniter中的登录页面

时间:2017-01-12 13:33:37

标签: php codeigniter login

我有两个控制器

1. 登录

2的控制台

在Login控制器中我有两种方法

1 LOGGED_IN ()

2 logged_out ()

这是我的登录控制器

public function logged_in()
{
    $user_email =$this->input->post('user_email');
    $user_password =$this->input->post('user_password');
    $result=$this->Login_model->login_data($user_email,$user_password);
    if(!$result)
    {
        $this->session->set_flashdata('failure', 'Login failed');
        redirect(BASE_URL.'admin/Login');
    }
    else
    {
        $data=array(
            'user_email'=>$result[0]['user_email'],
            'user_password'=>$result[0]['user_password'],
        );
        $this->session->set_userdata('session_data',$data); 
        $this->session->set_flashdata('success', 'Login sucessfully');
        redirect(BASE_URL.'admin/Dashboard');
    }
}

public function logged_out()
{
   $this->session->unset_userdata('session_data');
   $this->session->sess_destroy();
   $this->session->set_flashdata('success', 'Logout sucessfully');
   redirect(BASE_URL.'admin/Login');
}

这是Dashboard控制器:

class Dashboard extends CI_Controller 
{
    public function __construct() 
    {
        parent::__construct();
    }

    public function index()
    {
        if($this->session->userdata('session_data')!='')
        {
            $this->load->view('admin/dashboard');
        }
        else
        {
            $this->session->set_flashdata('admin_flash', 'Try again');
            redirect(BASE_URL."admin/Login");
        }
    }
}

我有一个问题,登录后它进入我的视图,我必须加载,但问题是,如果我回去它进入登录页面,我不想要。 那么建议我解决一下吗?

2 个答案:

答案 0 :(得分:0)

我的想法是默认使用名为logged的布尔值false,并在用户登录页面时将其设置为true,如果注销则将其设置为false。然后检查用户是否登录登录页面,以及他是否登录时将用户重定向到主页

答案 1 :(得分:0)

只需检查用户是否在登录页面中登录。如果用户已登录,请将他/她重定向到仪表板。

在您的代码中:

public function logged_in()
{
    // check whether user is logged in or not, 
    // if yes redirect them to dashboard
    if($this->session->userdata('session_data')!='')
    {
        redirect(BASE_URL."admin/dashboard");
    }

    $user_email =$this->input->post('user_email');
    $user_password =$this->input->post('user_password');
    $result=$this->Login_model->login_data($user_email,$user_password);
    if(!$result)
    {
        $this->session->set_flashdata('failure', 'Login failed');
        redirect(BASE_URL.'admin/Login');
    }
    else
    {
        $data=array(
            'user_email'=>$result[0]['user_email'],
            'user_password'=>$result[0]['user_password'],
        );
        $this->session->set_userdata('session_data',$data); 
        $this->session->set_flashdata('success', 'Login sucessfully');
        redirect(BASE_URL.'admin/Dashboard');
    }
}