2009-03-20 18 views
9

के रूप में पोस्टलाइन/कैरिज रिटर्न पोस्ट करें मुझे एक छिपे हुए क्षेत्र के माध्यम से बहु-लाइन डेटा पोस्ट करने की आवश्यकता है। पोस्ट के बाद डेटा को टेक्स्टरेरा में देखा जाएगा। मैं HTML फॉर्म में एक न्यूलाइन/कैरिज रिटर्न कैसे पोस्ट कर सकता हूं?छिपी हुई फ़ील्ड मान

मैं कोशिश की है \ r \ n लेकिन यह है कि सिर्फ वास्तविक पोस्ट "\ r \ n" डेटा

<input type="hidden" name="multiline_data" value="line one\r\nline two" /> 

वहाँ यह करने के लिए कोई तरीका है?

उत्तर

5

वास्तव में चरित्र सेट पर निर्भर करता है लेकिन & # 10; लाइनफीड होना चाहिए और & # 13; कैरिज रिटर्न होना चाहिए। आप मूल्य विशेषता में उन लोगों का उपयोग करने में सक्षम होना चाहिए।

+0

एक ब्राउज़र प्रपत्र प्रस्तुत करने का समर्थन करता है, तो यह सबसे अधिक संभावना भी एहसास होगा कि ' ' और ' ' नई लाइनें हैं, और अगर यह गलत तरीके से नई लाइनों को हटा, यह भी ' की सभी घटनाओं को हटा देगा 'और' '। – 0b10011

2

आप कहते हैं कि नहीं क्या यह है कि क्या प्रौद्योगिकी आप उपयोग कर रहे है या है, लेकिन आप जानते हैं कि आप छिपा क्षेत्र भरोसा नहीं कर सकते value = "पंक्ति एक लाइन दो" के साथ रहने के लिए होने की जरूरत है, क्योंकि पोस्ट में वापस भेजने से पहले एक शत्रुतापूर्ण उपयोगकर्ता इसके साथ छेड़छाड़ कर सकता है। चूंकि आप मान को < टेक्स्टरेरा > में बाद में डाल रहे हैं, उदाहरण के लिए, आप निश्चित रूप से क्रॉस साइट स्क्रिप्टिंग हमलों के अधीन रहेंगे, जब तक कि आप इसे वापस लिखने से पहले अपने "multiline_data" फ़ील्ड सामग्री को सत्यापित और/या sanitize न करें।

एक छिपे हुए क्षेत्र में मूल्य लिखते समय और इसे वापस पढ़ने के दौरान, आमतौर पर इसे सर्वर पर रखने के लिए, सत्र की विशेषता के रूप में, या पृष्ठ प्रवाह, या जो कुछ भी आपके पर्यावरण को इस तरह की चीज करने के लिए प्रदान करता है।

11

इसके बजाय का उपयोग कर

<input type="hidden">

उपयोग करने का प्रयास की

<textarea style="visibility:hidden;position:absolute;">

+0

'शैली =" डिस्प्ले: कोई नहीं; "शायद अधिक सटीक – megaflop

+0

@ डिस्कोस्क फ़ॉर्म तत्व 'डिस्प्ले पर सेट हैं: कोई नहीं' [हमेशा सबमिट नहीं किया जाता है] (http://stackoverflow.com/a/8318442/526741)। मुझे यकीन नहीं है कि कौन से ब्राउज़र करते हैं और प्रदर्शन नहीं करते हैं: कोई भी फ़ील्ड नहीं, लेकिन उस उत्तर के तहत टिप्पणियों के अनुसार, IE8 * नहीं * करता है। – 0b10011

9

जबकि नई लाइनों (कैरिज रिटर्न & लाइन फ़ीड) तकनीकी रूप से < इनपुट> के छिपा राज्य में अनुमति दी जाती है , उन्हें पुराने ब्राउज़र के साथ संगतता के लिए भाग जाना चाहिए। आप सभी कैरिज रिटर्न्स (\u000D या \r) और सभी लाइन फ़ीड्स (\u000A या \n) को अपने कैरिज रिटर्न या नई लाइन के रूप में पहचाने जाने वाले मालिकाना तारों के साथ ऐसा कर सकते हैं (और मूल रूप से मौजूद होने पर भी बच निकले हैं) स्ट्रिंग)।

सीधे शब्दों में चरित्र संस्थाओं यहां गैर-अनुरूप ब्राउज़रों संभवतः जानते हुए भी &#10; और &#13; नई लाइनें हैं और उन्हें मूल्य से अलग करना की वजह से काम नहीं करते।

उदाहरण

उदाहरण के लिए, PHP में, यदि आप echo करने के लिए एक पाठ क्षेत्र को भेजे गए मान थे, तो आप नई-पंक्तियों (और नहीं छोड़ा जाएगा स्ट्रिंग) भी शामिल होगा।

< पाठ क्षेत्र> एक \ के साथ कुछ पाठ शामिल
और प्रस्तुत मूल्य के रूप में साथ \ r \ n एक नई लाइन </पाठ क्षेत्र>

हालांकि, PHP में, यदि आप echo के लिए गए थे मान < इनपुट> टैग का गुण, आप अपने मालिकाना तारों (जैसे \r और \n) के साथ नई लाइनों से बचेंगे, और सबमिट किए गए मान में अपने मालिकाना तारों के किसी भी उदाहरण से बचें।

< इनपुट प्रकार = "छिपा" मान = "एक \\ साथ कुछ पाठ शामिल \ r \ n और एक नई लाइन \\ r \\ n प्रस्तुत मूल्य के रूप में">

फिर, इससे पहले अन्यत्र मूल्य (डेटाबेस, ईमेलिंग, आदि में डालने) का उपयोग करके, यदि आवश्यक हो तो सबमिट किए गए मान को अनदेखा करना सुनिश्चित करें।

आश्वासन

आगे आश्वासन के रूप में, मैं WHATWG पूछा, और इयान हिक्सन, एचटीएमएल कल्पना वर्तमान के संपादक ने जवाब दिया:

bfrohs प्रश्न < के बारे में इनपुट प्रकार = छिपा> - क्या लाइन फ़ीड्स और कैरिज रिटर्न्स मूल्य में अनुमत हैं? उन्हें विशेष रूप से टेक्स्ट स्टेटस और सर्च स्टेटस में अस्वीकार कर दिया जाता है, लेकिन छिपे हुए राज्य के लिए कोई उल्लेख नहीं किया जाता है। और, यदि नहीं, तो क्या टेक्स्टटेरा से फ़ॉर्म डेटा संग्रहीत करने के लिए एक स्वीकार्य HTML समाधान है?

Hixie हाँ, वे अनुमति दी जाती है // iirc विरासत कारणों आप उन्हें बचने के लिए, हालांकि के रूप में कुछ ब्राउज़रों उन्हें दूर सामान्य // मैं भूल अगर हम कि या तय नहीं कल्पना में // इच्छा हो सकती है के लिए //

Source

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