Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 页面不工作--错误\u太多\u重定向_Php_Codeigniter 3 - Fatal编程技术网

Php 页面不工作--错误\u太多\u重定向

Php 页面不工作--错误\u太多\u重定向,php,codeigniter-3,Php,Codeigniter 3,当此代码在codeigniter中实现时(此类错误显示=>localhost将您重定向了太多次) 1) application/config/config.php $config['enable_hooks'] = TRUE; 2) application/config/hooks.php $hook['post_controller_constructor'][] = array( 'function' => 'checkAdminLogin',

当此代码在codeigniter中实现时(此类错误显示=>localhost将您重定向了太多次)

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))


当你的访问者进入admin/login时,你的代码会检测到他没有登录,并再次将其重定向到admin/login…然后一次又一次地

您必须检测登录页面路由,而不是从中重定向

比如:

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个案例:

  • 登录
  • 未登录,但在登录页面上
  • 未登录且不在登录页面上

  • 所以你必须想一想代码中的所有3。

    1)和2)的含义是什么?在登录页面上你有一个重定向循环我提到了像1、2、3等步骤…你能显示
    admin/login
    admin文件夹名登录控制器名函数索引()的代码吗{die(“hello”);}什么是解决方案?在checkAdminLogin()中仅当您尚未登录页面时才执行重定向。你必须检查那里的当前页面url。
    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;
    }