お問い合わせフォーム(ラジオボタン)

1.ラジオボタンが初めて使われる
チェックボックスでは、複数の選択が可能なので、
<li><input type=”checkbox” name=”cbx-1″ value=”事業支援・融資相談など ” <!– TMPL_IF name=”cbx-1″ –> checked=”checked”<!– /TMPL_IF –> />事業支援・融資相談など</li>
という感じに value 項目には半角スペースを文末に入れていたが、ラジオボタンで同じことをすると、エラーの表示時に、入力した
データを保持してくれなくなる。ラジオボタンの場合は、value項目が大事となる。

ラジオボタンとセレクタの場合、
<!– TMPL_IF name=”naiyo-1%e6%97%a5%e7%9c%8b%e8%ad%b7%e5%b8%ab%e4%bd%93%e9%a8%93″ –> checked=”checked”<!– /TMPL_IF –>
のように、valueの値をutf8でエンコードした文字を変数ハイフンの後に追加する。

2.メールアドレスが必須でない→お客様へのメール自動送信はしないようにする

pgdmailform_config.cgiで
##### 自動応答メールの設定
# テンプレート mail_sender.txt が存在すれば自動応答を行う

とあるので、これを名前を変えるなりして、使用しないようにする

差出人がApachになるが、webからのお問い合わせが届く
→今までは差出人にアドレスが入っていた

3.入力チェック(フォーマットチェック contact.cgi)

if ($in{$key} ne ”) {

if ($key =~ /^name1/i && $in{$key} =~ /(?:\xEF\xBD[\xA1-\xBF]|\xEF\xBE[\x80-\x9F])+$/) { $error_list{$key} = 1; } →半角カタカナ
if ($key =~ /^name2/i && $in{$key} =~ /(?:\xEF\xBD[\xA1-\xBF]|\xEF\xBE[\x80-\x9F])+$/) { $error_list{$key} = 1; }
if ($key =~ /^huri1/i && $in{$key} =~ /(?:\xEF\xBD[\xA1-\xBF]|\xEF\xBE[\x80-\x9F])+$/) { $error_list{$key} = 1; }
if ($key =~ /^huri2/i && $in{$key} =~ /(?:\xEF\xBD[\xA1-\xBF]|\xEF\xBE[\x80-\x9F])+$/) { $error_list{$key} = 1; }
if (($key =~ /^zip$/i || $key =~ /^zip[^12].+/i) && $in{$key} !~ /^\d{3}\-?\d{4}$/) { $error_list{$key} = 1;}
if ($key =~ /^zip1/i && $in{$key} !~ /^\d{3}$/) { $error_list{$key} = 1;}→3ケタ半角数字
elsif ($key =~ /^zip2/i && $in{$key} !~ /^\d{4}$/) { $error_list{$key} = 1;} →4桁半角数字
if ($key =~ /^(tel|fax)/i && $in{$key} !~ /^\d[\d\-]+\d$/) { $error_list{$key} = 1;}→半角数字とハイフン
if ($key =~ /^b_year/i && $in{$key} !~ /^\d+$/) { $error_list{$key} = 1;}→半角数字のみ
if ($key =~ /^b_month/i && $in{$key} !~ /^\d+$/) { $error_list{$key} = 1;}
if ($key =~ /^b_day/i && $in{$key} !~ /^\d+$/) { $error_list{$key} = 1;}
if ($key =~ /^email/i && $in{$key} !~ /^[\w\.\-\_\,\/\?\+]+\@\w+[\w\-\.]+\.[\w\-\.]+\w$/) { $error_list{$key} = 1;}→半角英数と@等
if ($key =~ /^school/i && $in{$key} =~ /(?:\xEF\xBD[\xA1-\xBF]|\xEF\xBE[\x80-\x9F])+$/) { $error_list{$key} = 1; }→半角カタカナ
if ($key =~ /^gakunen/i && $in{$key} =~ /(?:\xEF\xBD[\xA1-\xBF]|\xEF\xBE[\x80-\x9F])+$/) { $error_list{$key} = 1; }
if ($key =~ /^sotunen/i && $in{$key} =~ /(?:\xEF\xBD[\xA1-\xBF]|\xEF\xBE[\x80-\x9F])+$/) { $error_list{$key} = 1; }
if ($key =~ /^address/i && $in{$key} =~ /(?:\xEF\xBD[\xA1-\xBF]|\xEF\xBE[\x80-\x9F])+$/) { $error_list{$key} = 1; }
if ($key =~ /^day1/i && $in{$key} =~ /(?:\xEF\xBD[\xA1-\xBF]|\xEF\xBE[\x80-\x9F])+$/) { $error_list{$key} = 1; }
if ($key =~ /^day2/i && $in{$key} =~ /(?:\xEF\xBD[\xA1-\xBF]|\xEF\xBE[\x80-\x9F])+$/) { $error_list{$key} = 1; }
if ($key =~ /^day3/i && $in{$key} =~ /(?:\xEF\xBD[\xA1-\xBF]|\xEF\xBE[\x80-\x9F])+$/) { $error_list{$key} = 1; }
if ($key =~ /^place/i && $in{$key} =~ /(?:\xEF\xBD[\xA1-\xBF]|\xEF\xBE[\x80-\x9F])+$/) { $error_list{$key} = 1; }
if ($key =~ /^other/i && $in{$key} =~ /(?:\xEF\xBD[\xA1-\xBF]|\xEF\xBE[\x80-\x9F])+$/) { $error_list{$key} = 1; }

}

4.確認画面から戻るとエラーが残っている
js のhistorybackを使っているから、仕方がない

5.
ロールオーバー class=”rollover”は<a>の中で使用するため、<input>タグ内では下記のようになる
<input type=”image” src=”img/b_submit.gif” onmouseover=”this .src=’img/b_submit_f2.gif'” onmouseout=”this .src=’img/b_submit.gif'” alt=”送信する” />