यदि आप डबल सबमिशन को रोकना चाहते हैं, तो आपको "सबमिट किया गया" बनाम "सबमिट नहीं किया गया" की स्थिति को स्टोर करना होगा। इस जानकारी को कहां रखा जाए, इसके लिए आपके पास कई विकल्प हैं।
- डेटाबेस - एक स्वत:उत्पन्न मान के साथ एक छिपी हुई फ़ील्ड जोड़ें जो अद्वितीय है (आप इसे एक छोटी यादृच्छिक स्ट्रिंग उत्पन्न कर सकते हैं और वर्तमान समय जोड़ सकते हैं)। इस मान का उपयोग वार्तालाप की पहचान करने के लिए भी किया जा सकता है -- यदि आपको एक स्टेटफुल वेब वार्तालाप की आवश्यकता है। इस मान को डेटाबेस में जोड़ें और इसे अद्वितीय बनाएं। नुकसान:डेटाबेस में अनावश्यक भंडारण, टिप्पणी डालने पर कम प्रदर्शन, एक अद्वितीय स्ट्रिंग उत्पन्न करना है।
- सत्र - एक ही छिपे हुए फ़ील्ड को समान मामले में उत्पन्न मान के साथ जोड़ें। जब उपयोगकर्ता फॉर्म जमा करता है, तो सत्र में मान को सहेजें यदि यह पहले से नहीं है। यदि ऐसा है, तो यह दोहरा सबमिशन है। नुकसान:आपको अभी भी अद्वितीय टोकन जनरेट करने की आवश्यकता है।
- ब्राउज़र - (1) सबमिट बटन पर क्लिक करने के बाद उसे निष्क्रिय करने के लिए कुछ जावास्क्रिप्ट जोड़ें। (2) में एक छिपी हुई फ़ील्ड है जो मान 0 से शुरू होती है और जब उपयोगकर्ता सबमिट बटन पर क्लिक करता है तो 1 में बदल जाता है। यदि उपयोगकर्ता फिर से बटन पर क्लिक करता है, तो आप जांचते हैं कि क्या मान 1 है और यदि है तो निरस्त करें। लाभ:कोई अद्वितीय स्ट्रिंग नहीं। नुकसान:जावास्क्रिप्ट को सक्षम करने की आवश्यकता है; आपको स्टेटफुल वेब वार्तालापों को लागू करने के लिए वैसे भी स्ट्रिंग की आवश्यकता हो सकती है।