PHP HTML・URLからデータを受け取る方法。(GET)

前回PHPのスーパーグローバル変数である $_POST を使い、フォームから PHP に値を渡す方法を学びましたが、もう一つよく使われるのが $_GET です。

$_GET は以下の場合に使われます。
・フォームの method に get を指定した場合
・パラメータを含むリンクをクリックした場合
・パラメータを含むURLを直接入力した場合

今回の目的は、 post と get の使い方の違いをつかむことです。


【1】sample007 フォルダをコピーして sample008 フォルダを作成します。

php-49.gif


【2】calc.html と calc.php を変更します。

php-50.gif

*「\」はWindowsではエンマークのことです。

保存先 C:\phpdev\www\test\sample008
ファイル名 calc.html

<html>
  <head>
    <title>calc.html</title>
  </head>
  <body>
    <form name="form1" action="calc.php" method="get">
      <input type = "text" name = "txtA"> + 
      <input type = "text" name = "txtB"> = ? 
      <br>
      <input type="submit" value="計算">
    </form>
    <br />
    <br />
    <a href="http://localhost/test/sample008/calc.php?txtA=30&txtB=40">URLで値を渡す</a><br />
  </body>
</html>


保存先 C:\phpdev\www\test\sample008
ファイル名 calc.php

<html>
  <head>
    <title>calc.php</title>
  </head>
  <body>
    <?php
      $a = $_GET['txtA'];
      $b = $_GET['txtB'];
      $c = $a + $b;
      print ($a." + ".$b." = ".$c."\n");
    ?>
  </body>
</html>



*上記のプログラムはページの都合上、インデント(字下げ)が半角スペース2つになっていますが、実際には半角スペース4つにするのが好ましいです。インデントはプログラムの動作には影響しません。


【3】C:\phpdev にある 2K-NT-XP-phpdev_start.bat をダブルクリックして、phpdev を起動します。

php-02.gif

準備ができたら作成したPHPプログラムを実行してみましょう。


【4】ブラウザのアドレスに http://localhost/test/sample008/calc.html と入力し、実行します。


【5】calc.html の画面が表示されました。フォームの下には文字リンクが表示されています。

php-51.gif


まずは前回と同じようにフォームで入力した値を渡してみます。しかしmethod は get です。


【6】テキストボックスに半角数字を入力します。

php-52.gif


【7】「計算」ボタンをクリックします。

php-53.gif


【8】ブラウザのアドレスに注目してください。テキストボックスに入力した値が、URLのパラメータとして表示されています。計算結果が表示されるのは同じです。

php-54.gif

前回と比べてみるとよくわかります。
php-44.gif


【9】ブラウザの「戻る」ボタンをクリックします。

php-55.gif


【10】calc.html に戻りました。

php-64.gif


【11】テキストボックスの値を消してください。

php-56.gif


【12】今度は文字リンクをクリックしてみます。この文字リンクのURLにはあらかじめパラメータを加えています。

php-57.gif


【13】ブラウザのアドレスに注目してください。URLのパラメータとして値が表示されています。計算結果が表示されるのは同じです。

php-58.gif


【14】ブラウザの「戻る」ボタンをクリックします。

php-59.gif


【15】calc.html に戻りました。

php-60.gif


【16】今度はURLを直接入力してみます。ブラウザのアドレスに以下のように入力してください。
http://localhost/test/sample008/calc.php?txtA=50&txtB=60
php-61.gif


【17】入力したら、ブラウザの「移動」ボタンをクリックします。

php-62.gif


【18】calc.php が動き、計算結果が表示されるのは同じです。

php-63.gif


【19】値をいろいろ変えて、動作を確認してください。


【解説】

■calc.html側

(1)フォームの method を get に変更しました。
<form name="form1" action="calc.php" method="get">


(2)文字リンクのURLにはパラメータを指定しています。
URL?変数名=値&変数名=値
<a href="http://localhost/test/sample008/calc.php?txtA=30&txtB=40">URLで値を渡す</a>


■calc.php側

(1)フォームの method に合わせて、スーパーグローバル変数を $_GET に変更しました。リンクやURLを直接入力した場合も $_GET を使う必要があります。
$a = $_GET['txtA'];
$b = $_GET['txtB'];

*$_POST では値を受け取れませんので注意してください。


【ワンポイント】
*重要
get を使うと便利そうですが、値をURLに含めて渡しますので、パスワードなどの重要な情報が見えてしまいます。またURLにはあまり長い情報を含めることができません。そのような場合は post を使うようにしてください。


スポンサードリンク

スポンサードリンク






PHP初心者入門講座TOPへ