Codeigniter链接不起作用

时间:2017-08-11 17:06:50

标签: php codeigniter

问题是我将我的功能从一个控制器重定向到另一个控制器而且我不知道为什么它没有被重定向到那里但是当我使用重定向功能时直接进入登录page(RegistrationController)但是当我加载视图然后它工作。

请考虑以下代码段。我希望它被重定向到AdminController,但它没有被重定向到那里。我在AdminController中有一个观点。

除此之外,该视图中的链接也不起作用,只要点击它们,它们也会加载RegisterationController

<?php

    class RegistrationController extends CI_Controller{
        function validate_credentials(){

        $username = $this->input->post('hotelEmail');
        $password = $this->input->post('hotelPassword');

        $this->load->model('AdminModel');
        $query = $this->AdminModel->validate($username, $password);

        if($query) // If the user's credentials validated . . .
        {
            $data = array(
                'hotel_email'   => $this->input->post('hotelEmail'),
                'hotel_id'  => true
                );
            $this->session->set_userdata($data);

            redirect('AdminController');
        }else{

            $this->session->set_flashdata('wrong_credentials', 'Wrong Username or Password!');
            $this->load->view('login'); 

        }

    }
?>

视图控制器的类是从AuthenticationController扩展的,如下所示

    <?php

    class AuthenticationController extends CI_Controller{
        public function __construct(){
            parent::__construct();
            $this->checkSession();
        }

        public function checkSession(){
            if(!$this->session->set_userdata('hotel_id')){
                redirect('RegistrationController/');
                exit();
            }
        }
    }


?>

3 个答案:

答案 0 :(得分:1)

checkSession()功能中删除 set_userdata 中的设置_ ,您就可以了!

答案 1 :(得分:0)

首先在控制器中加载会话或autoload.php

public function __construct()
{
    parent::__construct();
    $this->load->library('session');
}

接下来,如果用户凭据正确,请致电validate_credentials以创建会话。

接下来,调用此函数:

public function checksession()
{
    print_r($this->session->userdata); 
}

答案 2 :(得分:0)

您使用 set_userdata 代替 userdata

使用此代码

public function checkSession(){
    if(!$this->session->userdata('hotel_id')){
        redirect('RegistrationController/');
        exit();
    }
}