簡易メール問い合わせフォームを作成しています。
問い合わせ内容を記述後、submitしたら、CGIでメールを送信し、別のページ(「送信完了」ページ)へ飛ばしています。
このとき、送信完了ページから、元の問い合わせページへ「戻る」ボタン等を使用して戻った場合、input内に記述されたテキストがそのまま残っています。
この状態でまたsubmitすると、全く同じ内容のメールが送られてしまいます。
この連続投稿を防止したいのですが、何か簡単な策はないでしょうか?
それほど厳密な多重投稿禁止策でなくても構いません。
単純に「戻る」を使用したときにフォーム内容がクリアされていれば良いのですが、、、、
ページ読み込み時にjavascriptにて全てのフォーム内容をクリアしても、「戻る」ボタン使用時には実行されません。
送信元IPを見て連続投稿を禁止するという策も考えましたが、正直そこまでする必要があるかどうか疑問です。
戻るを押したときにフォームがクリアされていれば良いです。
どうかよろしくお願いします。
No.1
- 回答日時:
メール内容入力とメール送信の間にメール内容確認画面を入れて、
メール内容入力からメール内容確認への値の受け渡しを Session で行います。そして、メール送信完了画面にて Session の値をクリアします。
このような処理にすれば、メール内容確認画面の最初で Session 値をチェックすれば
連続投稿も不正アクセスも禁止することができます。
でもこの方法は簡単ではないですね...orz
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の要点は、送信完了の画面を別ウィンドウで表示する
そして、元のウィンドウのフォームを時間を置いてクリアするというものです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP php 入力画面から確認表示画面へ情報の受け渡しについて。 1 2023/06/07 18:00
- PHP フォームで戻った際に入力済みの値が残るのを消したい 3 2023/02/17 13:58
- JavaScript ラジオボタンによるフォームの開閉を行いたい 3 2022/03/31 21:30
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- PHP $_SESSIONに渡した後はそのまま使っても問題ありませんか? 3 2022/11/08 22:17
- JavaScript Javascriptを使ってQRコード読み取り、取得した情報をPOSTしたいと思っています。 1 2023/04/28 15:18
- PHP PHPで入力フォームでデータを確認表示画面まで送る流れを日本語で理解したいのです。 1 2023/05/29 19:12
- 教えて!goo アンドロイド用の教えて!gooアプリの戻るボタンを押すと、勝手に自動で教えて!gooアプリが終了して 2 2022/09/24 07:47
- PHP sessioncookieをではなくcookieを使わなければならない理由について… 4 2022/11/07 13:01
- その他(IT・Webサービス) 【ジモティーで謎のアカウント停止】 ジモティーで、5000円以上の売買をしたいため、投稿したところメ 2 2023/05/26 11:18
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PHP処理実行後のページの遷移に...
-
JavaScriptで ブラウザの閉じる...
-
jqGridの入力内容をサーバに保...
-
javascript 文字列の最後から1...
-
一定時間ごとの実行
-
VB.NET2003 テキストボックスに...
-
Excel VBA にて JavaScript の...
-
【JavaScript】ソースのコメン...
-
confirm()をはい/いいえ に切...
-
ラベルの色がかわってくれない
-
Vba SelStart、SelLen教えてく...
-
時間稼ぎの命令文とは?
-
画面間でのJavaScrip...
-
alert()が実行できない
-
JavaScriptでショートカットキ...
-
JSPの処理の途中で、JavaScript...
-
JavaScriptでファイルの保存
-
VBScript から JavaScript を呼...
-
Webページ中の javascript をVB...
-
ASP(VBS) ←→ JavaScript の変数...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
助けてください!スパムメール...
-
PHP処理実行後のページの遷移に...
-
「戻る」ボタン使用時のフォー...
-
指定した日時にリロード処理を...
-
POSTでリダイレクト
-
Onclickイベントでデータをcgi...
-
javascript中の記述でのJSP文<%%>
-
フォーム入力の自動切換え
-
Ajax以外で、JavaScriptからPHP...
-
親フォームのHiddenに子フォー...
-
javascriptからpythonへ値の受...
-
javascript 「戻る」を押したと...
-
javascript・JSP関連
-
javascript と php の、フォー...
-
Jquery を使った住所情報の自...
-
毎週決まった曜日から数日間だ...
-
現在日付を初期値にするには
-
連動プルダウンについてです。
-
if(1){...}とはどういうことで...
-
Vba SelStart、SelLen教えてく...
おすすめ情報