新卒から文系エンジニア→人材業界に転職した人のブログ

新卒から文系エンジニア→人材業界に転職。技術・スキルがないためブログを通して勉強。その後、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; }