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