上記のセクションでは $_GET 変数について説明しました。このセクションでは、method="post" を使用してフォーム内の値を収集するための $_POST 変数について学びます。
$_POST変数
事前定義された$_POST変数は、method="post"でフォームから値を収集するために使用されます。
POST メソッドを使用してフォームから送信されたメッセージは誰にも見えず (ブラウザのアドレス バーには表示されません)、送信される情報量に制限はありません。
注: ただし、デフォルトでは、POST メソッドによって送信される情報の最大量は 8 MB です (php.ini ファイルで post_max_size を設定することで変更できます)。
それでは例を見てみましょう
インスタンス
<html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</title> </head> <body> <form action="php_post.php" method="post"> 名字: <input type="text" name="name"><br> 性别:<input type="radio" name="sex" value="男" checked>男 <input type="radio" name="sex" value="女">女<br> 年龄: <input type="text" name="age"><br> <input type="submit" value="提交"> </form> </body> </html>
php_post.phpページに送信されました
<?php header("Content-type:text/html;charset=utf-8"); //设置编码 echo "你的姓名是:" .$_POST['name'] ."<br/>"; echo "你的性别是:" .$_POST['sex']."<br/>"; echo "你的年龄是:".$_POST['age']; ?>
プログラムの実行結果:
私たち参照してください。POST を使用して送信した情報は、[URL] 列に表示されません。そのため、POST が GET よりも安全であることがわかりました
GET と POST の違い:
Getサーバーからデータを取得するのがpost、サーバーにデータを送信するのがpostです。
get は、送信されたフォームの ACTION 属性が指す URL にパラメーター データ キューを追加します。値はフォームの各フィールドに 1 対 1 で対応し、URL で確認できます。 Post は、HTTP post メカニズムを使用して、フォームの各フィールドとそのコンテンツを HTML HEADER に配置し、それを ACTION 属性が指す URL アドレスに送信します。ユーザーはこのプロセスを見ることができません。
get メソッドの場合、サーバー側は Request.QueryString を使用して変数の値を取得します。 post メソッドの場合、サーバー側は Request.Form を使用して送信されたデータを取得します。
get によって転送されるデータの量は少なく、2KB を超えることはできません。郵便で送信されるデータの量は比較的多く、通常はデフォルトでは制限がありません。ただし、理論上、最大量は IIS4 では 80 KB、IIS5 では 100 KB です。
取得時のセキュリティは非常に低く、ポスト後のセキュリティは高くなります。ただし、実行効率は Post メソッドよりも優れています。
推奨事項: 1. get メソッドは Post メソッドよりも安全性が低く、機密情報が含まれる場合は、Post データ送信メソッドを使用することをお勧めします。データ クエリ。データを追加、変更、削除する場合は、Get メソッドを使用することをお勧めします。
PHP $_REQUEST 変数
事前定義された $_REQUEST 変数には、$_GET、$_POST、$_COOKIE の内容が含まれています。
$_REQUEST 変数は、GET および POST メソッド経由で送信されたフォーム データを収集するために使用できます。
上記のphpファイルを修正して見てください
<?php header("Content-type:text/html;charset=utf-8"); //设置编码 echo "你的姓名是:" .$_REQUEST['name'] ."<br/>"; echo "你的性别是:" .$_REQUEST['sex']."<br/>"; echo "你的年龄是:".$_REQUEST['age']; ?>
$_POSTで送信されても$_GETで送信されても、$_REQUESTで受信できることがわかります