UPDATE:2024年11月07日
PHP $_GET(ゲット変数)のすべて!【初心者向け基本】
目次 [閉じる]
$_GET(ゲット変数) 簡単まとめ
$_GET(ゲット変数)とは
1 Minute Note
- $_GET は PHPの定義済み変数(=スーパーグローバル変数)の1つ
- $_GET は HTTP GET メソッド で送信され、URLパラメーターとして送られてきた値を取得する変数
- $_GET は 連想配列として使用する
- $_GET は urldecode()関数を介した値が渡される
- $_GET は、関数やメソッドの内部で使用する場合、global $_GET; とする必要がない
$_GET(ゲット変数)の送受信
1 Minute Note
- $_GET は、HTTP GET メソッドで送信された値を取得する変数
- クライアントからサーバーにデータを送信するHTTPメソッドには、GET と POST の両方がある
- HTTP GET メソッドでデータを送信するとURLパラメーターとしてデータが送信される
- URLパラメータとは、URLの後に「?(クエッション)」記号を記述して、その後 「key名=値」 と続けるクエリ文字列「http://sample.com/index.php?key名=値&key名=値&key名=値・・」
- HTTP GET メソッドでデータを送信する方法はHTML の <form>タグ か <a>タグ を利用
- <form>タグ を利用し HTTP GET メソッドでデータを送信には、method属性 を GET にする
- <a>タグ を利用し HTTP GET メソッドでデータを送信には、URLの後に「?(クエッション)」記号を記述して、その後 「key名=値」 と続ける
- <a>タグ で複数の値を送信する場合は「&(アンド)」で繋げる「http://sample.com/index.php?key名=値&key名=値&key名=値・・」とする
- $_GETは、連想配列として使用する
- URLパラメーターの「'key名'」は$_GETの連想配列「'key名'」となる $_GET['key名']
- $_GETは、urldecode()関数を介して値が渡される
- クライアントから HTTP GET で送信されたリクエスト結果の値は変化しません。従ってブックマークに登録しても同じ結果を得れる。HTTP POST で送信されたリクエスト結果の値は変化する場合がある
$_GET(GET変数)とは
- $_GET は PHPの定義済み変数(=スーパーグローバル変数)の1つ
- $_GET は HTTP GET メソッド で送信され、URLパラメーターとして送られてきた値を取得する変数
- $_GET は 連想配列として使用する
- $_GET は urldecode()関数を介した値が渡される
- $_GET は、関数やメソッドの内部で使用する場合、global $_GET; とする必要がない
$_GET は、PHPの定義済み変数のゲット変数です。この変数は、HTTP GET メソッドで送信され、URLパラメーターとして送られてきた値を取得する変数です。
$_GET のデータ型は配列(配列変数)で 連想配列として使用します。
$_GET に渡される値は、自動的にurldecode()関数を介します。urldecode()は、文字列中のエンコード文字である「%##」をデコードします。「+ (プラス)」記号はスペース文字へデコードします。
$_GETは、スーパーグローバル変数なので、スクリプトのコード中どこからでも使用することが出来る変数です。関数やメソッドの内部で使用する場合にも global $_GET; とする必要はありません。
$_GETはPHPの定義済み変数
PHPの定義済み変数はスーパーグローバル変数とも言います。
$_GET = PHPの定義済み変数 = スーパーグローバル変数
また、$_GET は自動グローバル変数とも呼ばれます。
(PHPには定義済みの定数というものもあります。詳細はこちらを参照下さい。)
PHPの定義済み変数(=スーパーグローバル変数)
$GLOBALS (グローバル変数) | ・グローバルスコープで使用可能なすべての変数への参照 ・連想配列として使用 |
---|---|
$_SERVER (サーバー変数) | ・サーバ情報および実行時の環境情報 ・連想配列として使用 |
$_GET (ゲット変数) | ・HTTP GET 変数 ・連想配列として使用 |
$_POST (ポスト変数) | ・HTTP POST 変数 ・連想配列として使用 |
$_FILES (ファイル変数) | ・HTTP ファイルアップロード変数 ・連想配列として使用 |
$_REQUEST (リクエスト変数) | ・HTTP リクエスト変数 ・連想配列として使用 |
$_SESSION (セッション変数) | ・セッション変数 ・連想配列として使用 |
$_ENV (環境変数) | ・環境変数 ・連想配列として使用 |
$_COOKIE (クッキー変数) | ・HTTP クッキー ・連想配列として使用 |
これら、PHPの定義済み変数は、プログラムコード中何処からでも使用することができます。関数の内部でも globalキーワードを使用せず呼び出すことが出来ます。このように、スーパーグローバル変数は非常に便利なものです。
通常、変数には有効範囲などのルールがあります。このルールは、PHPにおいて変数のスコープという宣言の場所とそれによる有効範囲として定められています。スコープには、「グローバルスコープ」「ローカルスコープ」「スタティック変数「関数の引数」の4種類ありますが、これらすべてのスコープを持っているのがスーパーグローバル変数です。
変数のスコープについてはこちらを参照下さい。
※注意2:
ただし、スーパーグローバル変数は、関数やクラスメソッドの中の 可変変数 として使用することはできません。
可変変数についてはこちらを参照下さい。
$_GETの送受信について
- $_GET は、HTTP GET メソッドで送信された値を取得する変数
- クライアントからサーバーにデータを送信するHTTPメソッドには、GET と POST の両方がある
- HTTP GET メソッドでデータを送信するとURLパラメーターとしてデータが送信される
- URLパラメータとは、URLの後に「?(クエッション)」記号を記述して、その後 「key名=値」 と続けるクエリ文字列「http://sample.com/index.php?key名=値&key名=値&key名=値・・」
- HTTP GET メソッドでデータを送信する方法はHTML の <form>タグ か <a>タグ を利用
- <form>タグ を利用し HTTP GET メソッドでデータを送信には、method属性 を GET にする
- <a>タグ を利用し HTTP GET メソッドでデータを送信には、URLの後に「?(クエッション)」記号を記述して、その後 「key名=値」 と続ける
- <a>タグ で複数の値を送信する場合は「&(アンド)」で繋げる「http://sample.com/index.php?key名=値&key名=値&key名=値・・」とする
- $_GETは、連想配列として使用する
- URLパラメーターの「'key名'」は$_GETの連想配列「'key名'」となる $_GET['key名']
- $_GETは、urldecode()関数を介して値が渡される
- クライアントから HTTP GET で送信されたリクエスト結果の値は変化しません。従ってブックマークに登録しても同じ結果を得れる。HTTP POST で送信されたリクエスト結果の値は変化する場合がある
送受信について
$_GETは、HTTP GET メソッドで送信された値を取得する変数です。HTTPとは、ウェブブラウザとウェブサーバの間でHTMLなどのコンテンツの送受信に用いられる通信プロトコル(通信方法、通信規約というようなものです)のことです。
クライアントからサーバーにデータを送信するHTTPメソッドには、GET と POST の両方があります。HTTP GET メソッドでデータを送信するとURLパラメーターとしてサーバーへデータが送信されます。
URLパラメータとは、URLの後に「?(クエッション)」記号を記述して、その後 「key名=値」 と続けるURLに付随させたクエリ文字列のことです。
1 | http://sample.com/index.php?key名=値&key名=値&key名=値・・ |
$_GETは、上記のような HTTP GET メソッドによって送信されたURLパラメータで渡された値を取得する変数です。
HTTP GET メソッドによってURLパラメーターでデータを送信する方法は HTML の <form>タグ か <a>タグ を利用する2種類の方法があります。<form>タグ のmethod属性 に GET を指定することで、フォームのパラメーターをURL形式に変更し、作成されたクエリ文字列がURLパラメーターとして送信されます。<a>タグ を利用する場合はurlに直接クエリ文字列を書き込みます。クエリ文字列の記述方法は、、URLの後に「?(クエッション)」記号を記述して、その後 「key名=値」 と続けます。複数の値を送信する場合は「&(アンド)」で繋げます。「http://sample.com/index.php?key名=値&key名=値&key名=値&key名=値・・・」とします。
$_GETは、連想配列として使用します。URLパラメーターの「key名」は$_GETの連想配列「key名」となります。従って$_GETを呼び出す場合は、$_GET['key名'] とします。また、この変数の値は、urldecode() 関数を介して渡されます。これは通常自動で行われます。
クライアントから HTTP GET で送信されたリクエスト結果の値は変化しません。従ってブックマークに登録しても同じ結果を得れます。ですが、HTTP POST で送信されたリクエスト結果の値は変化する場合があります。HTTP POSTの場合、ページを再読み込みする際に「フォームのデータを再送信しますか?」などのメッセージが表示されますが、これは値が変化する場合があるためです。
<form>タグ を利用して HTTP GET メソッド で送信
<form>タグ の method属性 に GET を指定することで、フォームのパラメーターをURL形式に変更し、作成されたクエリ文字列がURLパラメーターとして送信されます。
$_GETは、連想配列として使用します。URLパラメーターの「'key名'」は$_GETの連想配列「'key名'」となります。従って$_GETを呼び出す場合は、$_GET[‘key名’] とします。また、$_GETは、urldecode()関数を介して値が渡されます。これは通常自動的に行われます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="GET"> 名前:<input type="text" name="yourname" value="" /><br> <input type="submit" value="送信" /> </form> <?php //$_GET['yourname']が存在していれば if(isset($_GET['yourname']) && $_GET['yourname'] != ''){ echo '<strong>$_GET[\'yourname\']が送信されました。値は[ '.$_GET['yourname'].' ]です。'."</strong><br>\n"; ?> <?php }else{ echo '<strong>$_GET[\'yourname\']はまだ送信されていません。'."</strong><br>\n"; } ?> |
送信前
となります。
送信後
となります。
注目する点は送信後のURLです。URLパラメーターとしてクエリ文字列が記述されています。
URLの「?」以降が
1 2 | ?yourname=山田 //山田と入力した場合 |
或いは
1 2 | ?yourname=%E5%B1%B1%E7%94%B0 //山田と入力した場合 |
となっています。これがURLパラメーターです。$_GETはこのURLパラメーターを取得しています。
※ブラウザによってエンコード文字列が表示されているか、デコードされた文字列が表示されているかの違いがあります。
<a>タグ を利用して HTTP GET メソッド で送信
<a>タグ を利用する場合はurlに直接クエリ文字列を書き込みます。この場合、送信する値はurlencode()関数でエンコードして下さい。
$_GETは、連想配列として使用します。URLパラメーターの「'key名'」は$_GETの連想配列「'key名'」となります。従って$_GETを呼び出す場合は、$_GET[‘key名’] とします。また、$_GETは、urldecode()関数を介して値が渡されます。これは通常自動的に行われます。
1 2 3 4 5 6 7 8 9 10 11 12 13 | <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="GET"> <a href="<?php echo $_SERVER['PHP_SELF']; ?>?time=<?php echo urlencode('現在時刻は:'.date('Y/m/d H:i:s')); ?>">現在時刻を送信します。<?php echo '現在時刻は:'.date('Y/m/d H:i:s'); ?></a><br> </form> <?php //$_GET['time']が存在していれば if(isset($_GET['time']) && $_GET['time'] != ''){ echo '<strong>$_GET[\'time\']が送信されました。値は[ '.$_GET['time'].' ]です。'."</strong><br>\n"; ?> <?php }else{ echo '<strong>$_GET[\'time\']はまだ送信されていません。'."</strong><br>\n"; } ?> |
送信前
となります。
送信後
となります。
<a>タグ で送信する場合も、送信後のURLが以下のようになっています。
1 | ?time=現在時刻は:2013%2F10%2F18+01%3A08%3A17 |
或いは
1 2 | ?time=%E7%8F%BE%E5%9C%A8%E6%99%82%E5%88%BB%E3%81%AF%EF%BC%9A 2013%2F10%2F18+01%3A08%3A17 |
となっています。
HTTP GET メソッドでフォームの複数の値(チェックボックスなど)を送信
get_checkbox_reg1.php と get_checkbox_reg2.php の2つのファイルを作成し、formタグ のmethod属性をGETにして複数の値(チェックボックスなど)を送信し、 $_GET で値を取得し出力します。
get_checkbox_reg1.php
inputタグののname属性に「
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>get_checkbox_reg1</title> </head> <body> <h1>GET送信</h1> <form method="GET" action="get_checkbox_reg2.php"> 趣味:<br> <input type="checkbox" name="hoby[]" value="musicappreciation">音楽鑑賞<br> <input type="checkbox" name="hoby[]" value="moviegoing">映画鑑賞<br> <input type="checkbox" name="hoby[]" value="reading">読書<br> <input type="checkbox" name="hoby[]" value="fishing">釣り<br> <input type="submit" value="送信"> </form> </body> </html> |
post_checkbox_reg2.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>get_checkbox_reg2</title> </head> <body> <h1>GET受信</h1> <?php if(!isset($_GET['hoby'])){ ?> 選択されていません。<br> <?php }else{ ?> <strong>$_GET['hoby']をforeach構文で表示</strong><br> <?php foreach($_GET['hoby'] as $value){ ?> <?php echo "$value<br>\n"; ?> <?php } ?> <br> <strong>$_GET['hoby']を連想配列のキー名を指定して表示</strong><br> <?php $max = count($_GET['hoby']); ?> <?php for($i=0; $i<$max; $i++){ ?> <?php echo "{$_GET['hoby'][$i]}<br>\n";?> <?php } ?> <br> <strong>$_GET['hoby']の構造を確認</strong><br> <pre> <?php var_dump($_GET['hoby']); ?> </pre> <?php } ?> </body> </html> |
サンプルコード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <h3>$_GET変数の送信と取得</h3> このページに 「time」という名前で「値」は現在時刻の GET変数 を送信します。<br> 以下のURLがGET変数を送信するURLです。URLをクリックして送信して下さい。<br> ソースコードを確認してください。URLの値はurlencode()関数でエンコード文字列になっています。<br> <a href="https://wepicks.net/code-example/php/3-5-5.php?time=<?php echo urlencode('現在時刻は:'.date('Y/m/d H:i:s')); ?>">時刻を送信します。現在時刻は:<?php echo date('Y/m/d H:i:s'); ?></a><br> <div style="background-color:#ffffff;margin:10px; padding:10px; border:solid #efefef 1px;"> <?php //$_GET['time']が存在していれば if(isset($_GET['time'])){ echo '<strong>$_GET[\'time\']が送信されました。値は[ '.$_GET['time'].' ]です。'."</strong><br>\n"; ?> <a href="https://wepicks.net/code-example/php/3-5-5.php">クリア</a> <?php }else{ echo '<strong>$_GET[\'time\']はまだ送信されていません。'."</strong><br>\n"; } ?> </div> |
$_GET変数の送信と取得
このページに 「time」という名前で「値」は現在時刻の GET変数 を送信します。
以下のURLがGET変数を送信するURLです。URLをクリックして送信して下さい。
ソースコードを確認してください。URLの値はurlencode()関数でエンコード文字列になっています。
時刻を送信します。現在時刻は:2013/10/26 18:42:57
クリア
$_GET(ゲット変数)で入力フォームアプリケーションを作成する
1 入力 phpsample-form-get.php
↓
2 確認 phpsample-form-get2.php
↓
3 完了 phpsample-form-get3.php
1入力 phpsample-form-get.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 | <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>GETフォーム</title> </head> <body> <?php //$htmlを初期化 $html = array(); //戻りの場合 if(isset($_GET['back'])){ //htmlentities()でHTMLコードをエスケープします。 $html['name'] = htmlentities($_GET['name'], ENT_QUOTES, 'UTF-8'); $html['hoby']['reading'] = htmlentities($_GET['hoby']['reading'], ENT_QUOTES, 'UTF-8'); $html['hoby']['appreciate'] = htmlentities($_GET['hoby']['appreciate'], ENT_QUOTES, 'UTF-8'); $html['hoby']['trip'] = htmlentities($_GET['hoby']['trip'], ENT_QUOTES, 'UTF-8'); $html['maintext'] = htmlentities($_GET['maintext'], ENT_QUOTES, 'UTF-8'); //初期値 }else{ //初期化 $html['name'] = ''; $html['hoby']['reading'] = ''; $html['hoby']['appreciate'] = ''; $html['hoby']['trip'] = ''; $html['maintext'] = ''; } ?> <h3>1入力</h3> <form action="phpsample-form-get2.php" method="GET"> <table border="1"> <tr> <td>名前</td> <td><input type="text" name="name" value="<?php echo $html['name']; ?>" size=48></td> </tr> <tr> <td>趣味</td> <td> <input type="checkbox" name="hoby[reading]" value="reading"<?php if($html['hoby']['reading'] == 'reading') echo ' checked'; ?>>読書 <input type="checkbox" name="hoby[appreciate]" value="appreciate"<?php if($html['hoby']['appreciate'] == 'appreciate') echo ' checked'; ?>>鑑賞 <input type="checkbox" name="hoby[trip]" value="trip"<?php if($html['hoby']['trip'] == 'trip') echo ' checked'; ?>>旅行 </td> </tr> <tr> <td>お問合せ内容</td> <td><textarea name="maintext" cols="50" rows="10"><?php echo $html['maintext']; ?></textarea></td> </tr> <tr> <td colspan="2" align="center"> <input type="submit" name="confirm" value="- 入力内容の確認 -"> <input type="reset" value="リセット" name="reset" onClick="Frest()"> </td> </tr> </table> </form> </body> </html> |
2確認 phpsample-form-get2.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 | <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>GETフォーム</title> </head> <body> <?php //変数初期化 $html = array(); $cln = array(); $strError = ''; //確認ボタンが押されていれば if(isset($_GET['confirm'])){ //名前 フィルタリング 30文字以内 if(isset($_GET['name']) && $_GET['name'] != ''){ $cln['name'] = $_GET['name']; //マルチバイト文字列を含めた文字数 if(mb_strlen($cln['name']) <= 30){ //htmlentities()でHTMLコードをエスケープします。 $html['name'] = htmlentities($cln['name'], ENT_QUOTES, 'UTF-8'); }else{ $strError .= "名前を30文字以内にして下さい。<br>\n"; $html['name'] = ''; } }else{ $html['name'] = ''; }//end //選択読書 フィルタリング if(isset($_GET['hoby']['reading']) && $_GET['hoby']['reading'] != ''){ $cln['hoby']['reading'] = $_GET['hoby']['reading']; //値のチェック if($cln['hoby']['reading'] === 'reading'){ //htmlentities()でHTMLコードをエスケープします。 $html['hoby']['reading'] = $cln['hoby']['reading']; }else{ $strError .= "読書の選択肢が不正です。<br>\n"; $html['hoby']['reading'] = ''; } }else{ $html['hoby']['reading'] = ''; }//end //選択鑑賞 フィルタリング if(isset($_GET['hoby']['appreciate']) && $_GET['hoby']['appreciate'] != ''){ $cln['hoby']['appreciate'] = $_GET['hoby']['appreciate']; //値のチェック if($cln['hoby']['appreciate'] === 'appreciate'){ //htmlentities()でHTMLコードをエスケープします。 $html['hoby']['appreciate'] = $cln['hoby']['appreciate']; }else{ $strError .= "鑑賞の選択肢が不正です。<br>\n"; $html['hoby']['appreciate'] = ''; } }else{ $html['hoby']['appreciate'] = ''; }//end //選択旅行 フィルタリング if(isset($_GET['hoby']['trip']) && $_GET['hoby']['trip'] != ''){ $cln['hoby']['trip'] = $_GET['hoby']['trip']; //値のチェック if($cln['hoby']['trip'] === 'trip'){ //htmlentities()でHTMLコードをエスケープします。 $html['hoby']['trip'] = $cln['hoby']['trip']; }else{ $strError .= "旅行の選択肢が不正です。<br>\n"; $html['hoby']['trip'] = ''; } }else{ $html['hoby']['trip'] = ''; }//end //お問合せ内容 フィルタリング 300文字以内 if(isset($_GET['maintext']) && $_GET['maintext'] != ''){ $cln['maintext'] = $_GET['maintext']; //マルチバイト文字列を含めた文字数 if(mb_strlen($cln['maintext']) <= 300){ //htmlentities()でHTMLコードをエスケープします。 $html['maintext'] = htmlentities($cln['maintext'], ENT_QUOTES, 'UTF-8'); }else{ $strError .= "お問合せ内容を300文字以内にして下さい。<br>\n"; $html['maintext'] = ''; } }else{ $html['maintext'] = ''; }//end //フィルタリングでエラーがあれば if($strError != ''){ echo $strError."<br>\n"; ?> <form action="phpsample-form-get.php" method="GET"> <input type="hidden" name="name" value="<?php echo $html['name']; ?>"> <input type="hidden" name="hoby[reading]" value="<?php echo $html['hoby']['reading']; ?>"> <input type="hidden" name="hoby[appreciate]" value="<?php echo $html['hoby']['appreciate']; ?>"> <input type="hidden" name="hoby[trip]" value="<?php echo $html['hoby']['trip']; ?>"> <input type="hidden" name="maintext" value="<?php echo $html['maintext']; ?>"> <input type="submit" name="back" value="- 戻る -"> </form> </div> <hr/> </body> </html> <?php exit; } //確認ボタンが押されていなければ }else{ ?> 確認ボタンを押して下さい。<br> <a href="phpsample-form-get.php">入力へ</a> </div> <hr/> </body> </html> <?php exit; } ?> <h3>2確認</h3> <table border="1"> <tr> <td>名前</td> <td><?php echo $html['name']; ?></td> </tr> <tr> <td>趣味</td> <td> <?php if($html['hoby']['reading'] == 'reading') echo '読書<br>'; ?> <?php if($html['hoby']['appreciate'] == 'appreciate') echo '完了<br>'; ?> <?php if($html['hoby']['trip'] == 'trip') echo '旅行<br>'; ?> </td> </tr> <tr> <td>お問合せ内容</td> <td><?php echo nl2br($html['maintext']); ?></td> </tr> </table> <form action="phpsample-form-get.php" method="GET"> <input type="hidden" name="name" value="<?php echo $html['name']; ?>"> <input type="hidden" name="hoby[reading]" value="<?php echo $html['hoby']['reading']; ?>"> <input type="hidden" name="hoby[appreciate]" value="<?php echo $html['hoby']['appreciate']; ?>"> <input type="hidden" name="hoby[trip]" value="<?php echo $html['hoby']['trip']; ?>"> <input type="hidden" name="maintext" value="<?php echo $html['maintext']; ?>"> <input type="submit" name="back" value="- 戻る -"> </form> <br> <form action="phpsample-form-get3.php" method="GET"> <input type="hidden" name="name" value="<?php echo $html['name']; ?>"> <input type="hidden" name="hoby[reading]" value="<?php echo $html['hoby']['reading']; ?>"> <input type="hidden" name="hoby[appreciate]" value="<?php echo $html['hoby']['appreciate']; ?>"> <input type="hidden" name="hoby[trip]" value="<?php echo $html['hoby']['trip']; ?>"> <input type="hidden" name="maintext" value="<?php echo $html['maintext']; ?>"> <input type="submit" name="comp" value="- 完了へ -"> </form> </body> </html> |
3完了 phpsample-form-get3.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 | <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>GETフォーム</title> </head> <body> <?php //変数初期化 $html = array(); $cln = array(); $strError = ''; //完了ボタンが押されていれば if(isset($_GET['comp'])){ //名前 フィルタリング 30文字以内 if(isset($_GET['name']) && $_GET['name'] != ''){ $cln['name'] = $_GET['name']; //マルチバイト文字列を含めた文字数 if(mb_strlen($cln['name']) <= 30){ //htmlentities()でHTMLコードをエスケープします。 $html['name'] = htmlentities($cln['name'], ENT_QUOTES, 'UTF-8'); }else{ $strError .= "名前を30文字以内にして下さい。<br>\n"; $html['name'] = ''; } }else{ $html['name'] = ''; }//end //選択読書 フィルタリング if(isset($_GET['hoby']['reading']) && $_GET['hoby']['reading'] != ''){ $cln['hoby']['reading'] = $_GET['hoby']['reading']; //値のチェック if($cln['hoby']['reading'] === 'reading'){ //htmlentities()でHTMLコードをエスケープします。 $html['hoby']['reading'] = $cln['hoby']['reading']; }else{ $strError .= "読書の選択肢が不正です。<br>\n"; $html['hoby']['reading'] = ''; } }else{ $html['hoby']['reading'] = ''; }//end //選択鑑賞 フィルタリング if(isset($_GET['hoby']['appreciate']) && $_GET['hoby']['appreciate'] != ''){ $cln['hoby']['appreciate'] = $_GET['hoby']['appreciate']; //値のチェック if($cln['hoby']['appreciate'] === 'appreciate'){ //htmlentities()でHTMLコードをエスケープします。 $html['hoby']['appreciate'] = $cln['hoby']['appreciate']; }else{ $strError .= "鑑賞の選択肢が不正です。<br>\n"; $html['hoby']['appreciate'] = ''; } }else{ $html['hoby']['appreciate'] = ''; }//end //選択旅行 フィルタリング if(isset($_GET['hoby']['trip']) && $_GET['hoby']['trip'] != ''){ $cln['hoby']['trip'] = $_GET['hoby']['trip']; //値のチェック if($cln['hoby']['trip'] === 'trip'){ //htmlentities()でHTMLコードをエスケープします。 $html['hoby']['trip'] = $cln['hoby']['trip']; }else{ $strError .= "旅行の選択肢が不正です。<br>\n"; $html['hoby']['trip'] = ''; } }else{ $html['hoby']['trip'] = ''; }//end //お問合せ内容 フィルタリング 300文字以内 if(isset($_GET['maintext']) && $_GET['maintext'] != ''){ $cln['maintext'] = $_GET['maintext']; //マルチバイト文字列を含めた文字数 if(mb_strlen($cln['maintext']) <= 300){ //htmlentities()でHTMLコードをエスケープします。 $html['maintext'] = htmlentities($cln['maintext'], ENT_QUOTES, 'UTF-8'); }else{ $strError .= "お問合せ内容を300文字以内にして下さい。<br>\n"; $html['maintext'] = ''; } }else{ $html['maintext'] = ''; }//end //フィルタリングでエラーがあれば if($strError != ''){ ?> 不正なエラーです。<br> <a href="phpsample-form-get.php">入力へ</a> </div> <hr/> </body> </html> <?php exit; } //完了ボタンが押されていなければ }else{ ?> 完了ボタンを押して下さい。<br> <a href="phpsample-form-get.php">入力へ</a> </div> <hr/> </body> </html> <?php exit; } ?> <h3>3完了</h3> <table border="1"> <tr> <td>名前</td> <td><?php echo $html['name']; ?></td> </tr> <tr> <td>趣味</td> <td> <?php if($html['hoby']['reading'] == 'reading') echo '読書<br>'; ?> <?php if($html['hoby']['appreciate'] == 'appreciate') echo '完了<br>'; ?> <?php if($html['hoby']['trip'] == 'trip') echo '旅行<br>'; ?> </td> </tr> <tr> <td>お問合せ内容</td> <td><?php echo nl2br($html['maintext']); ?></td> </tr> </table> <form action="phpsample-form-get.php" method="GET"> <input type="submit" name="input" value="- 入力へ -"> </form> </body> </html> |
タグ(=記事関連ワード)
日付
最終更新日:2024年11月07日