- PR -

Servletで2重登録防止

1
投稿者投稿内容
user
常連さん
会議室デビュー日: 2004/05/20
投稿数: 41
投稿日時: 2004-05-20 15:43
僕はjavaとjspでバーチャルモールの研究を行っていますが
最近になって送信フォームでの2重登録の防止の設定という問題が
発生しました。Java Scriptの方で対応したいと考えていますが
どのように対応したらよいのでしょう?
(例えば、商品購入画面で送信ボタンをユーザーが1度押し変化がないので2回目
もボタンを押してしまいました。その場合に2つ商品を購入してしまうといった
問題です。)
知っている方がいたらぜひお教えねがいないでしょうか。
お願いします。
また、こちらのサイトの方で参考になるページを見つけはしました。ですが
そのソースで正しいかどうかといったことがよくわかりません。
下にそのソースを載せたいと思います。

**参考コード
----------------------------------------------------------------
送信ボタンのonClickで最初のクリックか2回目以降か調べられます。

下記のコードがサンプルです。
コード:
--------------------------------------------------------------------------------

・・・

<SCRIPT type="text/javascript">
<!--
var isFristTime = true;

function processSubmit() {
if(!isFristTime) {
return;
} else {
firsttime = true;
window.document.forms["FORM"].action = "http://....";
window.document.forms["FORM"].submit();
}
}

// -->
</SCRIPT>

・・・

<BODY>
<FORM name="FORM" method="post">
T1:<input type="text" name="T1"><BR>
T2:<input type="text" name="T2"><BR>
<input type="button" value="submit" onclick="processSubmit()">
</FORM>
</BODY>

・・・


koji
大ベテラン
会議室デビュー日: 2002/12/25
投稿数: 100
投稿日時: 2004-05-20 16:04
firsttime = true;
は、
isFristTime = false;
じゃないでしょうか。
user
常連さん
会議室デビュー日: 2004/05/20
投稿数: 41
投稿日時: 2004-05-20 16:26
失礼しました。
firsttime = true;は
firsttime = false;と書いてありました。
isfirstTime = false; とisが必要になるのですね。
参考になりました。
このコードは有名なのでしょうか?
Cluster
ぬし
会議室デビュー日: 2003/03/06
投稿数: 289
お住まい・勤務地: 大阪
投稿日時: 2004-05-20 19:31
引用:

スケりんさんの書き込み (2004-05-20 16:26) より:

このコードは有名なのでしょうか?



コードはともかく、抱えられてる課題はとても頻繁にある課題です。
解決方法もいくつかありますし、この例はその一つです。

ところで、Javascriptで対処する方法は、送信後の画面でリロードされた場合(IEだと「F5」を押された場合)に対応できないんですが、その辺りの対策は大丈夫ですか?
user
常連さん
会議室デビュー日: 2004/05/20
投稿数: 41
投稿日時: 2004-05-20 19:54
Clusterさんのおっしゃる「送信後の画面でリロードされた場合の対策」
の方は現時点で私の知識が足りないことからそれもまたカバーできていない
問題であります。
user
常連さん
会議室デビュー日: 2004/05/20
投稿数: 41
投稿日時: 2004-05-20 19:57
失礼しました。

Clusterさんのおっしゃる「送信後の画面でリロードされた場合の対策」
の方は現時点で私の知識が足りないことからそれもまたカバーできていない
問題であります。
また、この問題は頻繁にあるということは私も聞いたことがあり
ます。解決方法がいくつかあるといったことは今始めて知りました。
1

スキルアップ/キャリアアップ(JOB@IT)