-3

amount to say のようなフィールドを投稿するフォームがあるとします。payment.php?amount=100

使用する代わりに

$amount=$_POST['amount'];

私が使用するとどうなりますか:

$amount=$_REQUEST['amount'];

私の質問は、$_REQUESTget 変数と post 変数を取得するためにメソッドを使用できる場合、フォームによって送信された post 変数が get 変数によってオーバーライドされるかどうかです。

4

4 に答える 4

6

PHP 5.3を使用している場合は、順序を選択できます$_REQUEST。PHPマニュアルから:

このrequest_orderディレクティブは、PHPが配列GETPOSTCookie変数を登録する順序を記述します。_REQUEST登録は左から右に行われ、新しい値が古い値を上書きします。

$_POSTそれが言うように、それはよりも優先され$_GETます。したがって、2 つの同じ値がある場合、 はの代わりに の値$_REQUESTを取ります。$_POST$_GET

于 2013-10-26T07:26:23.877 に答える
3

POST と GET は 2 つの異なるスーパー グローバルであり、互いにオーバーライドしません。

php.iniのrequest_order構成ディレクティブは、どのスーパー グローバル (GET、POST、COOKIE、ENV、および SERVER) が含まれるかを決定します。$_REQUEST

http://php.net/request-order

このディレクティブは、PHP が GET、POST、および Cookie 変数を _REQUEST 配列に登録する順序を記述します。登録は左から右に行われ、新しい値が古い値を上書きします。

通常は (デフォルトで) GP に設定されています。つまり、最後の _REQUEST 配列では、両方が存在する場合、POST が GET をオーバーライドします。

于 2013-10-26T07:35:14.433 に答える
1

$_REQUEST の変数は、GET、POST、および COOKIE 入力メカニズムを介してスクリプトに提供されるため、リモート ユーザーによって変更される可能性があり、信頼できません。この配列にリストされる変数の存在と順序は、PHP の variables_order 構成ディレクティブに従って定義されます。

variables_order 文字列 EGPCS (Environment、Get、Post、Cookie、および Server) 変数解析の順序を設定します。

したがって、あなたの場合、POST は優先されます。

http://php.net/manual/en/reserved.variables.request.php http://www.php.net/manual/en/ini.core.php#ini.variables-order

于 2013-10-26T07:28:25.473 に答える
1

$_REQUEST は $_POST と $_GET の両方の値を処理します

$_POSTメソッドはエンドユーザーには見えないため、エンドユーザーはこの情報を操作できないため、より安全であり、$_GETメソッドのように情報の送信に制限はありません。

$_REQUESTメソッドは、データ送信メソッドに関係なく、ページ呼び出しでデータ転送を介して情報のデータを受信するために使用されます...

最も重要なことは、$_REQUESTメソッドが渡された情報を読み取るためだけに使用され、ページ呼び出しで情報を送信するために使用されないことです。

どちらの方法でも速度の違いは最小限に抑える必要があり、REQUEST を使用する場合はもちろん POST が GET をオーバーライドします。

于 2013-10-26T07:30:48.487 に答える