2012-01-14 16 views
0

タイトルとして。PHPでは、着信HTTPリクエストがPOSTかGETかを判断する方法はありますか?

また、私はfile_get_contents(php:// input)を使用してそれらを取得します。
また、Webで長い時間学習しても、PHPで$ _POSTと$ _GETを使用する方法についてはちょっと混乱しています。私が知っているように

、彼らが配列されているが、多くの例では、私が

$_POST['key'] 

のようなキーに入れて人々を参照してくださいしかし、何がキーとそれに対応する値を定義しますか?
今、私はクライアントからHTMLフォームを取得していませんが、インターネットの例は主にそれに対処しています。

誰かが私の質問を得ることができ、いくつかの例と解決策を私に教えてください、ありがとう!

+0

注釈として、 $ _REQUESTを調べてみましょう。GETとPOSTに共通のコードが必要な場合は非常に便利です。 –

答えて

4

$_SERVER['REQUEST_METHOD']があります。SAPIモードで実行すると、常にGET、POST、DELETE、HEADなどのHTTP要求のメソッドが含まれます。この$ _SERVER varは100%信頼性があります。フォームフィールドの有無を確認することは信頼できません。特に、フォームを変更する場合は、どちらか一方のタイプミスがあり、探しているものがもう存在しないためコードが失敗します。

if ($_SERVER['REQUEST_METHDO'] == 'POST') { 
    $val = $_POST['somefield']; 
} 
1

$ _SERVER ['REQUEST_METHOD']はあなたに型を与えますが、キーは通常、前のページまたはURLの内容で提供される変数によって定義されます。等

http://www.blah.com?key=something&key2=somethingelse

またはページ上のフォーム、

メソッド「ポスト」は、フォームからの変数を非表示にし、上記の例に見られるように、URL内のサイレント代わりにそれを渡します。 GETはそれらをURLに表示します(私が正しく覚えている場合)

関連する問題