PHP फॉर्म हैंडलिंग
PHP सुपरग्लोबल्स $_GET और $_POST का उपयोग फॉर्म-डेटा एकत्र करने के लिए किया जाता है।
PHP - एक साधारण HTML फॉर्म
नीचे दिया गया उदाहरण दो इनपुट फ़ील्ड और सबमिट बटन के साथ एक साधारण HTML फॉर्म प्रदर्शित करता है:
उदाहरण
<html>
<body>
<form action="welcome.php" method="post">
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form>
</body>
</html>
जब उपयोगकर्ता ऊपर दिए गए फॉर्म को भरता है और सबमिट बटन पर क्लिक करता है, तो फॉर्म डेटा को "welcome.php" नामक एक PHP फ़ाइल में संसाधित करने के लिए भेजा जाता है। प्रपत्र डेटा HTTP POST विधि के साथ भेजा जाता है।
सबमिट किए गए डेटा को प्रदर्शित करने के लिए आप बस सभी चरों को प्रतिध्वनित कर सकते हैं। "welcome.php" इस तरह दिखता है:
<html>
<body>
Welcome <?php echo $_POST["name"]; ?><br>
Your email address is: <?php echo $_POST["email"]; ?>
</body>
</html>
आउटपुट कुछ इस तरह हो सकता है:
Welcome John
Your email address is [email protected]
HTTP GET विधि का उपयोग करके भी यही परिणाम प्राप्त किया जा सकता है:
उदाहरण
<html>
<body>
<form action="welcome_get.php" method="get">
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form>
</body>
</html>
और "welcome_get.php" इस तरह दिखता है:
<html>
<body>
Welcome <?php echo $_GET["name"]; ?><br>
Your email address is: <?php echo $_GET["email"]; ?>
</body>
</html>
उपरोक्त कोड काफी सरल है। हालांकि, सबसे महत्वपूर्ण बात गायब है। अपनी स्क्रिप्ट को दुर्भावनापूर्ण कोड से बचाने के लिए आपको प्रपत्र डेटा को सत्यापित करने की आवश्यकता है।
PHP रूपों को संसाधित करते समय सुरक्षा के बारे में सोचें!
इस पृष्ठ में कोई प्रपत्र सत्यापन नहीं है, यह केवल दिखाता है कि आप प्रपत्र डेटा कैसे भेज और पुनर्प्राप्त कर सकते हैं।
हालाँकि, अगले पृष्ठ दिखाएंगे कि सुरक्षा को ध्यान में रखते हुए PHP प्रपत्रों को कैसे संसाधित किया जाए! आपके फ़ॉर्म को हैकर्स और स्पैमर से बचाने के लिए फ़ॉर्म डेटा का उचित सत्यापन महत्वपूर्ण है!
बनाम पोस्ट प्राप्त करें
GET और POST दोनों एक सरणी बनाते हैं (जैसे सरणी (key1 => value1, key2 => value2, key3 => value3, ...))। इस सरणी में कुंजी/मान जोड़े होते हैं, जहां कुंजी प्रपत्र नियंत्रण के नाम होते हैं और मान उपयोगकर्ता से इनपुट डेटा होते हैं।
GET और POST दोनों को $_GET और $_POST माना जाता है। ये सुपरग्लोबल्स हैं, जिसका अर्थ है कि दायरे की परवाह किए बिना वे हमेशा पहुंच योग्य होते हैं - और आप बिना कुछ विशेष किए किसी भी फ़ंक्शन, क्लास या फ़ाइल से उन तक पहुंच सकते हैं।
$_GET URL पैरामीटर के माध्यम से वर्तमान स्क्रिप्ट को पास किए गए चरों की एक सरणी है।
$_POST HTTP POST विधि के माध्यम से वर्तमान स्क्रिप्ट में पारित चर की एक सरणी है।
जीईटी का उपयोग कब करें?
GET विधि वाले प्रपत्र से भेजी गई जानकारी सभी को दिखाई देती है (सभी चर नाम और मान URL में प्रदर्शित होते हैं)। GET के पास भेजने के लिए सूचना की मात्रा की सीमा भी है। सीमा लगभग 2000 वर्ण है। हालांकि, चूंकि वेरिएबल यूआरएल में प्रदर्शित होते हैं, इसलिए पेज को बुकमार्क करना संभव है। यह कुछ मामलों में उपयोगी हो सकता है।
गैर-संवेदनशील डेटा भेजने के लिए GET का उपयोग किया जा सकता है।
नोट: पासवर्ड या अन्य संवेदनशील जानकारी भेजने के लिए कभी भी GET का उपयोग नहीं किया जाना चाहिए!
पोस्ट का उपयोग कब करें?
POST पद्धति के साथ किसी प्रपत्र से भेजी गई जानकारी दूसरों के लिए अदृश्य है (सभी नाम/मान HTTP अनुरोध के मुख्य भाग में एम्बेड किए गए हैं) और भेजने के लिए जानकारी की मात्रा की कोई सीमा नहीं है ।
इसके अलावा POST उन्नत कार्यक्षमता का समर्थन करता है जैसे सर्वर पर फाइल अपलोड करते समय बहु-भाग बाइनरी इनपुट के लिए समर्थन।
हालांकि, चूंकि यूआरएल में वेरिएबल प्रदर्शित नहीं होते हैं, इसलिए पेज को बुकमार्क करना संभव नहीं है।
प्रपत्र डेटा भेजने के लिए डेवलपर्स POST पसंद करते हैं।
इसके बाद, देखते हैं कि हम PHP को सुरक्षित तरीके से कैसे संसाधित कर सकते हैं!