当サイトのお問い合わせフォーム、問い合わせ内容欄の上限文字数を500文字に設定していました。時々、文字数の関係で2回に別けて送って下さるお客様もいらっしゃいました。
先日も、打ちきれなかったので、文字数を増やした方がいいのでは?とご指摘を受けたこともあり、余裕を持って3,000文字に変更、テストをしていて、重大なミスに気付きました。サイト開設・設置から1年8ヶ月間も気付かないでいたことになります。
その不具合とは…
問い合わせフォームが送信されるまでの流れは、
- 入力画面
- エラーがあればエラー画面
- 内容確認画面
- 送信完了画面
という感じになります。当方で使用しているプログラムは全てオリジナルです。phpプログラムは1つにまとめて、switchやcaseなどの関数で各画面への振り分けを行っています。シンプルが一番。
テスト。内容を入力して、確認画面へ進む。通常はここで入力内容を確認して送信ボタンを押します。内容に修正があれば「内容を修正する」というリンクを押して、入力画面に戻ります。
この戻った時「初めに入力した内容がクリアされている」ことに気付きました。自分でも最もうざい仕様だと思います。これって頭に来ますよね?
入力項目の受け渡しは、sessionで行っています(ページ間の入力項目データ保持)。一番初めに「内容を確認する」というボタンを押した瞬間、その内容を保持します。
この後「内容を修正する」で戻った際、上記のsessionをスタートさせていなかったため、フォーム内にデータが表示されない状態でした。
単純ミス。//session_start(); ← 頭の//はコメントアウトと言って、それ以降の文字列をプログラムから除外します。//を消すことによって、不具合は解消しました。制作時のテスト後の消し忘れです。
今まで、長文を打った後、戻った方、「消えてんじゃねぇか!」そのまま立ち去られた方もいるかも。もう一度、根気よく打っていただいた方もいるかも。もう大丈夫です、申し訳ありませんでした。