お問合せフォーム
管理者
|
2023年02月14日

お問合せフォーム構成
入力フォーム → 確認ページ → 送信完了ページ
*入力フォーム・確認ページ共通
ワンタイムトークンの生成
例)
- ランダムな文字列生成し、セッション(A)に保管。
- 保管した文字列を半分にして1つはinput type=hidden(B)にてPOSTする。
- もう1つはセッション(C)に保管する。
ページが移動したときにA=B+CならばTRUE、それ以外はFALSE。
ページ移動ごとに新しいトークンを生成し、1に戻る。
入力フォーム
- 入力する内容によってinput type属性を選択する
- 必須項目は入力する前でもわかりやすくする(送信ボタンを押してから「必須項目です」は言わない)
- チェックボックスもしくはラジオボタンの数が5つ以上ある場合は、selectボックスを利用する(デザインによっては5つ以上でも問題はない)
- ファイル・画像などをアップロードする場合は、選択した後に何のファイルがアップロードされるかを可視化する(FileReaderなどを使いファイルセレクトイベントにて情報を取得し、画面へ表示する)
- テキストエリアは、入力した内容が全て見えるように変化させる(テキストエリアの高さ固定は避けるべき)
- トークンをセットする
- 確認ページへ移動する前に入力内容を検証(バリデーション)し、ミスがある場合は、確認ページへは移動させないようにする
確認ページ
- 入力ページからのトークンの整合性を確認し、FALSEならば入力フォームへ移動する
- 新しいトークンをセットする
- 入力内容の表示は入力フォームで入力した順番に表示する
- 入力フォームへ戻るボタンを付ける
- 入力内容はセッションに保存し、入力フォームへ戻った場合は、そのセッション内容を入力フォームへセットする
- 新しいトークンをセットする
送信完了ページ
- 確認ページからのトークンの整合性を確認し、FALSEならば入力フォームへ移動する
- 全てのセッションを破棄する
- 送信が完了した旨を正確に伝えへその後の対応も記載する
- このページから次の行動を促すボタンをわかりやすく表示する
- ページをリロードすると入力フォームへ移動する
メール送信プログラム
SMTPサーバを使ったメール送信プログラムがスパムになりにくい。
もちろんDNSレコード設定でSPFレコードがきちんと評価されていること
例)PHPMailerなど