2011-06-14 14 views
5

क्या कोई मुझे यह समझा सकता है?

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> 
<input type="text" id="testField" /> 
<input type="submit"> 
</form> 
<br /><br /> 
<pre> 
<?php print_r($_POST); ?> 
</pre> 

यह मेरा मुख्य देव बॉक्स पर ठीक काम करता है, और सर्वर पर:

मैं निम्नलिखित कोड है। हालांकि, मुझे इस समय अपने लैपटॉप पर दूरस्थ रूप से काम करना पड़ रहा है। मैंने अपने देव सेटअप पर सटीक वही WAMPServer 2.1a बिल्ड स्थापित किया है, और $ _POST सरणी खाली है।

अगर मैं की तरह क्षेत्र घोषित:

<input type="text" name="testField" /> 

मैं उम्मीद उत्पादन मिलता है।

+2

बिंदु से बाहर, लेकिन आपको पता होना चाहिए कि यह एक एक्सएसएस भेद्यता बनाता है: ' '। इसके बजाय ' '। वास्तव में – Chris

उत्तर

8

HTML 4.01 विनिर्देश, §17.2 से, "Controls":

एक नियंत्रण के "नियंत्रण नाम" जैसा कि इसके नाम विशेषता के आधार पर दिया जाता है।

...

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

"आईडी" कोई फर्क नहीं पड़ता।

7

मानक व्यवहार। फॉर्म के भीतर हमेशा name का उपयोग करें।

+0

। मैं देव बॉक्स पर व्यवहार के बारे में हैरान हूँ। "यह ठीक काम करता है" सामान्य ज्ञान के विपरीत, और HTML रूपों के सामान्य व्यवहार के विपरीत लगता है। –

+2

यह मामला है। ऐसा हो सकता है कि आपके मुख्य देव बॉक्स पर ब्राउज़र स्वचालित रूप से 'id' को गायब 'नाम' विशेषता के रूप में उपयोग करता है। – Chris

0

आईडी का उपयोग करके आप कभी भी किसी अन्य पृष्ठ पर कोई मान नहीं दे सकते हैं, केवल एक ही विशेषता है कि php मेथोस POST के माध्यम से पढ़ सकता है वस्तु का नाम उपयोग कर रहा है।

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