実際に$ _GETと$ _POSTの両方でデータを取得できますか?そして、これは$ _REQUESTにあるものとどのように関連していますか?
答えて
はい、可能です。このフォーム、$_GET["a"] == "123"
、$_GET["b"] == "456"
、$_POST["a"] == "llama"
、$_POST["b"] == "duck"
、および$_POST["go"] == "Submit me!"
を提出するには
<form action="foobar.php?a=123&b=456" method="post">
<input type="text" name="a" value="llama">
<input type="text" name="b" value="duck">
<input type="submit" name="go" value="Submit me!">
</form>
:このようなフォームを考えてみましょう。 the php.ini documentationが説明するように、これは$_REQUEST
スーパーグローバルにどのように関連するか
は、request_order
(または古いvariables_order
)PHPの設定の値に依存します。
可能です。 request_order
または(設定されていない場合)variables_order
ディレクティブは、どちらのキーにもキーが設定されている場合、どちらが優先されるかを$_REQUEST
で決定します。
間違いなく両方のデータがある場合もあります...(非常にシンプルな)次のページ考えてみましょう:フォームのaction
は、クエリ文字列が含まれており、この方法はpost
であること
<body>
<form method="post" action="params.php?myparam=myval">
<input type="text" name="param1"></input>
<input type="submit" name="submit" value="submit" />
</form>
</body>
お知らせ。 $_GET
は$_POST
がフォームのparamsが含まれている、クエリ文字列のparamsを含み、$_REQUEST
は両方のアレイからマージされたパラメータが含まれています。スーパーグローバルは$_REQUEST
で処理される方法を制御するための
array(3) {
["myparam"]=>
string(1) "myval"
["param1"]=>
string(0) ""
["submit"]=>
string(6) "submit"
}
チェックアウトrequest_order
。
$ _GETと$ _POSTの名前にもかかわらず、実際にはGETやPOSTは必要ないので、PHPで可能です。
- $ _GETには、フォームエンコードされた変数として解析されたクエリー文字列が含まれています。
- $ _POSTは形式でエンコードされた変数
実際のリクエストメソッドが何であるかは重要ではありませんとして解析リクエストボディが含まれている - それは置くことができ、それらのスーパーグローバルはまだ読み込まれますでしょう。
だから、私の机から立ち上がることなく、123のラマと456のアヒルを見ることができます!クール。 – Don
ラマとアヒルについては助けてください。 :) – bcat