2015-04-07 32 views
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'); 
     } 
    } 
} 
} 
+0

顯然你的in_array測試總是失敗。基本的調試時間...所以你要做的第一件事就是檢查所有有關的變量。所以你應該做一個var_dump($ files)和一個var_dump($ permission)來看看你實際得到了什麼。所以$是否允許任何$ permission條目與$ ignore數組中的內容匹配? – TimBrownlaw

+0

當你每次都在運行時,當你遇到不匹配的情況時,你將在無限循環中執行重定向。你認爲你試圖用這個做什麼? – TimBrownlaw

+0

如果folder/file.php不在該數組中,則會被重定向到該控制器。重定向( '管理員/錯誤/許可'); – user4419336

回答

0

請內改變的內容,如果要

redirect('admin/error/permission'); exit; 

只需添加一個退出。

+0

沒有工作嘗試過。 – user4419336