繁体   English   中英

页面未正确重定向

[英]The page isn’t redirecting properly

创建重定向库时,我将其命名为redirector.php,并且已经在autoload.php中运行该错误。

这是我的redirector.php

class Redirector{
    protected $CI;

    public function __construct(){
        //needed for every libraries
        $this->CI =& get_instance();

        $userid = $this->CI->session->userdata('userid');

        if(isset($userid)){
            redirect('/rey');
        }else{
            redirect('/log_in');
        }
    }
}

这是我的log_in控制器

if($check){
    $arr = array(
        'userid' => $check->id,
        'username' => $username,
        'password' => $password
    );

    $this->session->set_userdata($arr);
    //redirect('/rey','refresh');
}else{
    echo "<p>User does not exist</p>";
}

PS:当我在库中创建代码时,我只会遇到这种错误,但是如果我将这段代码放在每个构造函数中,除了log_in.php之外的每个文件,我都不会出错

$userid = $this->session->userdata('username');
        if(empty($userid)){
            redirect('/log_in','refresh');
        }

编辑

我在索引为log_in的重定向中没有出现任何错误,但是如果我设置了会话,则它没有重定向到rey.php,这就是我所做的。

if(empty($userid) && $this->CI->uri->segment(1) != 'log_in'){
            redirect('/log_in');
        }else{
            if(isset($userid) && $this->CI->uri->segment(1) === 'log_in'){
                redirect('/rey');
            }
        }

您的redirector.php将在所有控制器之前运行。.因此,代码重定向将在您的登录控制器之前运行。.因此它将重定向太多次。.检查每个控制器上的登录更好。

如果仍要使用此库,请将代码更改为此。

class Redirector{
    protected $CI;

    public function __construct(){
        //needed for every libraries
        $this->CI =& get_instance();

        $userid = $this->CI->session->userdata('userid');

        if(empty($userid) && $this->CI->uri->segment(1) != 'log_in'){
            redirect('/log_in');
        }

        if(!empty($userid) && $this->CI->uri->segment(1) == 'log_in'){
            redirect('/rey');
        }
    }
}

暂无
暂无

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

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