多级登录codeigniter重定向不成功

时间:2017-01-04 06:07:02

标签: php mysql codeigniter

我的数据库:

enter image description here

这是我的控制器

class Account extends CI_Controller {

    public function __construct() {
        parent::__construct();
        $this->load->helper('url');
        $this->load->model('m_login'); 
    }

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

    public function user() {
        $data['login'] = $this->m_login->login();
        redirect('home/index');
    }
}

这是我的模特

<?php
class M_login extends CI_Model {
    public function __construct() {
        $this->load->database();
    }

    public function login() {
        $username = $this->input->POST('username', TRUE);
        $password = md5($this->input->POST('password', TRUE));
        $data = $this->db->query("SELECT * from registrasi where username='$username' and password='$password' LIMIT 1 ");
        return $data->row();
    }
}

我创建了一个新的控制器,用于将用户重定向到不同的功能

public function index() {
    switch ($this->session->userdata('level')) {
        case 'dosen':
            redirect('baprps/input_bap');
            break;
        case 'dosen koordinator':
            redirect('baprps/grafik');
            break;
        case 'dekanat':
            redirect('baprps/grafik');
            break;
        case 'mahasiswa':
            redirect('baprps/verif_bap');
            break;
        default:
            redirect('account/login');
            break;
    }
 }
}

当我运行它时,没有错误,但为什么函数索引总是默认并重定向到('account / login'); ??需要一些帮助,谢谢..

3 个答案:

答案 0 :(得分:1)

请查看您的代码。你已经在这里关闭了你的课程。

class M_login extends CI_Model {
    public function __construct() {
        $this->load->database();
    }

    public function login() {
        $username = $this->input->POST('username', TRUE);
        $password = md5($this->input->POST('password', TRUE));
        $data = $this->db->query("SELECT * from registrasi where username='$username' and password='$password' LIMIT 1 ");
        return $data->row();
    }
}

但是你仍然试图在公共函数index()函数后关闭,请更正你的代码,然后再试一次。

希望这会对你有所帮助。

答案 1 :(得分:0)

问题是您忘记设置会话索引&#39;级别&#39;所以请按如下方式编辑帐户控制器:

class Account extends CI_Controller {

        public function __construct() {
            parent::__construct();
            $this->load->helper('url');
            $this->load->model('m_login'); 
        }

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

        public function user() {
           $data['login'] = $this->m_login->login();
           $this->session->set_userdata('level',$data['login']['level']); 
           redirect('home/index');
        }
    }

我希望这对你有所帮助。

答案 2 :(得分:0)

试试这个...我认为你不需要制作一个新的控制器......

控制器:

<?php

class Account extends CI_Controller {

    public function __construct() {
        parent::__construct();
        $this->load->helper('url');
        $this->load->model('m_login'); 
    }

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

    public function user() {
        $this->m_login->login();
    }
}

型号:

<?php 
class M_login extends CI_Model {
    public function __construct() {
        $this->load->database();
    }

    public function login() {
        $username = $this->input->POST('username', TRUE);
        $password = md5($this->input->POST('password', TRUE));
        $data = $this->db->query("SELECT * from registrasi where username='$username' and password='$password' LIMIT 1 ");

        if ($data->num_rows() > 0) 
        {

        $result = $data->row();
        $this->load->library('session');
        $this->session->set_userdata('level',$result->level);

        $this->baprps();
        }
        else
        {
           redirect('home/index');
        }

    }


public function baprps() {
    switch ($this->session->userdata('level')) {
        case 'dosen':
            redirect('baprps/input_bap');
            break;
        case 'dosen koordinator':
            redirect('baprps/grafik');
            break;
        case 'dekanat':
            redirect('baprps/grafik');
            break;
        case 'mahasiswa':
            redirect('baprps/verif_bap');
            break;
        default:
            redirect('account/login');
            break;
    }
}

}

OR

如果你想制作一个单独的控制器

将控制器更改为

 public function user() {
        $data['login'] = $this->m_login->login();
        redirect('home/index');
    }

 public function user() {
        $data = $this->m_login->login();
         $this->load->library('session');
         $this->session->set_userdata('level',$data->level);
        redirect('home/index');
}