Codeigniter:重定向不起作用

时间:2015-02-22 15:00:53

标签: php codeigniter redirect

我已经通过这个类似的问题搜索了其他一些帖子,但我还没有成功完成这项工作。不知道问题所在。

  • 我尝试从Home控制器登录/注销后重定向到主Login控制器

我在开发环境变量中设置了error_reporting(E_ALL)并且没有错误,并尝试在我的Login控制器中加载网址助手:$this->load->helper('url');

这是主Home控制器:

public function index() {
        if (($this->session->userdata('username') != "")) {
            $this->user();
        } else {
            $this->load->view('login');
        }
    }

这是Login控制器:

public function index()
    {
        $this->load->view('login');
    }
    public function logout()
    {
                $profile = array(
                    'userid' => '',
                    'username' => '',
                    'role' => '',
                    'custid' => '',
                    'custname' => '',
                    'logged_in' => FALSE 
                    );

        $this->session->unset_userdata($profile);
        $this->session->sess_destroy();
        redirect('/', 'refresh');
    }
    public function logon()
    {
        $data = $_POST;
        $this->db->select("people.*, customers.name as 'custname', customers.id as 'custid'");
        $this->db->from('people');
        $this->db->join('customers', 'customers.id = people.customer');
        $this->db->where('people.username', $data['username']);
        $this->db->where('people.password', $data['password']);
        $query = $this->db->get();
        $results = $query->result_array();

        if(count($results) > 0)
        {
            $profile = array(
               'username'  => $results[0]['username'],
               'userid'  => $results[0]['id'],
               'role'  => $results[0]['role'],
               'date_format'  => $results[0]['date_format'],
               'custname' => $results[0]['custname'],
               'custid' => $results[0]['custid'],
               'logged_in' => TRUE
            );

            $this->db->select("*");
            $this->db->from('hub.settings');
            $this->db->where('customer', $profile['custid']);
            $query = $this->db->get();
            $results = $query->result_array();
            if(count($results) > 0)
            {
                $profile['contacthtml'] = $results[0]['contacthtml'];
                $profile['accentcolor'] = $results[0]['accentcolor'];
            }

            $this->session->set_userdata($profile);
            redirect('/', 'refresh');
        }else{
            redirect('/login', 'refresh');
        }
    }

我得到的只是网址http://localhost:85/login/logon和空白屏幕。

我也尝试过:redirect('/home', 'refresh');redirect('/home');redirect('home', 'refresh');redirect('home/', 'refresh');redirect('/home/', 'refresh');

编辑:

这是开发工具中网络部分的响应:

enter image description here

2 个答案:

答案 0 :(得分:1)

如评论中所述,配置文件中的base_url必须使用尾部斜杠设置。在你的情况下:

$config['base_url'] = 'http://localhost:85/';

答案 1 :(得分:0)

可能是由于Chrome重定向问题造成的,如http://forums.asp.net/t/1599598.aspx?Response+Redirect+problem+in+Google+Chrome所述。 你应该尝试其他浏览器。如果是这样,那么您应该清除Chrome缓存。