ホームページ >バックエンド開発 >PHPチュートリアル >PHP フォームの学習: $_GET 変数と $_POST 変数の使用法と違い

PHP フォームの学習: $_GET 変数と $_POST 変数の使用法と違い

WBOY
WBOYオリジナル
2021-10-29 16:28:434519ブラウズ

前回の記事では「PHPフォーム学習:フォーム内のメールアドレスとURLを確認するには?」をお届けしました。 」では、PHP でメールやフォームの URL を検証する方法について詳しく紹介しています。この記事では、PHP の $_GET 変数と $_POST 変数について説明します。みんなが助けてくれるといいですね!

PHP フォームの学習: $_GET 変数と $_POST 変数の使用法と違い

前の記事では、正規表現を使用して必要なデータを検証する方法と、フォーム内の電子メールと URL を検証する方法を学習しました。その中には、$_GET 変数と $_POST 変数の影が含まれています。次に、$_GET 変数と $_POST ## を見てみましょう。 #変数の使用に関する知識。

PHP $_GET <span style="font-size: 20px;"></span>変数

以前勉強していたときにそれについて学びました

$_GET 変数は、method="get" を使用してフォームから値を収集するために使用されます。 GET メソッドを使用してフォームから送信された情報は誰でも見ることができます (ブラウザーのアドレス バーに表示されます)。送信される情報の量には制限があります。実際、URL パラメータを通じて現在のスクリプトに渡される変数の配列として見ることもできます。

$_GET 変数を使用すると、すべての変数名と値が URL に表示されます。したがって、パスワードやその他の機密情報を送信する場合は、この方法を使用しないでください。ただし、変数は URL に表示されるため、ページをブックマークできます。場合によっては、これが便利です。

次に例を見てみましょう:

<html>
 <head>
     <meta charset="utf-8">
     <title>php中文网(php.cn)</title>
 </head>
 <body>
 
 <form action="demo.php" method="get">
     名字: <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>

demo.php に送信されたコンテンツは次のとおりです:


<?php
 header("Content-type:text/html;charset=utf-8");    //设置编码
 echo "你的姓名是:" .$_GET[&#39;name&#39;] ."<br/>";
 echo "你的性别是:"  .$_GET[&#39;sex&#39;]."<br/>";
 echo "你的年龄是:".$_GET[&#39;age&#39;];
 ?>

出力結果:


PHP フォームの学習: $_GET 変数と $_POST 変数の使用法と違い

フォームに入力した値はすべて「URL」列に表示されていることがわかりました。では、method="get" をいつ使用するのでしょうか?

HTML フォームで

method="get" を使用すると、すべての変数名と値が URL に表示されます。したがって、パスワードやその他の機密情報を送信する場合は、この方法を使用しないでください。ただし、変数は URL に表示されるため、ページをブックマークできます。場合によっては、これが便利です。

HTTP GET メソッドは大きな変数値には適していないことに注意してください。その値は 2000 文字を超えることはできません。

<strong>$_POST<span style="font-size: 20px;"></span></strong> 変数

上記の例では、

$_GET 変数について説明したので、$_POST 変数を見てみましょう。事前定義された $_POST 変数は、 からデータを収集するために使用されます。 Method= 「post」 の形式の値。

POST メソッドを使用してフォームから送信された情報は誰にも表示されず、

$_GET 変数のようにブラウザのアドレス バーに表示されず、誰にも表示されません。情報量にも制限はありません。ただし、デフォルトでは、POST メソッドによって送信される情報の最大量は 8 MB であり、 php.ini ファイルの post_max_size を設定することで変更できます。

次に例を見てみましょう:


<html>
 <head>
     <meta charset="utf-8">
     <title>php中文网(php.cn)</title>
 </head>
 <body>
 
 <form action="demo.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>

demo.php に送信されたコンテンツは次のとおりです:


<?php
 header("Content-type:text/html;charset=utf-8");    //设置编码
 echo "你的姓名是:" .$_POST[&#39;name&#39;] ."<br/>";
 echo "你的性别是:"  .$_POST[&#39;sex&#39;]."<br/>";
 echo "你的年龄是:".$_POST[&#39;age&#39;];
 ?>

出力結果:


PHP フォームの学習: $_GET 変数と $_POST 変数の使用法と違い

POST を使用して送信した情報は [URL] 列に表示されないことがわかります。そのため、POST は GET よりも安全です。 $_GET と $_POST の違いをまとめてみましょう。

##$_GET<strong><span style="font-size: 20px;"></span></strong># と $_POST# の違い##get はサーバーからデータを取得すること、

post

はサーバーにデータを送信することです。 Get は、送信されたフォームの ACTION 属性が指す URL にパラメーター データ キューを追加します。値はフォーム内の各フィールドに対応しており、URL で確認できます。 Post は、HTTP post メカニズムを使用して、フォーム内の各フィールドとそのコンテンツを HTML HEADER に配置し、それを ACTION 属性が指す URL アドレスに送信します。ユーザーはこのプロセスを見ることができません。 get メソッドの場合、サーバー側は Request.QueryString を使用して変数の値を取得し、post メソッドの場合、サーバー側は Request.Form を使用して送信されたデータを取得します。

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

取得時のセキュリティは非常に低く、事後のセキュリティは高くなります。ただし、実行効率は Post メソッドよりも優れています。

両者の違いを表にまとめました。表は次のとおりです:

$_GET$_POSTURL に表示 URLに表示される文字数には制限があります URLには表示されません データ量 通常、2k 未満の少量のデータ 安全ではありません#提出原則提出されたデータは分離されていますデータは全体として提出してください柔軟性非常に柔軟性があり、ページ ジャンプでデータを転送できます柔軟性はありません。フォームの参加が必要です一般的な使用方法より一般的に使用される$_GET と比べて少ない


#PHP はデフォルトで 8M の大量のデータを送信できます #セキュリティの観点から
より安全です
この違いにより、次の結論が得られます:

get メソッドは Post メソッドよりも安全性が低くなります。機密情報が含まれる場合は、Post データ送信メソッドを使用することをお勧めします。

  • は動作しています データをクエリする場合は、Get メソッドを使用することをお勧めします。データを追加、変更、または削除する場合は、Post メソッドを使用することをお勧めします。

  • ご興味がございましたら、「

    PHP ビデオ チュートリアル

    >>PHP の知識についてさらに詳しく」をクリックしてください。

以上がPHP フォームの学習: $_GET 変数と $_POST 変数の使用法と違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。