ホームページ >バックエンド開発 >PHPの問題 >PHPで$_getと$_postを使用する方法

PHPで$_getと$_postを使用する方法

青灯夜游
青灯夜游オリジナル
2021-07-26 19:31:513705ブラウズ

php では、「$_get」は「method="get"」でフォームから値を収集する、つまりフォーム form で GET メソッドを使用して送信されたフォームデータを受け取るために使用されます。 $_post" は、"method="post"" でフォームから値を収集するために使用されます。つまり、POST リクエストによって送信されたフォーム データを取得します。

PHPで$_getと$_postを使用する方法

このチュートリアルの動作環境: Windows7 システム、PHP7.1 バージョン、DELL G3 コンピューター

get と post in の 2 つのメソッドを使用します。 PHP フォームフォームから値を受信する フォームフォームでは、PHP の受信方法と受信アドレスを定義できます。

get メソッドと post メソッドには主に次の違いがあります。

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

  • get 転送されるデータの量は少なく、2KB を超えることはできません。これは主に URL の長さの制限によるものです。郵送で送信されるデータの量は比較的多く、通常はデフォルトで無制限です。

  • get のセキュリティは非常に低く、post のセキュリティは高くなりますが、get の実行効率は post メソッドよりも優れています。

  • get はフォームのデフォルトのメソッドです。

送信するデータに機密情報が含まれる場合は post データ送信メソッド、データクエリを行う場合は get メソッド、データの追加、変更、削除の場合は post メソッドを使用することをお勧めします。

$_POST グローバル変数

POST メソッドは URL に依存せず、渡されたパラメーター値をアドレス バーに表示しません。また、POSTメソッドはサーバーへのデータ転送を無制限に行うことができ、送信された情報はすべてバックグラウンドで送信されるため、ブラウザ側ではその処理を見ることができず、セキュリティも比較的高いです。したがって、POST メソッドは、重要な情報 (クレジット カード番号など) や比較的大量のデータをサーバーに送信する場合に適しています。

ヒント: デフォルトでは、POST メソッドによって送信される情報の最大サイズは 8MB ですが、php.ini 設定ファイルの post_max_size の値を変更することで、後で変更できます。

PHP の $_POST グローバル変数は、POST リクエストによって送信されたフォーム データを取得するために特別に使用されます。データ構造は連想配列となっており、配列のキー名がフォーム要素名の値、配列の値が対応するフォームの値となります。実際のプログラム開発では、フォームのメソッド属性でデータ送信にPOSTを使用することが指定されている場合、$_POSTを使用してフォームデータを取得する必要があります。

$_POST グローバル変数の使い方は通常の配列と同じで、$_POST['key value'] の形式でその中のデータに直接アクセスできます。以下は簡単な例です。実証するために。

[例] $_POST グローバル変数を使用して、フォームで送信されたデータを取得します。

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
</head>
<body>
    <form action="index.php" method="post">
        姓名:<input type="text" name="name" placeholder="请输入姓名"><br>
        性别:<input type="radio" name="sex" value="男">男
              <input type="radio" name="sex" value="女">女<br>
        爱好:<input type="checkbox" name="hobby[]" value="read">阅读
              <input type="checkbox" name="hobby[]" value="travel">旅游
              <input type="checkbox" name="hobby[]" value="sport">运动
              <input type="checkbox" name="hobby[]" value="internet">上网<br>
        职业:<select name="job">
                    <option value="coder">程序员</option>
                    <option value="teacher">教师</option>
                    <option value="doctor">医生</option>
                    <option value="other">其它</option>
              </select><br>
        <input type="submit" value="提交">&emsp;&emsp;<input type="reset" value="重置">
    </form>
</body>
</html>
<?php
    if(!empty($_POST)){
        echo &#39;提交成功!<br><pre class="brush:php;toolbar:false">&#39;;
        var_dump($_POST);
    }
?>

上記のコードを実行し、入力ボックスに適切な情報を入力し、送信ボタンをクリックして、フォームに入力された情報を PHP プログラムに転送します。その後、PHP プログラムは $_POST を通じてフォームで渡された情報を受け取り、その情報を処理することができます。たとえば、データをデータベースに保存したり、ブラウザに出力したりできます。詳細なコードは示しません。自分で試してみてください。

$_GET グローバル変数

$_GET グローバル変数は、前に紹介した $_POST グローバル変数に似ており、フォーム情報を受け取るために使用されます。 . GET メソッドを使用して送信されたフォーム データの場合、GET メソッドはフォーム フォームのメソッド属性のデフォルトのメソッドです。 GET メソッドを使用して送信されたフォーム データは URL に追加され、URL の一部としてサーバーに送信されます。

プログラムの開発過程では、GETメソッドで送信したデータをURLに添付して送信するため、プログラムのアドレスバーには「URLユーザーが渡したパラメータ」という情報が表示されます。次のような URL: 表現:

http://url?name1=value1&name2=value2 ...

このうち、url はフォーム応答アドレス (http://c.biancheng.net など)、name1 と name2 はフォーム要素の名前、 value1 と value2 はフォーム要素の値です。 URLとform要素は「?」で区切られ、複数のform要素は「&」で区切られ、各form要素の形式は「name=value」で固定です。

ブラウザごとに URL の長さの制限が異なるため、GET メソッドを使用してデータを送信する場合は、データのサイズに注意する必要があります。データの長さがブラウザの制限を超える場合は、データは切り捨てられるため、データが失われます。主流ブラウザの URL の長さ制限は次の表のとおりです。

Browser 最大長 (文字数)
Internet Explorer 2083
Firefox 65536
chrome 8182
サファリ 80000
オペラ 190000

$_GET 全局变量与 $_POST 的结构相似,同样是一个关联数组,数组的键名为表单元素 name 的值,数组的值为对应表单的值。$_GET 不仅仅可以获取 form 表单的数据,只要是 URL 中的参数都可以使用 $_GET 获取。

另外一点需要注意的是:在 PHP 中使用 $_POST 或者 $_GET 获取表单数据时,是区分大小写的,所以在开发过程中应该注意不能忽略了字母的大小写。

【示例】使用 $_GET 全局变量获取 form 表单中传输的数据。

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
</head>
<body>
    <form action="index.php" method="get">
        姓名:<input type="text" name="name" placeholder="请输入姓名"><br>
        性别:<input type="radio" name="sex" value="男">男
              <input type="radio" name="sex" value="女">女<br>
        爱好:<input type="checkbox" name="hobby[]" value="read">阅读
              <input type="checkbox" name="hobby[]" value="travel">旅游
              <input type="checkbox" name="hobby[]" value="sport">运动
              <input type="checkbox" name="hobby[]" value="internet">上网<br>
        职业:<select name="job">
                    <option value="coder">程序员</option>
                    <option value="teacher">教师</option>
                    <option value="doctor">医生</option>
                    <option value="other">其它</option>
              </select><br>
        <input type="submit" value="提交">&emsp;&emsp;<input type="reset" value="重置">
    </form>
</body>
</html>
<?php
    if(!empty($_GET)){
        echo &#39;提交成功!<br><pre class="brush:php;toolbar:false">&#39;;
        var_dump($_GET);
    }
?>

推荐学习:《PHP视频教程

以上がPHPで$_getと$_postを使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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