プログラミング覚え書き

WEB製作覚え書き

ノート代わりに勉強した内容をまとめています。

HTML:値の送受信 ~GET形式~

 

GET形式で値を送信

  • form要素のmethod属性値に"get"を指定した場合、submitボタンが押下されると、action属性で指定したURLの後ろに、クエリ文字列を付加する形で値を送信する。
  • URLの長さに上限を設けているブラウザがあるので、上限を超える長さになる場合は送信できなくなる。

 

 

クエリ文字列

「?名前=値」の形式で記述され、複数の値を送る場合は「?名前1=値1&名前2=値2&名前3=値3」となる。アドレス欄に値が表示されてしまうため、値を盗み取ったり書き換えることが容易に可能。注意が必要!!

f:id:midori_x:20200209183512p:plain

 

 

  <form action="01-2_get_confirm.php" method="get">
    <h2>性別は?</h2>
    <label><input type="radio" name="gender" value="1">男性</label>
    <label><input type="radio" name="gender" value="2">女性</label>

    <h2>年齢は?</h2>
    <select name="age">
      <option value="" selected>選択してください</option>
      <option value="1">10代</option>
      <option value="2">20代</option>
      <option value="3">30代</option>
      <option value="4">40代</option>
      <option value="5">50代以上</option>
    </select>

    <p>
      <input type="submit" value="投票する">
    </p>
  </form>

 ↓ ↓ ↓

f:id:midori_x:20200209184757p:plain

上記の通り選択し、「投票する」を押下

 ↓ ↓ ↓
「01-2_get_confirm.php?gender=1&age=1」にアクセスし、下記の表示となる

【表示画面】

f:id:midori_x:20200209184954p:plain 

【01-2_get_confirm.phpソースコード

  <?php
    echo '<h2>1回目の出力</h2>';
    echo '<pre>';
    var_dump($_GET);
    echo '</pre>';

    echo '<h2>2回目の出力</h2>';
    echo $_GET['gender'];

    echo '<h2>3回目の出力</h2>';
    if(isset($_GET['gender'])){
      echo $_GET['gender'];
    } else {
      echo '性別を選択していません';
    }
  ?>

 

フォームを使用せずにGET形式で値を送信

f:id:midori_x:20200209184317p:plain

 

 

GET形式で受け取った値

  • 入力フォームからGET形式で送られてきた値をPHPで取得する場合、スーパーグローバル変数スクリプト内のどこからでも参照できる変数)である「$_GET」を使用する。
  • $_GETは受け取った値を連想配列で管理する。キー(部屋の名前)はname属性で指定した値になる。⇒ $_GET[name属性値]

 

未入力時のメッセージ

変数が定義されているか調べるisset関数を使用し、未入力時のメッセージを表示することができる。

isset(調べる変数名); f:id:midori_x:20200209192233p:plain

※あくまで変数が定義されているか否かのチェックであり、空文字が定義されている場合はtrueになる。(ボタンパーツは選択しないで送信すると変数が定義されない状態になる)