【问题标题】:Redirect Loop error in CodeIgniterCodeIgniter 中的重定向循环错误
【发布时间】:2013-02-23 21:56:27
【问题描述】:

我为此工作了一天。我得到了这个same problem,但我不明白。

<?php
class Users extends CI_Controller
{
    function index()
    {
        redirect('Users/login');
    }

    function login()
    {
        $data['title']        = 'Selamat datang di Sistem Informasi Koperasi';
        $data['main_content'] = 'login';
        $this->load->view('Users/template', $data);
    }

    function logout()
    {
        $this->session->sess_destroy();
        $this->session->set_flashdata('info_login', 'Anda sudah keluar dari sistem');
        redirect('Users/login');
    }

    function validate()
    {
        //Load User Model
        $this->load->model('Users_Model');
        //Validate User
        $query = $this->Users_Model->validate();


        if($query != '') {
            //Mengambil Roles dari Groups
            $roles = $this->Users_Model->roles($query->group_id);

            //$this->login_model->last_login($query);
            $data = array(
                'username' => $query->username,
                'roles' => $roles,
                'is_logged_in' => true
            );
            $this->session->set_userdata($data);

            if($roles == 'administrators') {
                redirect('Administrators/index');
            } elseif($roles == 'managers') {
                redirect('Managers/index');
            }

            else {
                $this->session->set_flashdata('info_login', 'Mohon maaf anda belum terdaftar sebagai Group! Silahkan hubungi admin!');
                redirect('Users/login');
            }
        } else {
            $this->session->set_flashdata('info_login', 'Maaf,username dan password yang anda masukkan salah,silahkan coba kembali!');
            redirect('Users/login');
        }
    }

}

在 Chrome 和 Firefox 中,我收到此消息。我该怎么办?

此网页有一个重定向循环 该网页位于 http://localhost/simpks/index.php/Users/login 也导致了 许多重定向。清除此站点的 cookie 或允许 第三方 cookie 可能会解决此问题。如果不是,它可能是一个 服务器配置问题,而不是您的计算机问题。这里 有一些建议:稍后重新加载此网页。了解更多信息 问题。错误 310 (net::ERR_TOO_MANY_REDIRECTS):有太多 重定向。

这是我的视图模板.php

<?php
$this->load->view('includes/header',$main_content); 
$this->load->view('Users/'.$main_content);
$this->load->view('includes/footer');
?>

这是我的模型Users_Model.php

    <?php

    class Users_Model extends CI_Model{

        function validate(){    
            $this->db->where('username',$this->input->post('username'));
            $this->db->where('password',md5($this->input->post('password')));
            $query = $this->db->get('Users');

            if($query->num_rows == 1){
                $row = $query->row();
                return $row;
            }
        }

        function roles($id){
            $this->db->where('id',$id);
            $query = $this->db->get('Groups');

            if($query->num_rows == 1){
                $row = $query->row();
                return $row->name;
            }
        }

    }

?>

【问题讨论】:

  • 我在login 方法中看不到重定向。
  • 您不再在登录页面视图中重定向?

标签: codeigniter-2 codeigniter-url redirect-loop


【解决方案1】:

如果您在视图中调用它,请使用包含而不是加载器。 例如:include 'includes/footer';

【讨论】:

    【解决方案2】:

    您不必在视图类中输入redirect('Users/login'); 进行会话检查。擦掉就行了。

    如果您需要重定向,请将其放在另一个页面中,例如 users/test。如果用户/测试控制器中的用户/测试调用重定向方法中的会话已过期。为了更好的结构,我认为你应该最小化 php 函数。

    【讨论】:

      【解决方案3】:

      我也遇到了这个问题,但是两个页面的控制器我都有重定向方法,所以我在重定向方法中添加了refresh,试试吧。

      阅读页面底部CI redirect with refresh

      <?php
      class Users extends CI_Controller
      {
          function index()
          {
              redirect('another_controller/login');
          }
      }
      
      Create another controller - another_controller.php
      
      class another_controller extends CI_Controller
      {
          function login()
          {
               $this->load->view('home');
          }
      }
      

      【讨论】:

        猜你喜欢
        • 2014-04-24
        • 1970-01-01
        • 1970-01-01
        • 2015-07-09
        • 1970-01-01
        • 1970-01-01
        • 2018-03-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多