एक साथी प्रोग्रामर ने मुझे बताया कि यह मेरे HTML कोड में छिपे हुए फ़ील्ड का उपयोग करने के लिए 'खराब अभ्यास' था। अनिवार्य रूप से मेरे पास एक अनियमित सूची है कि उपयोगकर्ता एक श्रेणी के आधार पर एक आइटम का चयन करता है जिसे उन्होंने चुना है (श्रेणियां चित्र हैं)। इसके बाद यह उपयोगकर्ता को चुने गए मान के लिए एक छिपे हुए फ़ील्ड को सेट करने के लिए जावास्क्रिप्ट को कॉल करता है ताकि फ़ॉर्म सबमिट किए जाने पर मैं इसे भेज सकूं। क्या यह वास्तव में बुरा अभ्यास है, क्या मुझे ऐसा करने का एक और तरीका है?क्या छुपे हुए क्षेत्रों का उपयोग करना बुरा व्यवहार है?
उत्तर
एचटीएमएल डोम में जावास्क्रिप्ट मान को स्टोर करना आम तौर पर एक बुरा अभ्यास है। आपको अपने जावास्क्रिप्ट वातावरण में संग्रहीत सूची बनाने की कोशिश करनी चाहिए।
window.myList = new Array();
मैं तुम्हें Underscore.js या यहाँ तक कि Backbone.js की तरह कुछ का उपयोग करने के लिए जब आप सामान का एक बहुत है सलाह देते हैं।
यदि आप केवल सबमिट पर इन डेटा का उपयोग करते हैं, तो आपका केस कानूनी लगता है।
"यदि आप केवल सबमिट पर इन आंकड़ों का उपयोग करते हैं" ठीक है, तो यह एक पहुंच योग्यता होगी यदि समान कार्यक्षमता जेएस के बिना काम नहीं करती है, लेकिन फिर यह ग्राहक निर्भर करता है कि इस पर निर्भर करता है। – feeela
यह एक बहुत ही आम प्रथा है। आपके मामले में एकमात्र मुद्दा जो मैं सोच सकता हूं वह यह है कि यदि आपके आगंतुक के पास जावास्क्रिप्ट अक्षम है तो यह टूट जाएगा, इसलिए आप फॉलबैक चाहते हैं।
छिपे हुए फ़ील्ड मौजूद हैं ताकि कोई इनपुट प्रदर्शित किए बिना किसी फॉर्म में एक मूल्य निर्धारित कर सके, मैं समझने में असफल रहा कि यह उनका उपयोग करने का बुरा अभ्यास कैसा है। यदि आप कोई कस्टम विजेट बना सकते हैं और यह मान भेजने एक रूप के माध्यम से करने की जरूरत है यह यह करने के लिए सबसे आसान तरीका है, आप अभी भी गतिशील चयन सूचियों के साथ चुनिंदा बटन इस्तेमाल कर सकते हैं लेकिन आप इंटरफ़ेस सुंदर लग रही बनाने के लिए बदसूरत हैक्स करना होगा।
आप फ़ॉर्म सबमिट करना चाहते हैं और कुछ सरल मान देता है जो दृश्य प्रपत्र फ़ील्ड्स में शामिल नहीं हैं पारित करने के लिए की जरूरत है, तो एक छिपी हुई फ़ील्ड शायद ऐसा करने का सबसे प्राचीन, सबसे विश्वसनीय, और स्पष्ट तरीका है।
अनुपयोगी:
विकल्पों पर विचार कुछ भी छिपा पारित न करें।
गरीब: एएसपी.Net व्यूस्टेट की तरह एब्स्ट्रैक्शन, जो किसी भी छिपे हुए फ़ील्ड का उपयोग करता है लेकिन अनुरोध मॉडल को प्रदूषित करता है (और जब तक आप सावधान नहीं हैं तब तक अनियंत्रित डेटा का एक गुच्छा जोड़ सकते हैं - और अधिकांश लोग नहीं हैं)।
बीएडी: क्वेरी स्ट्रिंग पर सभी फॉर्म मान पास करें। यह आमतौर पर गैर-भरोसेमंद होता है और यह कमजोर हानिकारक हो सकता है (उपयोगकर्ता एक क्वेरीस्ट्रिंग बुक करता है जो एक अप्रत्याशित कार्रवाई करता है)।
शायद: AJAX का उपयोग करके मैन्युअल रूप से POST मान। यह एक बहुत ही वैध कार्यान्वयन हो सकता है, यह मानते हुए कि आप केवल एसिंक ऑपरेशन करना चाहते हैं।
हो सकता है कि: पूर्ण गोल यात्रा जहां सर्वर परिवर्तन संभालती है (एक ही रास्ता जावास्क्रिप्ट के बिना उपयोगकर्ताओं का समर्थन हो सकता है)।
सुरक्षित जानकारी के लिए छिपे हुए फ़ील्ड का उपयोग करना बुरा अभ्यास है। जब कोई सुरक्षा मुद्दा है, यह छिपा फ़ील्ड का उपयोग करने में आम तौर पर ठीक है।
आपको कारण और संदर्भ देना चाहिए। – valentinas
उन्हें एन्क्रिप्ट करने से आप में क्या रोकें? यह कोई तर्क नहीं है क्योंकि किसी भी नियंत्रण या क्षेत्र पर पृष्ठ पर किसी भी डेटा के लिए यह वही समस्या है। – Aristos
यह स्टैक ओवरफ्लो का मानक नहीं है जिसे आपको संदर्भ प्रदान करने की आवश्यकता है। तो valentinas टिप्पणी निष्पक्ष रूप से झूठी है। दो और चीजें: मैं शून्य परिकल्पना का बचाव कर रहा हूं कि कोई समस्या नहीं है इसलिए साबित करना मुश्किल है। इसके अलावा, यह एक आम-संवेदी प्रकार का मुद्दा है। अब, छिपे हुए फ़ील्ड का उपयोग करना गलत नहीं है; वे एक कारण के लिए मौजूद हैं। वे एक बड़ी सुविधा हैं और वे तब उपयोग करने जा रहे हैं जब अगले अनुरोध की स्थिति उस विशेष पृष्ठ में निहित है, जिस पर आप हैं। (उदाहरण के लिए, एक सूची छंटनी)। – Joe
- 1. क्या क्लास लेवल वैरिएबल पर उपयोग कथन का उपयोग करना बुरा व्यवहार है?
- 2. ओरेकल छुपे हुए फ़ील्ड क्या हैं?
- 3. क्या कम चर को ओवरराइड करना बुरा व्यवहार है?
- 4. छुपे हुए मार्कोव मॉडल अगले अवलोकन
- 5. क्या PHP में ऑटोलोडिंग का उपयोग करना बुरा है?
- 6. एंड्रॉइड यूएसबी होस्ट और छुपे हुए डिवाइस
- 7. क्या अनावश्यक संबंधों का उपयोग करना बुरा है?
- 8. क्या प्रश्नों में $ _SESSION ['id'] का उपयोग करना बुरा है?
- 9. क्या PHP के अंदर एचटीएमएल का उपयोग करना बुरा है?
- 10. ओवरफ्लो-एक्स क्यों है: छुपे हुए क्लिप मेरे वंशज?
- 11. बुरा सी ++ प्रोग्रामर व्यवहार
- 12. क्या लाइब्रेरी फ़ंक्शन का उपयोग किए जाने पर सिस्टम() फ़ंक्शन का उपयोग करना बुरा व्यवहार है? क्यूं कर?
- 13. यह बुरा व्यवहार सीएसएस
- 14. हाइबरनेट डेटाबेस के माइग्रेशन के लिए DiscriminatorFormula का उपयोग करना बुरा व्यवहार है?
- 15. इनलाइन ईवेंट हैंडलर लिखना बुरा व्यवहार है
- 16. वेब सुरक्षा, क्या छुपे हुए फ़ील्ड (कोई संवेदनशील डेटा नहीं) हैं?
- 17. क्या वेब.कॉन्फिग फ़ाइल में संवेदनशील जानकारी डालना बुरा व्यवहार है?
- 18. क्या यह $ _POST को लिखना बुरा व्यवहार है?
- 19. क्या खाली कक्षा घोषित करना बुरा है?
- 20. क्या कक्षा में सुपर() को कॉल करना बुरा व्यवहार है जो कुछ भी नहीं बढ़ाता है?
- 21. क्या जावा में किसी सरणी को इंडेक्स करने के लिए एनम के सामान्य मूल्य का उपयोग करना बुरा व्यवहार है?
- 22. Magento केवल-पढ़ने और छुपे हुए उत्पाद विशेषताओं
- 23. छुपे हुए फ़ील्ड क्लाइंट साइड स्टेट मैनेजमेंट क्यों मानते हैं?
- 24. क्या LINQ का उपयोग करने के लिए LINQ का उपयोग करना और केवल डेटा चुनने के बजाय क्रियाएं करना बुरा व्यवहार है?
- 25. क्या जार के भीतर गुण/कॉन्फ़िगरेशन फ़ाइलों को शामिल करना बुरा व्यवहार है?
- 26. क्या एचटीएमएल के शरीर में जावास्क्रिप्ट को एम्बेड करना बुरा व्यवहार है?
- 27. ओपनईआरपी में संबंधित क्षेत्रों का उपयोग क्या है?
- 28. Checkstyle: कैसे हल करने के लिए "छुपे हुए फील्ड" त्रुटि
- 29. क्या किसी अन्य से एक्सप्रेस मार्गों को कॉल करना बुरा व्यवहार है?
- 30. छुपे हुए मार्कोव मॉडल में संभावनाओं का निर्णय लेने के तरीके क्या हैं?
हो सकता है कि आप उसे अपने पहले क्यों वह/वह इतना सोचता है पूछना चाहिए/... – Christophe
यह केवल वास्तव में "बुरा व्यवहार" अगर आप (उपयोगकर्ता से कुछ छिपाने के लिए आप अपने ईमेल पते प्रस्तुत करने के लिए जा रहे हैं की तरह कोशिश कर रहे हैं उन्हें बताए बिना HTTP पर)। यदि उपयुक्त हो तो छिपे हुए फ़ील्ड का उपयोग करने में कुछ भी गलत नहीं है। –
बुरा अभ्यास नहीं, सामान्य अभ्यास।कार्यान्वयन के आधार पर, आपके पास पहुंच के मुद्दे हो सकते हैं, लेकिन मैं सुझाव दूंगा कि आप अपने सहयोगी को अनदेखा करें या उससे अधिक जानकारी प्राप्त करें। –