post_controller_constructor在CodeIgniter中挂钩重定向isseus

时间:2015-09-30 10:38:02

标签: php codeigniter redirect hook

大家好,任何人都可以帮我解决codeigniter中的重定向问题。 我为登录验证创建了一个钩子。

下面是我的钩子

<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Login_auth {

    function __construct() {
        $this->CI = &get_instance();
         if (!class_exists('session'))
        {
            $this->CI->load->library('session');
        }            
    }

    function auth(){                                   
        if(! $this->CI->session->userdata('islogin')
        {
            redirect(base_url().'loginCtrl/index');
        }
    }

创建钩子的目的是当我在没有登录时尝试输入任何URL时应该重定向到登录页面

但它显示网页有重定向循环

1 个答案:

答案 0 :(得分:0)

它将有一个重定向循环,因为它正在检查会话的每个页面。包括登录页面。

你可以做这样的事情;

if(!$this->CI->session->userdata('islogin')) {
    // Not logged in. Are they trying to login?
    if(!in_array($this->CI->uri->uri_string(), array('login', 'forgot-password')))
    {
        redirect('login');
    }
}

这将检查用户是否已登录。如果不是,则会检查当前的uri_string并将其与“允许的”uri的array('login', 'forgot-password')

数组进行比较

希望这有帮助。