大家好,任何人都可以帮我解决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时应该重定向到登录页面
但它显示网页有重定向循环
答案 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')
希望这有帮助。