1

我在 _construct 函数中使用重定向时遇到问题,在时间表控制器中,我编写了以下代码,但在浏览器中出现错误“

此问题有时可能是由禁用或拒绝接受 cookie 引起的。

这是我的代码

class Timesheet extends MY_Controller {

    public function __construct()
    {
        parent::__construct();
        $this->load->model('timesheet_model');
        //$this->load->library('auth');
        $username=$this->session->userdata('logged_in');

        //$this->load->model('login_model');
        if($username['fullname']!=""){
        redirect('timesheet');

        }
        else{
        redirect('login');
        }

    }

请帮助我找到解决此问题的方法。谢谢。

4

3 回答 3

2

在我看来,您就像在循环中一样。

您检查 $username 数组中的 fullname 元素是否为空,如果是,则重定向回同一控制器。我敢打赌,在网络服务器抛出您提到的错误之前,它会像那样绕圈子一段时间。

如果我正在阅读您正在尝试正确执行的操作,如果存在 fullname 元素以显示您要显示的任何信息,您不会在 Timesheet 构造函数中调用另一个函数吗?

我建议更改您的逻辑以执行以下操作:

if($username['fullname'] == ""){
    redirect('login');
    }
    else{
    //go to another controller method here
    }
于 2013-04-17T05:35:13.110 回答
0

好的。我知道了。该错误只是因为我正在重定向到我编写代码的同一个控制器。每次重定向到时间表时,它都会进入构造函数并再次重定向到时间表。同样的事情就像一个无限循环一样工作。

所以故障是重定向到同一个控制器。

于 2013-04-17T05:36:26.763 回答
0

像这样使用重定向:redirect('timesheet', 'refresh');

于 2014-02-04T13:17:01.537 回答