Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/239.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php CodeIgniter未正确重定向_Php_Codeigniter_Codeigniter 3 - Fatal编程技术网

Php CodeIgniter未正确重定向

Php CodeIgniter未正确重定向,php,codeigniter,codeigniter-3,Php,Codeigniter,Codeigniter 3,我试图实现只有登录用户才能访问的基本部分。我覆盖了CI_控制器,如下所示: //file created in application/core/MY_Controller.php class Auth_Controller extends CI_Controller { function __construct(){ parent::__construct(); $this->load->library('session');

我试图实现只有登录用户才能访问的基本部分。我覆盖了CI_控制器,如下所示:

//file created in application/core/MY_Controller.php
class Auth_Controller extends CI_Controller {

    function __construct(){
        parent::__construct();

        $this->load->library('session');

        if ($this->session->userdata('user_logged') !== null){
            redirect(base_url() . 'dashboard');
            die();
        } else {
            redirect(base_url() . 'auth/login');
            die();
        }
    }
class Dashboard extends Auth_Controller
{
    public function __construct()
    {
        parent::__construct();
    }

    public function index()
    {
        $this->load->view('dashboardView');
    }
}
然后,我从Auth_Controller扩展所有其他仅对登录用户可用的控制器,如下所示:

//file created in application/core/MY_Controller.php
class Auth_Controller extends CI_Controller {

    function __construct(){
        parent::__construct();

        $this->load->library('session');

        if ($this->session->userdata('user_logged') !== null){
            redirect(base_url() . 'dashboard');
            die();
        } else {
            redirect(base_url() . 'auth/login');
            die();
        }
    }
class Dashboard extends Auth_Controller
{
    public function __construct()
    {
        parent::__construct();
    }

    public function index()
    {
        $this->load->view('dashboardView');
    }
}
但登录成功后,它不会重定向到dashboardView


有人知道到底发生了什么吗?

在代码的这一部分中,您将无限重定向到仪表板控制器:

if ($this->session->userdata('user_logged') !== null){
    redirect(base_url() . 'dashboard');
    die();
}
如果用户未登录,则使用此重定向至登录表单:

class Auth_controller extends CI_Controller {

    function __construct(){
        parent::__construct();

        $this->load->library('session');

        // If the user is not logged in
        if ($this->session->userdata('user_logged') === null){
            // Redirect to http://yoursite/auth/login
            // No need for the base_url function, redirect does it for you
            redirect('auth/login'); 
            // You don't have to exit/die, redirect() already does that
        }
    }
}
意见

如果我检查空值,将像这样使用!=无效的但在CI中,最好选择检查空而不是空。 如果我使用重定向,我会像重定向“仪表板”一样使用它; 代码将是

确保您的站点在URL中加载时没有index.php。如果没有,请搜索.htaccess以访问您的站点


不重定向到dashboardView是什么意思?它显示白色页面吗?重定向到另一个页面?如果我使用另一个视图,我会遇到同样的问题。浏览器显示:页面未正确重定向,仅控制器的第一个字母应为文件名的大写字母,此处解释的类名应为$this->session->userdata'user_logged'!==null重定向到仪表板,不是吗?我们检查用户是否未登录,如果是,我们重定向到仪表板,如果他已登录,我们不做任何操作并继续执行控制器的其余部分,检查更新的答案。这里解释的文件名和类名中只有控制器的第一个字母应为大写是,现在它更有意义了。我采用了Mehdi的方法,但是在CI的会话库不起作用的情况下,我使用了$\u SESSION,我也尝试了加载代码和自动加载。@wolfgang1983在这种情况下,我应该将我的_Controller.php重命名为_Controller.php,谢谢。