PHPのGET&POSTメソッド~PHP TUTORIAL~: PHP入門 :

スポンサーリンク

本当にわからないとこがあった場合一人では解決できません。
『teratail』とはエンジニア特化型のQ&Aサイトです。 すべてのエンジニアさんが抱えている悩みを共有して 解決するための質問サイトです
無料なのでまずは登録して使ってみてください。メールアドレスだけで登録可能です ----------------------------------------------------------------------------------------

3ヶ月10万円で受講できる転職特化型Ruby実践研修【ポテパンキャンプ】

PHPのGET&POSTメソッド

ブラウザクライアントがWebサーバーに情報を送信するには、2つの方法があります。

  • GETメソッド
  • POSTメソッド

ブラウザは情報を送信する前に、URLエンコーディングというスキームを使用して情報をエンコードします。

 

name1=value1&name2=value2&name3=value3

GETメソッド

http://www.test.com/index.htm?name1=value1&name2=value2
  • GETメソッドは、サーバーのログに表示されるブラウザの[場所]ボックスに表示される長い文字列を生成します。
  • GETメソッドは1024文字までに制限されています。
  • パスワードやその他の機密情報をサーバーに送信する場合は、GETメソッドを使用しないでください。
  • GETは、イメージやワードドキュメントなどのバイナリデータをサーバーに送信するためには使用できません。
  • GETメソッドによって送信されるデータには、QUERY_STRING環境変数を使用してアクセスできます。
  • PHPは$ _GET連想配列を使用して、送信されたすべての情報にGETメソッドを使用してアクセスします。

これはこのような高い安いという情報はそもそもHTML上にあるものでなくサーバーにあるものなんです。それを取ってくるのにGETが必要なんです。

test.phpスクリプトにソースコードを入れて、次の例を試してみてください。

<?php
   if( $_GET["name"] || $_GET["age"] ) {
      echo "Welcome ". $_GET['name']. "<br />";
      echo "You are ". $_GET['age']. " years old.";
      
      exit();
   }
?>
<html>
   <body>
   
      <form action = "<?php $_PHP_SELF ?>" method = "GET">
         Name: <input type = "text" name = "name" />
         Age: <input type = "text" name = "age" />
         <input type = "submit" />
      </form>
      
   </body>
</html>

POSTメソッド

POSTメソッドは、HTTPヘッダーを介して情報を転送します。情報はGETメソッドの場合と同様にエンコードされ、QUERY_STRINGというヘッダに入れられます。

  • POSTメソッドには、送信するデータサイズに制限はありません。
  • POSTメソッドは、バイナリデータと同様にASCIIを送信するために使用できます。
  • POSTメソッドで送信されたデータはHTTPヘッダーを通るため、セキュリティはHTTPプロトコルに依存します。セキュアHTTPを使用することで、情報が安全であることを確認できます。
  • PHPは$ _POST連想配列を提供し、POSTメソッドを使用してすべての送信情報にアクセスします。

test.phpスクリプトにソースコードを入れて、次の例を試してみてください。

<?php
   if( $_POST["name"] || $_POST["age"] ) {
      if (preg_match("/[^A-Za-z'-]/",$_POST['name'] )) {
         die ("invalid name and name should be alpha");
      }
      echo "Welcome ". $_POST['name']. "<br />";
      echo "You are ". $_POST['age']. " years old.";
      
      exit();
   }
?>
<html>
   <body>
   
      <form action = "<?php $_PHP_SELF ?>" method = "POST">
         Name: <input type = "text" name = "name" />
         Age: <input type = "text" name = "age" />
         <input type = "submit" />
      </form>
   
   </body>
</html>

$ _REQUEST変数

PHP $ _REQUEST変数には、$ _GET、$ _POST、$ _COOKIEの両方の内容が含まれています。クッキーについて説明するときは、$ _COOKIE変数について説明します。

PHP $ _REQUEST変数を使用して、GETメソッドとPOSTメソッドの両方で送信されたフォームデータから結果を取得できます。

test.phpスクリプトにソースコードを入れて、次の例を試してみてください。

<?php
   if( $_REQUEST["name"] || $_REQUEST["age"] ) {
      echo "Welcome ". $_REQUEST['name']. "<br />";
      echo "You are ". $_REQUEST['age']. " years old.";
      exit();
   }
?>
<html>
   <body>
      
      <form action = "<?php $_PHP_SELF ?>" method = "POST">
         Name: <input type = "text" name = "name" />
         Age: <input type = "text" name = "age" />
         <input type = "submit" />
      </form>
      
   </body>
</html>

$ _PHP_SELF変数には、呼び出されている自己スクリプトの名前が入ります。

前のページ⑪PHPのwebコンセプト

次のページ⑬

スポンサーリンク

プログラミングは独学からは挫折の可能性が高いです。まずは無料体験ができる
コードキャンプが本当におすすめ。無料体験でわからないところを聞きましょう。
転職補助つき。カリキュラム終了後に転職紹介をしてくれます。