我使用時出現問題check_login函數。
當我輸入http://localhost/shopping/admin/login並輸入管理員用戶名和密碼時,它不會重定向到主頁管理頁面。但是當我嘗試 http://localhost/shopping/admin。它仍然會重定向到登錄頁面。檢查登錄並重定向Codeigniter不工作?
/**
* MY_Controller constructor.
*/
class MY_Controller extends CI_Controller
{
public $data = array();
function __construct()
{
parent::__construct();
// $this->load->library('session');
$controller = $this->uri->segment(1);
switch ($controller) {
case 'admin': {
$this->load->helper('admin');
$this->_check_login();
break;
}
default: {
}
}
}
/*
* Check login admin
*/
function _check_login()
{
$controller = $this->uri->rsegment('1');
$controller = strtolower($controller);
$login = $this->session->userdata('login');
//redirect to login if not logged in.
if (!$login && $controller != 'login') {
redirect(admin_url('login'));
}
//redirect to home if login successful.
if ($login && $controller == 'login') {
redirect(admin_url('home'));
}
}
}
/*
* admin_helper
*/
function admin_url($url = '')
{
return base_url('admin/'.$url);
}
但是當我刪除
//redirect to login if not logged in.
if (!$login && $controller != 'login') {
redirect(admin_url('login'));
}
後,我用我的管理員登錄,它重定向到主頁成功。
爲什麼它不起作用?
/*
* Controller login
*/
class Login extends MY_Controller
{
function index()
{
$this->load->library('form_validation');
$this->load->helper('form');
if ($this->input->post()) {
$this->form_validation->set_rules('login', 'login', 'callback_check_login');
if ($this->form_validation->run()) {
$this->session->set_userdata('login', true);
redirect(admin_url('home'));
}
}
$this->load->view('admin/login/index');
}
/*
* Kiem tra login
* */
function check_login()
{
/*
$this->load->library('form_validation');
$this->load->helper('form');
*/
$username = $this->input->post('username');
$password = $this->input->post('password');
$password = md5($password);
$this->load->model('admin_model');
$where = array('username' => $username, 'password' => $password);
if ($this->admin_model->check_exists($where)) {
return TRUE;
}
$this->form_validation->set_message(__FUNCTION__, 'Login fail.');
return FALSE;
}
}
你在哪裏設置不檢查用戶是否驗證過 控制器值當用戶點擊登錄按鈕時會話? –
@SoravGarg sr,我編輯! – hyphens2
你在哪裏編輯我無法找到你的改變 –