ホームページ >PHPフレームワーク >ThinkPHP >ThinkPHP の空の操作と空のコントローラーの処理について
次のチュートリアル コラムでは、ThinkPHP の空の操作と空のコントローラーの処理について紹介します。 ThinkPHP の空の操作、空のコントローラーの処理専門家が Web サイトを閲覧すると、Web サイトのエラー メッセージがハッカーに Web サイトを攻撃するための情報を提供します。たとえば、空のオペレーションと空のコントローラーの場合、Web サイトのバックエンドで使用されるフレームワークがハッカーに公開され、ハッカーはフレームワークの脆弱性に基づいて Web サイトを攻撃します。したがって、ハッカーに手がかりを残さずに、空のコントローラーと空の操作を処理する必要があります。
1. 操作処理なし最初に効果を見てみましょう:私の場合、ファイル IndexController.class には hello がありません。 .php メソッドにアクセスしようとすると、次の情報が報告されます:
注: no-op の本質: オブジェクト (コントローラー) が存在しないメソッドを呼び出します
ThinkPHP に詳しい開発者にとっては、この Web サイトのバックエンドが ThinkPHP フレームワークを使用していることが簡単にわかります。では、これらの問題をブロックするにはどうすればよいでしょうか?今日はそれについて話します。#解決策 1、コントローラーに __call($method,$argvs) メソッドを追加します
##このようにして、hello メソッドに再度アクセスすると、コントローラーの __call($method,$args) メソッドがデフォルトで呼び出されます。 ######しかし!多くのコントローラーがある場合、コントローラーごとに __call($method,$args) メソッドを記述する必要がありますか?明らかに無理です!したがって、継承を通じてこのメソッドをコントローラーの親クラスに書き込む必要があります。 Controller.class.php にアクセスすると、__call() メソッドが見つかります。TP がすでにそれを実行しているためです。彼の考えでは、コントローラーに _empty() というメソッドを定義したかどうかによって決まります。定義されている場合は、このメソッドを呼び出します。
共通コントローラーの親クラスの場所: ThinkPHP/Library/Think/Controller.class.php解決策 2空のオペレーションの名前と同じ名前のテンプレートを作成すると、システムが自動的にそのテンプレートを呼び出します。
2. 空のコントローラーの処理BeijingController.class.php ファイルがないため、エラーが報告されます。 !
TP フレームワークのソース コードを分析すると、次の解決策が得られます。
したがって、空のコントローラーを定義する必要があります。存在しないコントローラーにアクセスすると、指定したエラーに従ってエラーが報告されます。さて、空のオペレーションや空のコントローラーの話はやめましょう O(∩_∩)O~~
以上がThinkPHP の空の操作と空のコントローラーの処理についての詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。