
簡易メール問い合わせフォームを作成しています。
問い合わせ内容を記述後、submitしたら、CGIでメールを送信し、別のページ(「送信完了」ページ)へ飛ばしています。
このとき、送信完了ページから、元の問い合わせページへ「戻る」ボタン等を使用して戻った場合、input内に記述されたテキストがそのまま残っています。
この状態でまたsubmitすると、全く同じ内容のメールが送られてしまいます。
この連続投稿を防止したいのですが、何か簡単な策はないでしょうか?
それほど厳密な多重投稿禁止策でなくても構いません。
単純に「戻る」を使用したときにフォーム内容がクリアされていれば良いのですが、、、、
ページ読み込み時にjavascriptにて全てのフォーム内容をクリアしても、「戻る」ボタン使用時には実行されません。
送信元IPを見て連続投稿を禁止するという策も考えましたが、正直そこまでする必要があるかどうか疑問です。
戻るを押したときにフォームがクリアされていれば良いです。
どうかよろしくお願いします。
No.2ベストアンサー
- 回答日時:
ちょっと質問者の意図とは(別画面にしているので)違いますが、
このようにしてみたらどうでしょう。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=SHIFT_JIS">
<title>送信後のフォームのクリア</title>
<script type="text/javascript"><!--
var time_id=0;
function clear(){
document.FORM1.reset();
clearTimeout(time_id);
}
//-->
</script>
</head>
<body >
<form name="FORM1" method="POST" action="mail.cgi" target="_blank" onsubmit="time_id=setTimeout('clear()',10);">
<input type="text" name="address" value="">
<input type="submit" value="送信">
</form>
</body>
</html>
試してみましたが、ダメでした。
submitする前に、フォーム内容をクリアしているようですが、うまくいきません。
onsubmitの前に、actionを実行しているようです(?)
ありがとうございます。
No.4
- 回答日時:
#2>試してみましたが、ダメでした。
ウチでIE6, Firefox1.5 で試してみたところでは、クリアできるようなんですが。
#2>onsubmitの前に、actionを実行しているようです(?)
onsubmit の前にaction を実行すると言うことはありません。
する前にイベントが起こって実行されるので、(でないとイベントから送信をキャンセルできないことになるので)
clear() をclearForm() にしてみるとか
setTimeout('clear()',500);
にしてみる(数字を大きくする)とか試して貰えますか?
#2の要点は、送信完了の画面を別ウィンドウで表示する
そして、元のウィンドウのフォームを時間を置いてクリアするというものです。
No.1
- 回答日時:
メール内容入力とメール送信の間にメール内容確認画面を入れて、
メール内容入力からメール内容確認への値の受け渡しを Session で行います。そして、メール送信完了画面にて Session の値をクリアします。
このような処理にすれば、メール内容確認画面の最初で Session 値をチェックすれば
連続投稿も不正アクセスも禁止することができます。
でもこの方法は簡単ではないですね...orz
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
jQueryMobileについて
-
JSPの処理の途中で、JavaScript...
-
PowerPointで時計表示
-
ASP(VBS) ←→ JavaScript の変数...
-
エクセルVBA/ Formatで文字列が...
-
if(1){...}とはどういうことで...
-
javascript で外部サイトにデー...
-
以下のコードを実行しても、オ...
-
アクセスのフォームでタイマー...
-
〔Excel:VBA〕マクロの実行が異...
-
VBAによる第3、4水準文字の判定...
-
フォルダを自動で開く
-
JavaScriptで ブラウザの閉じる...
-
javascriptからサーバサイドの...
-
VBA ステータスバー DoEvents
-
動的ファイルの最終更新日を取...
-
二択質問作ってその成績表を横...
-
JavaScriptでフォームの入力項...
-
VB.netの重複データ数カウント...
-
ローカルのレジストリを読みたい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
イベントの発生
-
「戻る」ボタン使用時のフォー...
-
助けてください!スパムメール...
-
画面遷移を無くすためajaxでメ...
-
プルダウン式のフォームについて
-
PHP処理実行後のページの遷移に...
-
POSTでリダイレクト
-
Excelの起動
-
Onclickイベントでデータをcgi...
-
AJAX→PHP -DB(MySQL)- PHP→AJAX...
-
jqueryについて
-
ウェブフォームにjavascriptは...
-
JavaScriptで月に対して日の整...
-
自身のページとiframeの2つのペ...
-
javascript と php の、フォー...
-
Ajax以外で、JavaScriptからPHP...
-
javascript外部ファイルから読...
-
Jquery を使った住所情報の自...
-
javascript・JSP関連
-
フォーム入力の自動切換え
おすすめ情報