2009-05-19 15 views
6

सटीक डुप्लिकेट: How to handle multiple submissions server-sideरोकथाम डबल फ़ॉर्म सबमिशन

हाथ में सामान्य कार्य: एक बहु-उपयोगकर्ता वेब आधारित आवेदन में एक डबल फ़ॉर्म प्रविष्टि रोकना। वित्तीय लेनदेन सोचो।

मैं दो तरीकों से मिलकर इस्तेमाल किया जा सकता है:

  1. बटन
    • की जावास्क्रिप्ट को अक्षम करने नुकसान: यदि जावास्क्रिप्ट निष्क्रिय
  2. वापस अंत सत्यापन है काम नहीं करता है - देखें कि कितने समय पहले इस प्रकार का अंतिम अनुरोध इस उपयोगकर्ता से आया था और यदि समस्या बहुत पहले नहीं है तो
    • नुकसान: दो प्रस्तुतियाँ पर्याप्त एक साथ वाली है तो एक दूसरे को

मैं विषय विशेषज्ञों उनके सर्वोत्तम प्रथाओं योगदान करने के लिए और साथ ही गूढ़ चाल रहा हूँ के बारे में पता होना करने के लिए सक्षम नहीं हो सकता । कोई भाषा और ढांचा हो सकता है, लेकिन Django विशिष्ट रुचि का है। वेब पर काम के बारे में बहुत कुछ लिखा गया है, लेकिन यहां दिखाए गए सर्वोत्तम अभ्यासों के लिए यह अच्छा होगा।

+0

यह बंद कर दिया गया है, लेकिन इसी तरह के प्रश्न कहां हैं? डबल-सबमिट-रोकथाम टैग सटीक एक ही समस्या परिदृश्य नहीं लाता है। – vsingh

उत्तर

8

आम समाधान हर बार जब आप फॉर्म उत्पन्न करते हैं तो सर्वर पर टोकन उत्पन्न करना होता है। सर्वर पर टोकन स्टोर करें, इसे फ़ॉर्म में एक छिपे हुए फ़ील्ड के रूप में जोड़ें, और उस टोकन के साथ फ़ॉर्म जमा करने के बाद इसे हटा दें।

यदि आपको वैध टोकन के बिना फॉर्म सबमिशन मिलता है, तो इसका मतलब है कि फ़ॉर्म पहले ही सबमिट कर चुका है और इसे अनदेखा कर दिया गया है।

इसमें आपके प्रोजेक्ट में एक्सएसआरएफ सुरक्षा जोड़ने का अतिरिक्त लाभ है।

संबंधित मुद्दे