简体   繁体   English

codeigniter登录重定向太多到家庭控制器

[英]codeigniter login redirect too many to home controller

i have one problem with my login and the views, i want once the user is logged and exits the session then redirect me to my home , but the user slip the url to root project or login url then it should be stay on home ., my code looks like this 我的登录和视图有一个问题,我希望一旦用户登录并退出会话然后将我重定向到我的家,但是用户将URL滑到root项目或登录URL然后它应该留在家里。我的代码看起来像这样

MY_Controller MY_Controller

protected function isLogged(){
        if (!$this->session->userdata('log'))
            redirect('login');
    }

login 登录

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Login extends MY_Controller {
    public function __construct(){
        parent::__construct();
    }

    public function index(){
        $data['module'] = 'Login';
        $this->load->view('header',$data);
        $this->load->view('login');
    }

    public function getAccess(){
        $username = $this->input->post('username', TRUE);
        $password = $this->input->post('password', TRUE);
        $result = $this->user->login($username,$password);
        if (!empty($this->input->post('username')) && !empty($this->input->post('password'))) {
            if (!$result) {
                $this->json(array('error' => 'invalid username or password'));
            }else{
                $data_session = array(
                    'id' => $result['id'],
                    'first_name' => $result['first_name'],
                    'last_name' => $result['last_name'],
                    'type' => $result['profile_id'],
                    'logged_in' => TRUE 
                );
                $this->session->set_userdata('log',$data_session);
            }
        } else {
            $this->json(array('empty' => 'You did not fill out the required fields.'));
        }
    } 

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

home controller 家庭控制器

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Home extends MY_Controller {

    public function __construct(){
        parent::__construct();
        $this->isLogged();
    }

    public function index(){
        $data = $this->session->userdata('log');
        $data['module']  = "Home";
        $data['fields']  = $this->getModules();
        $this->load->view('header',$data);  
        $this->load->view('index');
        $this->load->view('home');
        $this->load->view('footer');
    }
}

/* End of file Welcome.php */
/* Location: ./application/controllers/Welcome.php */

You can try 你可以试试

$this->login();

or 要么

redirect(base_url());

I have same issue last time I solved that with making islogged() function in helper file. 我上次在helper文件中使用islogged()函数解决了这个问题。

You can look this code might helpful 您可以查看此代码可能有用

This my login controller 这是我的登录控制器

  defined('BASEPATH') OR exit('No direct script access allowed');

class Login extends CI_Controller {
function __construct()
{
    parent::__construct();
    $this->load->helper(array('url','form','file'));
    $this->load->model(array('admin_model'));

    //print_r($_SESSION);
    // print_r($data['all_cats']);die();

}
public function index()
{
    if($this->input->post('submit')!='')
    {
        $email = $this->input->post('email');
        $pwd = $this->input->post('password');
        $login  = $this->admin_model->login($email,$pwd);
        if(!empty($login))
        {
            redirect('Welcome/dashboard');
        }
        else
        {
            $this->session->set_flashdata('error', 'Incorrect Login Details');
            $this->load->view('login');
        }
    }
    else
    {
        $auth = checkAdminLogin();
        if( $auth == 1) 
        {
            redirect('Welcome/dashboard');
        }
        else
        {
            $this->load->view('login');
        }
    }
}
}

And that's my Welcome controller 那是我的欢迎控制器

 defined('BASEPATH') OR exit('No direct script access allowed');

class Welcome extends CI_Controller {
function __construct()
{
    parent::__construct();
    $this->load->helper(array('url','form','file'));
    $this->load->model(array('admin_model'));
    $data['dbname']=$this->admin_model->get_db_name();
    $data['all_cats']=$this->admin_model->get_categories();
    $data['websites']=$this->admin_model->website_type();
    $data['sub_cats']=$this->admin_model->get_sub_cats();
    $admin_id=$this->session->userdata('adminId');
    if($admin_id == '')
    {
        redirect(base_url());
    }
    $this->load->vars($data);
    //print_r($_SESSION);
    // print_r($data['all_cats']);die();

}

// Admin Login Page 

 // End Function

// Redirect to Admin DashBoard
public function dashboard()
{
    $auth = checkAdminLogin();
    if( $auth == 1) 
    {
        $data = array();
        $this->load->view('index',$data);
    }
    else 
    {
        redirect('Welcome');
    }
}
// End Function

 // Logout Function 
public function logout()
{
    $this->session->unset_userdata('adminId');
    $this->session->sess_destroy();
    redirect('Login');
}
// End Function

// Manage Blog Categories
public function blog_categories($reload)
{

    $data['list']=$this->admin_model->blog_categories();
    if(isset($reload) && $reload !='')
    {
      $this->load->view('datatable',$data);
    }
    else{
    //print_r($data['list']);die();
    $this->load->view('users-list',$data);
}
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM