FOR SE

文系の学部から新卒でメーカー系のSIerに就職。技術・スキルがないためブログを通して勉強。その後、IT業界の業界知識が活かせる人材業界に就職

このエントリーをはてなブックマークに追加

【php入門③】複数の値をformで送受信する

【今回の内容】


前回は、formで値を送受信する際、htmlの特殊文字や「'」「"」を無効化する方法を取り上げました。


【php入門②】formの値を安全にphpで取得する~XSS対策~



以下の参考書を使用しながら、今回は、複数の値をformを使用しながら送受信するということを行っていきたいと思います。



よくわかるPHPの教科書
よくわかるPHPの教科書





【処理の流れ】

チェックボックスで複数の値を選択

②formによりphpに、選択した値を配列で送る

php側で②で送信した値を配列で受け取る



【メモ】

①複数の値を送りたいときは、name=""に以下のように括弧をつける。

<input type="checkbox" name="input3[]" value="サッカー">サッカー


php側で受け取る時は、ニ次元配列で受け取る。

print ($_POST['input3'][0].'</br>');


③複数値を処理できるようになるとできること

 複数値を処理できるようになるとできるといろいろ幅が広がりそうです。
 
  ・チェックボックスの複数値を取得
   例)趣味とか
  

  ・同じカテゴリーなんだけど複数テキストボックスの入力が必要なときとか
   例)住所とか

【参考ソース】

入力画面

<html>
<meta http-equiv="Content-Type" content="text/html;
charset=UTF-8" />
<body>
<form action="./testForm.php"method="post">
<span>名前は</span><input type="text" name="input1">
<p>
<span>性別は</span><input type="radio" name="input2" value="男"><input type="radio" name="input2" value="女"></p>
<span>趣味は</span><input type="checkbox" name="input3[]" value="サッカー">サッカー
				   <input type="checkbox" name="input3[]" value="散歩">散歩
				   <input type="checkbox" name="input3[]" value="野球">野球

<input type="submit" value="送信">
</form>
</body>
</html>

送信される画面

<html>
<meta http-equiv="Content-Type" content="text/html;
charset=UTF-8" />
<body>
<?php
$input1=(htmlspecialchars($_POST['input1'],ENT_QUOTES));
$input2=(htmlspecialchars($_POST['input2'],ENT_QUOTES));

print ($input1.'</br>');
print ($input2.'</br>');

print (htmlspecialchars($_POST['input3'][0],ENT_QUOTES).'</br>');
print (htmlspecialchars($_POST['input3'][1],ENT_QUOTES).'</br>');
print (htmlspecialchars($_POST['input3'][2],ENT_QUOTES).'</br>');
?>
</body>
</html>
.hatena-module:nth-of-type(10) { background: transparent; } .hatena-module:nth-of-type(10) .hatena-module-title{ display: none; } .hatena-module:nth-of-type(10) .hatena-module-body { padding: 0; }