0
在我的codeigniter项目中,我有一个内核/ MY_Controller.php,每个控制器扩展了MY_Controller。我的控制器没有正确重定向
如果我$ignore = array()
的in_array应该忽略他们,但后来还是重定向到错误页,但随后显示Firefox的错误页面后,页面没有正确重定向
我不知道为什么没有忽略文件那是在我的数组?
任何建议提前致谢。我已经尝试过钩同样的问题。
<?php
class MY_Controller extends MX_Controller {
public function __construct() {
parent::__construct();
$files = glob(FCPATH . 'application/modules/admin/controllers/*/*.php');
foreach ($files as $file) {
$part = explode('/', dirname($file));
$permission = end($part) . '/' . basename($file, '.php');
$ignore = array(
'common/Column_left',
'common/Dashboard',
'common/Login',
'common/Logout',
'common/Footer',
'common/Header',
'error/Permission'
);
if (!in_array($permission, $ignore)) {
redirect('admin/error/permission');
}
}
}
}
显然你的in_array测试总是失败。基本的调试时间...所以你要做的第一件事就是检查所有有关的变量。所以你应该做一个var_dump($ files)和一个var_dump($ permission)来看看你实际得到了什么。所以$是否允许任何$ permission条目与$ ignore数组中的内容匹配? – TimBrownlaw
当你每次都在运行时,当你遇到不匹配的情况时,你将在无限循环中执行重定向。你认为你试图用这个做什么? – TimBrownlaw
如果folder/file.php不在该数组中,则会被重定向到该控制器。重定向( '管理员/错误/许可'); – user4419336