
128
7
章 ユーザとの情報交換:
Web
フォームの作成
7.4.5
<select>
メニュー
フォームに
<select>
メニューを使うときは、メニュー要素にサブミットされた値がメニューで
許可された選択の 1 つであることを確認するようにします。ユーザは Firefox や Chrome などの正
常に動作する主流のブラウザを使ってメニューにない値をサブミットすることはできませんが、攻
撃者はブラウザを使わずに任意の値を含むリクエストを作成できます。
<select>
メニューの表示と検証を簡略化するには、配列にメニューの選択肢を入れます。そ
して、
show_form()
の中でこの配列を反復処理して
<select>
メニューを表示します。
validate_
form()
で同じ配列を使ってサブミットされた値を検査します。例 7-18 は、このテクニックを使っ
て
<select>
メニューを表示する方法を示します。
例
7-18
<select>
メニューの表示
$sweets = array('Sesame Seed Puff','Coconut Milk Gelatin Square',
'Brown Sugar Cake','Sweet Rice and Meat');
function generate_options($options) {
$html = '';
foreach ($options as $option) {
$html .= "<option>$option</option>\n"; ...