PHP में एक ही फ़ाइल में फॉर्म प्रसंस्करण
पिछले पाठ में, हमारा फॉर्म एक पृष्ठ पर स्थित था,
और दूसरे पर भेजा गया था।
वास्तव में, यह आवश्यक नहीं है। यदि आप
action विशेषता को खाली छोड़ देते हैं या इसे
पूरी तरह से हटा देते हैं, तो फॉर्म उसी
पृष्ठ पर भेजा जाएगा।
यह कैसे काम करेगा: पृष्ठ पर पहली बार आने पर हम फॉर्म को डेटा से भरेंगे और बटन पर क्लिक करेंगे। इसके बाद, पृष्ठ ताज़ा हो जाएगा और इसका कोड फिर से निष्पादित होगा, लेकिन अब फॉर्म डेटा के साथ।
आइए एक उदाहरण देखें। मान लीजिए कि हमारे पास एक फ़ाइल में एक फॉर्म और उसकी प्रसंस्करण है:
<form action="" method="GET">
<input name="test1">
<input name="test2">
<input type="submit">
</form>
<?php
var_dump($_GET);
?>
पृष्ठ पर पहली बार आने पर var_dump फ़ंक्शन
एक खाली सरणी प्रदर्शित करेगा। और फॉर्म भेजने के बाद
यह फॉर्म डेटा प्रदर्शित करेगा। यानी पहली
बार $_GET खाली होगा, और दूसरी बार
- इसमें फॉर्म डेटा होगा।
इससे समस्याएं हो सकती हैं। मान लीजिए, उदाहरण के लिए, हम फॉर्म में नंबर दर्ज करेंगे और स्क्रीन पर इन नंबरों का योग प्रदर्शित करना चाहते हैं:
<form action="" method="GET">
<input name="test1">
<input name="test2">
<input type="submit">
</form>
<?php
echo $_GET['test1'] + $_GET['test2'];
?>
इस मामले में, पृष्ठ पर पहली बार आने पर
हम PHP त्रुटियाँ देखेंगे, जो इस तथ्य के कारण हैं कि
$_GET सरणी खाली है, और हम इसके
तत्वों तक पहुँचने का प्रयास कर रहे हैं।
यहाँ यह कहना चाहिए कि आपके ब्राउज़र में त्रुटियाँ नहीं दिखाई भी दे सकती हैं। इस मामले में जांच लें कि आपने PHP त्रुटि प्रदर्शन चालू किया हुआ है, और यह भी सुनिश्चित करें कि आपका पृष्ठ पर पहली बार आगमन है और एड्रेस बार में कोई फॉर्म डेटा नहीं है।
आइए समस्या को ठीक करें। इसके लिए, हम एक शर्त जोड़ेंगे, जिसमें हम जाँचेंगे कि फॉर्म भेजा गया था।
उदाहरण के लिए, $_GET की गैर-रिक्तता की जाँच की जा सकती है।
यदि $_GET खाली नहीं है -
तो फॉर्म भेजा गया था और योग निष्पादित किया जा सकता है।
अन्यथा, हमारा अभी भी
पृष्ठ पर पहली बार आगमन है और योग निष्पादित
नहीं होगा। तो, यहाँ सही किया गया कोड है:
<form action="" method="GET">
<input name="test1">
<input name="test2">
<input type="submit">
</form>
<?php
if (!empty($_GET)) {
echo $_GET['test1'] + $_GET['test2'];
}
?>
उपयोगकर्ता से उपनाम, नाम और संतान का नाम पूछें। फॉर्म भेजने के बाद, दर्ज किए गए डेटा को स्क्रीन पर प्रदर्शित करें।