PHP $_POST 変数

上記のセクションでは $_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'];
 ?>

プログラムの実行結果:

2.png

私たち参照してください。POST を使用して送信した情報は、[URL] 列に表示されません。そのため、POST が GET よりも安全であることがわかりました


GET と POST の違い:

  1. Getサーバーからデータを取得するのがpost、サーバーにデータを送信するのがpostです。

  2. get は、送信されたフォームの ACTION 属性が指す URL にパラメーター データ キューを追加します。値はフォームの各フィールドに 1 対 1 で対応し、URL で確認できます。 Post は、HTTP post メカニズムを使用して、フォームの各フィールドとそのコンテンツを HTML HEADER に配置し、それを ACTION 属性が指す URL アドレスに送信します。ユーザーはこのプロセスを見ることができません。

  3. get メソッドの場合、サーバー側は Request.QueryString を使用して変数の値を取得します。 post メソッドの場合、サーバー側は Request.Form を使用して送信されたデータを取得します。

  4. get によって転送されるデータの量は少なく、2KB を超えることはできません。郵便で送信されるデータの量は比較的多く、通常はデフォルトでは制限がありません。ただし、理論上、最大量は IIS4 では 80 KB、IIS5 では 100 KB です。

  5. 取得時のセキュリティは非常に低く、ポスト後のセキュリティは高くなります。ただし、実行効率は 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で受信できることがわかります



学び続ける
||
<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>
  • おすすめコース
  • コースウェアのダウンロード
現時点ではコースウェアはダウンロードできません。現在スタッフが整理中です。今後もこのコースにもっと注目してください〜