उदाहरण के साथ GET, POST विधियों का उपयोग करके PHP पंजीकरण फ़ॉर्म
फॉर्म क्या है?
जब आप किसी वेबसाइट या अपने मेल बॉक्स में लॉग इन करते हैं, तो आप एक फॉर्म के साथ इंटरैक्ट कर रहे होते हैं।
फॉर्म का उपयोग उपयोगकर्ता से इनपुट प्राप्त करने और उसे प्रसंस्करण के लिए वेब सर्वर पर सबमिट करने के लिए किया जाता है।
नीचे दिया गया चित्र फॉर्म प्रबंधन प्रक्रिया को दर्शाता है।
फॉर्म एक HTML टैग है जिसमें ग्राफिकल यूजर इंटरफेस आइटम जैसे इनपुट बॉक्स, चेक बॉक्स, रेडियो बटन आदि शामिल होते हैं।
फॉर्म को परिभाषित करने के लिए निम्न का उपयोग किया जाता है: … टैग और GUI आइटम इनपुट जैसे फ़ॉर्म तत्वों का उपयोग करके परिभाषित किए जाते हैं।
हम फॉर्म का उपयोग कब और क्यों कर रहे हैं?
- उपयोगकर्ता इनपुट स्वीकार करने वाले लचीले और गतिशील अनुप्रयोगों को विकसित करते समय फॉर्म उपयोगी होते हैं।
- फॉर्म का उपयोग डेटाबेस से पहले से मौजूद डेटा को संपादित करने के लिए किया जा सकता है
एक फॉर्म बनाएं
हम फ़ॉर्म बनाने के लिए HTML टैग का उपयोग करेंगे। नीचे उन चीज़ों की न्यूनतम सूची दी गई है जिनकी आपको फ़ॉर्म बनाने के लिए ज़रूरत होगी।
- आरंभिक और समापन फ़ॉर्म टैग …
- फॉर्म सबमिशन प्रकार POST या GET
- सबमिशन URL जो सबमिट किए गए डेटा को प्रोसेस करेगा
- इनपुट फ़ील्ड जैसे इनपुट बॉक्स, टेक्स्ट क्षेत्र, बटन, चेकबॉक्स आदि।
नीचे दिया गया कोड एक सरल पंजीकरण फ़ॉर्म बनाता है
<html> <head> <title>Registration Form</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <h2>Registration Form</h2> <form action="registration_form.php" method="POST"> First name: <input type="text" name="firstname"> <br> Last name: <input type="text" name="lastname"> <input type="hidden" name="form_submitted" value="1" /> <input type="submit" value="Submit"> </form> </body> </html>
उपरोक्त कोड को वेब ब्राउज़र में देखने पर निम्नलिखित फ़ॉर्म प्रदर्शित होता है।
यहाँ,
- … प्रारंभिक और समापन फ़ॉर्म टैग हैं
- action="registration_form.php" method="POST"> गंतव्य URL और सबमिशन प्रकार निर्दिष्ट करता है।
- प्रथम/अंतिम नाम: इनपुट बॉक्स के लिए लेबल हैं
- इनपुट बॉक्स टैग हैं
- नया लाइन टैग है
- यह एक छिपा हुआ मान है जिसका उपयोग यह जांचने के लिए किया जाता है कि फ़ॉर्म सबमिट किया गया है या नहीं
- यह वह बटन है जिस पर क्लिक करने पर फॉर्म प्रोसेसिंग के लिए सर्वर पर सबमिट हो जाता है
सर्वर पर फॉर्म डेटा सबमिट करना
फ़ॉर्म की क्रिया विशेषता डेटा को संसाधित करने वाले सबमिशन URL को निर्दिष्ट करती है। विधि विशेषता सबमिशन प्रकार को निर्दिष्ट करती है।
PHP पोस्ट विधि
- यह PHP में निर्मित सुपर ग्लोबल ऐरे वैरिएबल है जिसका उपयोग HTTP POST विधि के माध्यम से प्रस्तुत मान प्राप्त करने के लिए किया जाता है।
- ऐरे वेरिएबल को प्रोग्राम में किसी भी स्क्रिप्ट से एक्सेस किया जा सकता है; इसका दायरा वैश्विक होता है।
- यह विधि तब आदर्श है जब आप URL में फ़ॉर्म पोस्ट मान प्रदर्शित नहीं करना चाहते हैं।
- पोस्ट विधि का उपयोग करने का एक अच्छा उदाहरण सर्वर पर लॉगिन विवरण प्रस्तुत करते समय है।
इसका वाक्यविन्यास इस प्रकार है।
<?php $_POST['variable_name']; ?>
यहाँ,
- “$_POST[…]” है PHP सरणी
- “'variable_name'” URL वेरिएबल नाम है.
PHP GET विधि
- यह PHP में निर्मित सुपर ग्लोबल ऐरे वैरिएबल है जिसका उपयोग HTTP GET विधि के माध्यम से प्रस्तुत मान प्राप्त करने के लिए किया जाता है।
- ऐरे वेरिएबल को प्रोग्राम में किसी भी स्क्रिप्ट से एक्सेस किया जा सकता है; इसका दायरा वैश्विक होता है।
- यह विधि URL में फ़ॉर्म मान प्रदर्शित करती है।
- यह खोज इंजन फ़ॉर्म के लिए आदर्श है क्योंकि यह उपयोगकर्ताओं को परिणामों को बुकमार्क करने की अनुमति देता है।
इसका वाक्यविन्यास इस प्रकार है।
<?php $_GET['variable_name']; ?>
यहाँ,
- “$_GET[…]” PHP सरणी है
- “'variable_name'” URL वेरिएबल नाम है.
GET बनाम POST विधियाँ
पोस्ट | GET |
---|---|
URL में मान दिखाई नहीं दे रहे हैं | URL में दिखाई देने वाले मान |
मानों की लंबाई की कोई सीमा नहीं है क्योंकि उन्हें HTTP के माध्यम से सबमिट किया जाता है | मानों की लंबाई पर सीमा होती है जो आमतौर पर 255 वर्ण होती है। ऐसा इसलिए है क्योंकि मान URL में प्रदर्शित होते हैं। ध्यान दें कि वर्णों की ऊपरी सीमा ब्राउज़र पर निर्भर करती है। |
HTTP बॉडी में Php_POST मानों को समाहित करने में लगने वाले समय के कारण Php_GET विधि की तुलना में इसका प्रदर्शन कम है | URL में मान जोड़ने की सरल प्रकृति के कारण POST विधि की तुलना में इसका प्रदर्शन उच्च है। |
कई अलग-अलग डेटा प्रकारों का समर्थन करता है जैसे स्ट्रिंग, संख्यात्मक, बाइनरी आदि। | केवल स्ट्रिंग डेटा प्रकारों का समर्थन करता है क्योंकि मान URL में प्रदर्शित होते हैं |
परिणामों को बुकमार्क नहीं किया जा सकता | यूआरएल में मानों की दृश्यता के कारण परिणामों को बुकमार्क किया जा सकता है |
नीचे दिया गया चित्र get और post के बीच अंतर दर्शाता है
पंजीकरण फॉर्म डेटा का प्रसंस्करण
पंजीकरण फॉर्म, फॉर्म की एक्शन विशेषता में निर्दिष्ट अनुसार स्वयं को डेटा सबमिट करता है।
जब कोई फॉर्म सबमिट कर दिया जाता है, तो मान $_POST सुपर ग्लोबल ऐरे में भर दिए जाते हैं।
हम PHP isset फ़ंक्शन का उपयोग यह जांचने के लिए करेंगे कि क्या फॉर्म मान $_POST सरणी में भरे गए हैं और डेटा को संसाधित करेंगे।
हम पंजीकरण फॉर्म को संशोधित करेंगे ताकि डेटा को प्रोसेस करने वाला PHP कोड इसमें शामिल हो सके। नीचे संशोधित कोड दिया गया है
<html> <head> <title>Registration Form</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <?php if (isset($_POST['form_submitted'])): ?> //this code is executed when the form is submitted <h2>Thank You <?php echo $_POST['firstname']; ?> </h2> <p>You have been registered as <?php echo $_POST['firstname'] . ' ' . $_POST['lastname']; ?> </p> <p>Go <a href="/hi/registration_form.php">back</a> to the form</p> <?php else: ?> <h2>Registration Form</h2> <form action="registration_form.php" method="POST"> First name: <input type="text" name="firstname"> <br> Last name: <input type="text" name="lastname"> <input type="hidden" name="form_submitted" value="1" /> <input type="submit" value="Submit"> </form> <?php endif; ? > </body> </html>
यहाँ,
-
जाँचता है कि क्या $_POST[] सरणी में form_submitted छिपा हुआ फ़ील्ड भरा गया है और एक धन्यवाद और पहला नाम संदेश प्रदर्शित करता है।
यदि $_POST[] सरणी में form_fobmitted फ़ील्ड नहीं भरी गई है, तो फ़ॉर्म प्रदर्शित होता है।
और ज्यादा उदाहरण
सरल खोज इंजन
हम एक सरल खोज इंजन डिजाइन करेंगे जो फॉर्म सबमिशन प्रकार के रूप में PHP_GET विधि का उपयोग करता है।
सरलता के लिए, हम एक का उपयोग करेंगे PHP यदि कथन आउटपुट निर्धारित करने के लिए.
हम उपरोक्त पंजीकरण फॉर्म के लिए उसी HTML कोड का उपयोग करेंगे और उसमें न्यूनतम संशोधन करेंगे।
<html> <head> <title>Simple Search Engine</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <?php if (isset($_GET['form_submitted'])): ?> <h2>Search Results For <?php echo $_GET['search_term']; ?> </h2> <?php if ($_GET['search_term'] == "GET"): ?> <p>The GET method displays its values in the URL</p> <?php else: ?> <p>Sorry, no matches found for your search term</p> <?php endif; ?> <p>Go <a href="/hi/search_engine.php">back</a> to the form</p> <?php else: ?> <h2>Simple Search Engine - Type in GET </h2> <form action="search_engine.php" method="GET"> Search Term: <input type="text" name="search_term"> <br> <input type="hidden" name="form_submitted" value="1" /> <input type="submit" value="Submit"> </form> <?php endif; ?> </body> </html>
उपरोक्त पृष्ठ को वेब ब्राउज़र में देखें
निम्नलिखित फॉर्म दिखाया जाएगा
बड़े अक्षरों में GET टाइप करें और फिर सबमिट बटन पर क्लिक करें।
निम्नलिखित दिखाया जाएगा
नीचे दिया गया चित्र उपरोक्त परिणामों का URL दर्शाता है
ध्यान दें कि URL ने search_term और form_submitted का मान प्रदर्शित किया है। GET से भिन्न कुछ भी दर्ज करने का प्रयास करें, फिर सबमिट बटन पर क्लिक करें और देखें कि आपको क्या परिणाम मिलता है।
चेक बॉक्स, रेडियो बटन के साथ कार्य करना
यदि उपयोगकर्ता चेक बॉक्स या रेडियो बटन का चयन नहीं करता है, तो कोई मान सबमिट नहीं किया जाता है, यदि उपयोगकर्ता चेक बॉक्स या रेडियो बटन का चयन करता है, तो मान एक (1) या सत्य सबमिट किया जाता है।
हम पंजीकरण फॉर्म कोड को संशोधित करेंगे और एक चेक बटन शामिल करेंगे जो उपयोगकर्ता को सेवा की शर्तों से सहमत होने की अनुमति देगा।
<html> <head> <title>Registration Form</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <?php if (isset($_POST['form_submitted'])): ?> <?php if (!isset($_POST['agree'])): ?> <p>You have not accepted our terms of service</p> <?php else: ?> <h2>Thank You <?php echo $_POST['firstname']; ?></h2> <p>You have been registered as <?php echo $_POST['firstname'] . ' ' . $_POST['lastname']; ?> </p> <p> Go <a href="/hi/registration_form2.php">back</a> to the form</p> <?php endif; ?> <?php else: ?> <h2>Registration Form</h2> <form action="registration_form2.php" method="POST"> First name: <input type="text" name="firstname"> <br> Last name: <input type="text" name="lastname"> <br> Agree to Terms of Service: <input type="checkbox" name="agree"> <br> <input type="hidden" name="form_submitted" value="1" /> <input type="submit" value="Submit"> </form> <?php endif; ?> </body> </html>
उपरोक्त फॉर्म को ब्राउज़र में देखें
प्रथम और अंतिम नाम भरें
ध्यान दें कि सेवा की शर्तों से सहमत चेकबॉक्स का चयन नहीं किया गया है।
सबमिट बटन पर क्लिक करें
आपको निम्नलिखित परिणाम मिलेंगे
फॉर्म पर वापस जाएं लिंक पर क्लिक करें और फिर चेकबॉक्स चुनें
सबमिट बटन पर क्लिक करें
आपको निम्नलिखित परिणाम मिलेंगे
सारांश
- फॉर्म का उपयोग उपयोगकर्ताओं से डेटा प्राप्त करने के लिए किया जाता है
- फॉर्म HTML टैग का उपयोग करके बनाए जाते हैं
- फॉर्म को प्रसंस्करण के लिए सर्वर पर POST या GET विधि का उपयोग करके सबमिट किया जा सकता है
- POST विधि के माध्यम से प्रस्तुत किए गए फ़ॉर्म मान HTTP बॉडी में समाहित किए जाते हैं।
- GET विधि के माध्यम से सबमिट किए गए फॉर्म मान URL में जोड़े और प्रदर्शित किए जाते हैं।