【php入門③】複数の値をformで送受信する
【今回の内容】
前回は、formで値を送受信する際、htmlの特殊文字や「'」「"」を無効化する方法を取り上げました。
【php入門②】formの値を安全にphpで取得する~XSS対策~
以下の参考書を使用しながら、今回は、複数の値をformを使用しながら送受信するということを行っていきたいと思います。
【メモ】
①複数の値を送りたいときは、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>