首先我們要說的是在什麼情況下能夠用到空操作或者空控制器。
使用空操作和空控制器的好處有哪些。
我們下面來設立乙個場景,形象的說明他的作用。
假如,你是一名黑客。當你看到乙個專案的**是的時候。想要破解它。
於是你將 變成了
這時如果你沒有進行空操作,或者是空控制器操作。會顯示如下提示。
非法操作login
和錯誤位置,這樣就可以通過知道你是什麼框架,來尋找框架漏洞。再就是使用者體驗大打折扣。
空控制器,如同上面,顯示,無法載入控制器,也是同樣的道理。所以。建立空操作或空控制器是很有必要的。
如何使用空操作。
我們使用方法 function _call(){}
這個方法tp框架種自帶,所以直接繼承父類就可以了,不用在每個控制器中都填寫。
下面我們來看看這個方法,
public function __call($method,$args) elseif(file_exists_case($this->view->parsetemplate()))else
}else}
從第二個if中我們了解到。 $this 表示的是當前控制器。 _empty表示的是方法。
如果當前控制器有這個_empty方法就進入 直接呼叫
第二種是,如果有與控制器相同名字的模板也是自動呼叫,
e(l('_error_action_').':'.action_name); 第三種是 他的意思就是我們所看到的錯誤資訊。
前面兩種建議選擇第一種,因為這種更加靈活。
TP框架部分 空控制器
namespace admin controller usethink controller class denglucontroller extendscontroller 這裡面只有test方法,如果訪問空的方法時,例如在瀏覽器輸入localhost thinkphp index.php adm...
TP的空操作 空控制器 跨控制器呼叫
系統在找不到請求的方法的時候,會定位到 empty 方法處理,利用這個機制,我們可以對使用者請求的不存在的所有操作進行統一。當系統找不到控制器,會定位到空控制器上emptycontroller managercontroller中的方法 public function managertest1 其他...
TP框架中 空控制器和空方法的解決方案
空操作 乙個物件 控制器 呼叫本身不存在的方法 空控制器 在例項化控制器物件的時候,沒有找到指定的類 1 在controller資料夾下新建login控制器 12 3456 78910 namespaceceshi controller usethink controller classloginc...