【ホームページ制作】iPhoneはなかなか。。。
皆さん、こんにちは。
スキル・バンク SEのW です。
先日クライアントから連絡がありまして、資料請求の申し込みが複数件あるのだが、氏名などが空欄のものが混ざっている、ということでした。
当社で問い合わせフォームを制作する場合、まずJavaScriptというブラウザ上で動作するプログラム言語を使って、必須項目に入力されているかチェックを行っています。
ただ、このJavaScriptはブラウザの設定でオフにすることができ、また、プログラム処理エラーが発生すると、そこで処理が中止されてしまうという仕様のため、JavaScriptだけでエラーチェックをしていると、スパムボットなどはそこをすり抜けてしまう可能性があります。
そこで当社では、サーバー側で動くスクリプトを使って、二重のチェックを掛けています。
このように二重チェックをしているのに、空の問い合わせを受け付けてしまっている。
いろいろ調べてみると、どうやらiPhoneの仕様に問題があるようでした。
例えば、当社の問い合わせフォームは下記のような流れになっています。
1.入力画面(JavaScriptによる入力チェック)
2.確認画面(サーバースクリプトによる入力チェック)
3.完了画面(受付メール送信)
Androidやパソコンのブラウザでは、3が終わった後にブラウザを閉じれば、それで処理完了となります。
ところがiPhoneは、3で完了画面をタブに残したままブラウザを閉じて再起動したときに、ページの再読み込みを行なうそうです。
つまり完了処理が再実行されるわけです。
ところが送信するデータは残っていないので、結果、空の問い合わせデータが送信されてしまうという現象が起きていました。
これを防ぐには、完了画面にも必須データチェックを入れることが必要です。
また、今回は念には念を入れて下記のような流れに変更しました。
1.入力画面(JavaScriptによる入力チェック)
2.確認画面(サーバースクリプトによる入力チェック)
3.(サーバースクリプトによる入力チェック・受付メール送信)
4.完了画面
メール送信と完了画面の表示をひとつのスクリプトで行っていたのを、メール送信と画面表示の2つのスクリプトに分けました。
これだと完了画面を再表示しても、画面が表示されるだけでメールの再送信は行われません。
端末もブラウザもどんどん種類が増えて、仕様も複雑・多様になってます。
どんな条件でも障害なく動くようなホームページ・システム作りに努めたいと思います。