2010-06-22 10 views
5

वहाँ एक अंतर्निहित तरीका पोस्ट पर प्राप्त करने के लिए है/रैकेट में पैरामीटर प्राप्त? extract-binding और दोस्तों मैं क्या चाहते हो, लेकिन वहाँ एक सख्त अपलोड फाइल से संबंधित संभावित सुरक्षा जोखिमों के बारे में संलग्न नोट जोपोस्ट/रैकेट में बाइंडिंग प्राप्त

निष्कर्ष निकाला है इसलिए, हम उनके इस्तेमाल के खिलाफ की सलाह देते हैं, लेकिन वे पुराने कोड के साथ संगतता के लिए प्रदान की जाती हैं है।

सबसे अच्छा मैं समझ सकता है (और मुझे पहले से माफ कर दो)

(bytes->string/utf-8 (binding:form-value (bindings-assq (string->bytes/utf-8 "[field_name_here]") (request-bindings/raw req)))) 

लेकिन यह है कि अनावश्यक रूप से जटिल लगता है (और ऐसा लगता है जैसे कि यह एक ही कीड़े बाइंडिंग अनुभाग में दस्तावेज़ीकृत में से कुछ से ग्रस्त हैं)।

वहाँ एक और अधिक या कम मानक, गैर गाड़ी रास्ता एक पोस्ट/प्राप्त-चर के मूल्य पाने के लिए एक क्षेत्र का नाम और अनुरोध दिया है? या बेहतर अभी तक, सूची/हैश/ए-सूची के रूप में POST/GET मानों का संग्रह वापस लेने का एक तरीका? उनमें से किसी को छोड़कर, क्या कोई ऐसा कार्य है जो वही करेगा, लेकिन केवल जीईटी को अनदेखा कर पोस्ट चर के लिए?

उत्तर

3

निकालने-बाध्यकारी खराब है क्योंकि यह मामला असंवेदनशील है, जो कई बार लौटने वाले इनपुट के लिए बहुत गन्दा है, फ़ाइल अपलोड से निपटने का कोई तरीका नहीं है, और स्वचालित रूप से सब कुछ मानता है कि यूटीएफ -8 है, जो ' जरूरी नहीं सच है। यदि आप उन समस्याओं को स्वीकार कर सकते हैं, तो इसका उपयोग करने में संकोच न करें।

स्निपेट को काम करता है लिखा था जब डेटा को UTF-8 है और जब वहाँ केवल एक ही क्षेत्र वापसी है। आप परिभाषित कर सकते हैं कि यह एक कार्य है और इसे कई बार लिखने से बचें।

सामान्य तौर पर, मैं formlets का उपयोग करना चाहिये रूपों और उनके मूल्यों से निपटने के लिए।

अब आपके प्रश्नों ...

"वहाँ एक और अधिक या कम मानक, गैर गाड़ी रास्ता एक पोस्ट/प्राप्त-चर के मूल्य पाने के लिए एक क्षेत्र का नाम और अनुरोध दिया है?" यद्यपि आप गलत तरीके से लगता केवल एक मान है कि वहाँ

आपके पास क्या, मानक बात है। जब कई होते हैं, तो आप फ़ील्ड नाम पर बाइंडिंग फ़िल्टर करना चाहेंगे। इसी तरह, मान को स्ट्रिंग में बदलने के लिए की आवश्यकता नहीं है, तो आप इसे बाइट्स के रूप में ठीक से छोड़ सकते हैं।

"या बेहतर अभी तक, सूची/हैश/ए-सूची के रूप में POST/GET मानों का संग्रह वापस लेने का एक तरीका?"

क्या अनुरोध-बाइंडिंग/कच्चे करता है यही कारण है कि। यह बाध्यकारी की एक सूची है? वस्तुओं। एकाधिक मूल्य रिटर्न के कारण इसे हैश में बदलना समझ में नहीं आता है।

"उनमें से किसी एक को छोड़कर, क्या ऐसा कोई कार्य है जो ऐसा ही करेगा, लेकिन केवल जीईटी को अनदेखा कर पोस्ट चर के लिए?"

वेब सर्वर आपके द्वारा पोस्ट और जीईटी के बीच का अंतर छुपाता है। आप उन्हें पुनर्प्राप्त करने के लिए यूरी और कच्चे पोस्ट डेटा का निरीक्षण कर सकते हैं, लेकिन आपको उन्हें स्वयं पार्स करना होगा। मैं इसकी सिफारिश नहीं करता हूं।

जय

+0

ऐसा लगता है कि पोस्ट/जीईटी परिवर्तनीय प्रतिनिधित्व कैसे काम करता है इसका थोड़ा टूटा मॉडल था। जिज्ञासा से, फॉर्मलेट इस पार्सिंग को कैसे संभालते हैं? क्या यह मूल रूप से वही बाध्यकारी है: फॉर्म-वैल्यू 'कॉल जो ऊपर है?मुख्य कारण यह है कि मैं फॉर्मलेट मार्ग पर सीधे नहीं गया था कि मैं jQuery.ajax के माध्यम से सर्वर के साथ संवाद करने की कोशिश कर रहा हूं (जो पोस्ट भेजता है या चर प्राप्त करता है, लेकिन आवश्यक रूप से फॉर्म तत्वों से संबंधित नहीं है)। – Inaimathi

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