PHP 変数 $_GET と $_POST

クライアントブラウザからウェブサーバにデータを送信する方法は2つあります:
  • GET
  • POST
メソッド 送信されるデータは、グローバル変数の一部であるPHP変数$_GETと$_POSTに格納され、PHPコードの任意の場所。$_GET と $_POST の 2 つの変数は、get メソッドと post メソッドを使用して HTML コードからテーブルに送信され、PHP サーバーによってキャプチャされた情報を読み取るために使用されます。つまり、変数 $_GET と $_POST により、ページが相互に通信できるようになります。

以下の HTML ページには、テキスト、パスワード、チェックボックス、ラジオ、セレクトなど、さまざまなタイプの入力要素を含む HTML フォームが含まれています。ユーザーがこれらの要素を入力して送信ボタンをクリックすると、データはフォームのaction属性で指定された宛先ファイル「exemple.php」に転送されます.

次の画像は、GETメソッドを使用したHTMLフォームの例と、ページPHP.

HTML と PHP のフォームの例

GET メソッド

GET メソッドは、エンコードされた情報を宛先ページに送信します。ページとエンコードされた情報は、文字で区切られます。?

http://www.exemple.com/index.php?name1=valeur1&name2=value2
以下のHTMLフォームを見てみましょう。form 要素では、"method".


ユーザー名:
年齢:<入力タイプ="text" name="age" />



get メソッドを使用した HTML フォームの例

"imprime_infos.php" ファイル内では、$_GET 変数を使用して受信した値 (名前と年齢) を収集しました。

 if( $_GET["name"] || $_GET["age"] ) {
echo "こんにちは".$_GET['name'] です。"
";
echo "You have"です。$_GET['age'] です。" 年。";
}
?>
WampServerサーバーの下でコードを実行した後、上記の結果が得られ、その情報はアドレスバーに表示されます.

$_GET and form

-GETメソッドは、サーバーログとブラウザの履歴に表示される長い文字列を生成します.
-GETメソッドで送信される文字数は1024文字のみに制限されています。したがって、長いテキストを送信することはできません.
-パスワードやクレジットカード番号、コードなどの機密情報を送信するためにGETメソッドを使用しないでください.
-GETは、画像やドキュメントなどのバイナリデータをサーバーに送信できません.
-GETメソッドによって送信されるデータには、環境変数QUERY_STRING.
- PHP には_GET、GET.
- GETは情報を取得するためにのみ使用してください.

POST

上記のように、GETメソッドはまったく安全ではないため、PHP開発者はアドレスバーに情報を表示せずに情報を送信する効率的なソリューションを開発しました。また、GET は 1024 文字に制限されています。そのため、フォームのデータはPOSTメソッドで送信する方が良いでしょう。POST メソッドは GET メソッドと同様に機能しますが、値はブラウザーのアドレス バーに表示されず、ブラウザーの履歴にも保存されないため、GET よりも安全です。

POST を使用するには、 GET.


ユーザー名:
年齢:<入力タイプ="text" name="age" />

そして、情報を収集するには、変数$_POST:

<を使用しますか?php
if( $_POST["name"] || $_POST["age"] ) {
echo "こんにちは".$_POST['name'] です。"
";
echo "You have"です。$_POST['age'] です。" 年。";
}
?>
ランタイムは、アドレスバーに情報が表示されていないことを示します:

変数 $_POST と form

POSTを使用する利点:- POSTメソッドには、送信するデータのサイズに制限はありません。
- 送信されたデータはブラウザの履歴に保存されません。
- POST を使用してバイナリ データを送信できます。
- POST メソッドによって送信されるデータは HTTP ヘッダーを介して渡されるため、セキュリティは HTTP プロトコルに依存します。
- PHP には、><$_REQUEST

$_REQUEST 変数には、$_GET、$_POST、および $_COOKIE の内容が含まれます。$_REQUEST は、$_GET と $_POST.

メソッドの両方からデータを受け取るのに便利です ファイル "imprime_infos.php:

 if( $_REQUEST["name"] || $_REQUEST["age"] ) {
echo "こんにちは".$_REQUEST['name'] です。"
";
echo "You have"です。$_REQUEST['age'] です。" 年。";
}
?>