私は常に、よりphpish $this->_request->getPost('this')
andを使用してきました$this->_request->getQuery('that')
(これは、getGetの代わりにgetqueryを使用するとあまり論理的ではありません)。
この2つの中で何が良いですか?(または別のより良い方法がある場合)
の選択について簡単に説明しgetQuery()
ます。言葉遣いの選択は、データがどのように得られたかではなく、どのようなデータであるかによって決まります。GET と POST は単なるリクエスト メソッドであり、POST リクエストの場合は「投稿データ」と呼ばれるセクションを含む、あらゆる種類の情報を運びます。GET リクエストにはそのようなブロックはありません。GET リクエストが運ぶ変数データは、URL のクエリ文字列の一部です (? の後の部分)。
したがって、getPost()
POST リクエストのポスト データ セクションからgetQuery()
データを取得する一方で、GET または POST リクエスト (および他の HTTP リクエスト メソッド) のクエリ文字列からデータを取得します。
(GET リクエストは、DB 行の変更など、副作用を引き起こす可能性のあるものには使用しないでください)
したがって、最初の質問への回答として、メソッドgetPost()
とgetQuery()
メソッドを使用すると、データ ソースの場所を確認できます (気にしなくてgetParams()
も機能しますが、追加のデータが含まれる場合があります)。
このメソッドでphp入力を検証するためのベストプラクティスは何ですか?
入力を検証するのに最適な場所は、最初に使用する場所です。つまりgetParams()
、 、getPost()
、またはから引っ張るとgetQuery()
。このようにして、データは常に必要な場所に正確に保存され、データを渡しても安全であることがわかります。別のコントローラー (またはコントローラー アクション) に渡す場合は、念のために再度確認する必要があることに注意してください。これを行う方法はアプリケーションによって異なりますが、それでも確認する必要があります。