当此代码在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));
}
答案 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种情况:
所以您必须考虑所有这3个。