首頁 > 後端開發 > php教程 > 如何處理ThinkPHP框架中空操作和空白控制器

如何處理ThinkPHP框架中空操作和空白控制器

little bottle
發布: 2023-04-06 10:54:01
轉載
3615 人瀏覽過

這篇文章,小編將帶大家學習處理ThinkPHP框架中空操作和空控制器,所謂的空操作和空控制器,簡而言之就是系統中不存在該方法或控制器,它們會導致系統報錯誤。有興趣的朋友一起來了解一下吧。

正確URL(測試環境):  http://oa.com/index.php/admin/public/login  存取如下:

#一:空白操作處理

 修改方法為loginw時報錯誤如下:

系統預設內建報錯機制:1.使用者體驗差  2、嚴重安全隱患。

查看父類別控制器檔案Controller.class.php,發現如下程式碼:

意思是說,如果呼叫的方法不存在但定義了_empty()方法,就會去執行_empty(),或是展示與呼叫的方法同名的範本檔案。我們不可能為每一個未知的方法建立模板,因此這裡我們使用_empty()方法來處理空操作。在控制器Public中定義_empty()方法,如下:

運行結果:

##可以透過在_empty()方法中引入一個模板文件,使頁面更加美觀,此處只是測試。但當我們有很多控制器時,在

每個控制器中分別定義一個_empty()不太合理,此時可以在父類Controller.class.php中定義,則子類別皆可使用,如下:

 

但通常不會修改父類別Controller.class.php中的程式碼,可透過在子類別與父類別之間添加一個中間控制器來實現(詳見下篇)。

二、空白控制器處理

# 修改控制器名稱為Publicu 錯誤如下:

 

查看App.class.php 有以下程式碼:

#因此可再建立一個EmptyController.class.php控制器並且內建_empty()方法,當存取的控制器不存在時,存取此控制器。

再次造訪頁面,如下:

#相關教學:

PHP影片教學

 

#

以上是如何處理ThinkPHP框架中空操作和空白控制器的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:cnblogs.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板