页面无法使用-ERR_TOO_MANY_REDIRECTS

时间:2019-05-30 11:25:15

标签: php codeigniter-3

当此代码在codeigniter中实现时(这种类型的错误显示=>本地主机将您重定向了太多次。)

1)application / config / config.php

    $config['enable_hooks'] = TRUE;

2)application / config / hooks.php

    $hook['post_controller_constructor'][] = array(
        'function' => 'checkAdminLogin',
        'filename' => 'authenticate_login.php',
        'filepath' => 'hooks',
    );

3)application / hooks / authenticate_login.php(创建新的php文件(authenticate_login.php))

    function checkAdminLogin() {
        $CI = & get_instance();
        if (!getSession('is_logged_in')) {
            redirect('admin/login');
        } else
            return true;
    }

    function getSession($key) {
        $CI = & get_instance();
        return $CI->session->userdata(trim($key));
    }

1 个答案:

答案 0 :(得分:1)

访问者进入管理员/登录页面时,您的代码将检测到他尚未登录,并再次将其重定向到管理员/登录。...一遍又一遍...

您必须检测登录页面路由,并且不能从中重定向。

类似的东西:

function checkAdminLogin() {
    $CI = & get_instance();
    if (!getSession('is_logged_in'))
    {
        if ($_SERVER['REQUEST_URI']!='/admin/login') {
            redirect('admin/login');
        }else{
            // User is on login page, don't redirect him again
        }
    } else
        return true;
}

但是我不确定返回true对您而言意味着什么。基本上这里有3种情况:

  1. 已登录
  2. 未登录,但在登录页面上
  3. 未登录且不在登录页面上

所以您必须考虑所有这3个。