PHP にはフォームデータを受け取るための $_REQUEST、$_POST、$_GET があります。
1. $_REQUEST、$_POST、$_GET の違いと特徴
$_REQUEST[] には $_POST[] $_GET[] の機能がありますが、$_REQUEST[] の方が遅いです。 POST および GET メソッドを通じて送信されたすべてのデータは、$_REQUEST 配列を通じて利用できます。
2. $_POST と $_GET の違いと特徴
1. GETはサーバーからデータを取得すること、POSTはサーバーにデータを送信することです。
2. GET は、送信されたフォームの ACTION 属性が指す URL にパラメーター データ キューを追加します。値はフォーム内の各フィールドに 1 対 1 で対応し、URL で確認できます。 POST は、HTTP POST メカニズムを使用して、フォームの各フィールドとそのコンテンツを HTML HEADER に配置し、それを ACTION 属性が指す URL アドレスに送信します。ユーザーはこのプロセスを見ることができません。
3. GET メソッドでフォーム データを送信する場合、サーバー側は $_GET['name'] を使用して変数の値を取得します。POST メソッドでフォーム データを送信する場合、サーバー側は $_POST['name'] を使用して変数の値を取得します。もちろん、両方のフォーム データは $_REQUEST['name'] を通じて取得できます。 REQUEST モードでフォーム データを送信する場合、サーバーは $_REQUEST[‘name’] を使用して変数の値を取得しますが、このメソッドが使用されることはほとんどありません。
4. GET によって送信されるデータの量は少なく、2KB を超えることはできません。 POST によって送信されるデータの量は多く、通常はデフォルトでは制限がありません。ただし、理論的には 100KB を超えることはできないと一般に考えられています。
5. GET のセキュリティは非常に低いですが、POST のセキュリティは高いです。
6. GET フォームの値は _GET を通じて取得できますが、アクション URL を通じて設定されたパラメータは常に取得できるわけではありません。 method="get"action="a.asp"> も同じです。つまり、この場合、GET メソッドはアクション ページに続くパラメーター リストを無視します。 POST フォームの値は _POST を通じて取得できますが、アクションの url パラメータを通じて設定されたパラメータは _POST を通じて取得できない場合があります。 action=test.php?id=1 は、値を渡すための GET メソッドです。$_REQUEST と $_GET を使用して値を受け取ることができますが、フォームが送信された場合でも、POST メソッドを使用して値を取得することはできません。 POSTメソッド。フォームを送信するとき、アクションにパラメーターがある場合は、POST フォーム メソッドを使用するのが最適です。フォーム内のデータについては、POST を通じて直接取得します。アクション内のパラメーターについては、GET を通じて取得します。
データクエリを行う場合はGETメソッドを使用し、データの追加、変更、削除を行う場合はPOSTメソッドを使用することを推奨します。
リクエストが最初に読み取られ、次にポストが読み取られます。これらは同時に存在します。つまり、前の変数は上書きされます。
典型的な例:
echo "get\n";
print_r($_GET);
echo "post\n";
print_r($_POST);
echo "リクエスト\n";
print_r($_REQUEST);
?>
< フォームメソッド=ポストアクション='?a=1&b=2'>
< 入力タイプ=テキスト名=a 値='a'>
< 入力タイプ=テキスト名=b 値='b'>
<入力タイプ=送信値=テスト>
< /フォーム>
出力結果:
取得:
配列
(
[a] => 1
[b] => 2
)
投稿:
配列
(
[a] =>
[b] => b
)
リクエスト:
配列
(
[a] =>
[b] => b
)
実はphpの設定ファイルphp.iniにvariables_order = "GPCS"という設定項目があり、GPCSとはそれぞれGET、POST、Cookie、Serverの変数の解析順序を意味します。 php ファイルは GET、POST、Cookie、サーバーです。