重定向在codeigniter _construct函数中不起作用

时间:2013-04-17 05:25:59

标签: codeigniter url redirect construct

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

  

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

这是我的代码

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');
        }

    }

请帮我找到摆脱这个问题的方法。 感谢。

3 个答案:

答案 0 :(得分:2)

在我看来,你好像在一个循环中走来走去。

检查$ username数组中的fullname元素是否为空,如果是,则重定向回同一个控制器。在网络服务器引发你提到的错误之前,我愿意打赌它会在这样的圈子中流传一段时间。

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

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

if($username['fullname'] == ""){
    redirect('login');
    }
    else{
    //go to another controller method here
    }

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

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