【问题标题】:redirect is not working in codeigniter _construct function重定向在 codeigniter _construct 函数中不起作用
【发布时间】:2013-04-09 18:02:01
【问题描述】:

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

    }

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

【问题讨论】:

    标签: codeigniter url redirect construct


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

        在我看来你好像在循环中。

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

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

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

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

        【讨论】:

        • 谢谢。几分钟前我才意识到。我在回答中提到了它。感谢您的回答。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-12-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多