4

これについて少し掘り下げてきましたが、情報を見つけることができません

GETフォームが送信されたかどうか、およびフォームが送信されたかどうかを確認しようとしていますPOST。だから本質的に私は使用します:

if($_SERVER['REQUEST_METHOD'] == 'GET')

また

if($_SERVER['REQUEST_METHOD'] == 'POST')

ただし、フォームを送信せずにページに直接アクセスすると、単純なHTTPリクエストであることがわかりREQUEST_METHODますGET。何が得られますか?これは仕様によるものですか?その場合、前のステートメントを使用して、フォームがGET経由で送信されたかどうかを確認できません。少し冗長なようです...

もう少し知識のある人がこれを私に説明してください、それはありがたいです。ありがとう。

4

3 に答える 3

7

基本的に、ほとんどのHTTPリクエストはGETリクエストです。

if($_POST)POSTかどうかを確認するために使用できます。(これは、POSTデータを含む配列です。すべてのページが$_GET設定されているためif($_GET)、GETかどうかを判断することはできません)

ただし、if(count($_GET)>0)$_GETデータがあるかどうかはわかります。

ただし、GETデータを含むURLにPOSTリクエストを送信することで、POSTデータとGETデータの両方を持つことができます(つまりhttp://example.unreal?GetData=4&OtherData=no

于 2012-07-27T11:11:18.147 に答える
2

ブラウザからページに移動するか、リンクをクリックするだけでGETリクエストになります。

于 2012-07-27T11:11:27.210 に答える
1

同じ問題が発生し、これによって解決されました。フォームアクションがとして設定されているiprofile?r=search場合、リクエストメソッドは常にGETであり、フォーム内のすべての入力データが失われます。しかし、アクションをに設定するiprofile/?r=searchと、リクエストメソッドはPOSTになります。

アクションURLを確認することもできます。

于 2014-01-20T00:52:05.773 に答える