HTML फॉर्मची निर्मिती. PHP मध्ये फॉर्म प्रक्रिया

बातम्या 04.08.2019
चेरचर

बातम्या सिंहाचा वाटावापरकर्त्याकडून प्राप्त झालेल्या डेटाच्या प्रक्रियेशी संबंधित आहे. आणि बर्याच बाबतीत, हा डेटा फॉर्ममधून प्राप्त केला जातो, म्हणून PHP मध्ये फॉर्म प्रक्रियासर्वात महत्वाचा मुद्दा आहे जेव्हा वेबसाइट निर्मिती, ज्याबद्दल मी या लेखात बोलणार आहे.

प्रथम, तयार करूया HTML फॉर्म:



फॉर्म



तुमचे लॉगिन:


तुमचा पासवर्ड:







हे क्लासिकचे उदाहरण आहे वापरकर्ता अधिकृतता फॉर्म, जे मला खात्री आहे की तुमच्यापैकी अनेकांनी विविध साइट्सवर अनेक वेळा भरले आहे. आता एका महत्त्वाच्या मुद्द्यावर चर्चा करू: डेटा कसा पाठवला जातो? दोन पद्धती आहेत (आम्ही फक्त दोन विचार करू) - हे मिळवाआणि पोस्ट. त्यांचा मुख्य फरक हा पाठवण्याचा प्रकार आहे: उघडा ( मिळवा) आणि बंद ( पोस्ट). फरक काय आहे हे समजून घेण्याचा सर्वोत्तम मार्ग म्हणजे हे उघडणे HTML कोडब्राउझरमध्ये आणि "क्लिक करा लॉगिन करा". ॲड्रेस बार पहा, आणि नंतर दुसरी पद्धत टाका, त्यावर पुन्हा जा आणि ॲड्रेस बार पुन्हा पहा. फरक लगेच लक्षात येईल.

त्यानुसार, मध्ये PHPदोन ॲरे आहेत: $_GETआणि $_POST, ज्यामध्ये या प्रत्येक पद्धतीद्वारे प्राप्त केलेला डेटा असतो. तसेच आहे ॲरे $_REQUEST, ज्यात डेटा आहे $_GETआणि $_POSTएकाच वेळी मी तुम्हाला वापरण्याचा सल्ला देतो पोस्ट पद्धतआणि $_POST ॲरे, जरी, अर्थातच, ते परिस्थितीवर अवलंबून असते, परंतु बहुतेक प्रकरणांमध्ये ते हेच करतात.

आता डेटावर प्रक्रिया करू. चला एक साधी स्क्रिप्ट लागू करूया (फाइलमध्ये " req.php"):

$login = $_POST["लॉगिन"];
$pass = $_POST["पास"];
जर (($login == "Admin") && ($pass == "AdminPass"))
प्रतिध्वनी "हॅलो, प्रशासक!";
अन्यथा "प्रवेश नाकारला" इको;
?>

या स्क्रिप्टमध्ये आम्ही फॉर्ममधून प्राप्त केलेला डेटा प्राप्त करतो पोस्ट पद्धत(पासून $_POST ॲरे, जरी त्यांना हा डेटा तितक्याच सहजपणे मिळू शकला असता $_REQUEST). पुढे आम्ही वापरकर्तानाव आणि पासवर्ड तपासतो आणि प्रदर्शित करतो: "हॅलो, प्रशासक!" किंवा "प्रवेश नाकारला." अर्थात, साइटवर वापरकर्ता अधिकृतता प्रणाली तयार करण्यासाठी, आपल्याला याबद्दल देखील शिकण्याची आवश्यकता आहे कुकीकिंवा बद्दल सत्रे(तत्त्वात, देखील कुकी), परंतु आम्ही त्यांच्याबद्दल थोड्या वेळाने बोलू, कारण आपल्याकडे अद्याप बरेच महत्त्वाचे विषय आहेत.

PHP बद्दलची एक उत्तम गोष्ट म्हणजे ते HTML फॉर्मसह कसे कार्य करते.

येथे मुख्य गोष्ट अशी आहे की प्रत्येक फॉर्म घटक आपोआप आपल्या PHP प्रोग्रामसाठी उपलब्ध होतो. PHP मध्ये फॉर्म वापरण्याबद्दल तपशीलवार माहितीसाठी, विभाग वाचा. येथे HTML फॉर्मचे उदाहरण आहे:

उदाहरण #1 सर्वात सोपा HTML फॉर्म

तुमचे नाव:

या फॉर्ममध्ये विशेष काही नाही. कोणत्याही विशेष टॅगशिवाय हा नियमित HTML फॉर्म आहे. जेव्हा वापरकर्ता फॉर्म भरतो आणि सबमिट बटणावर क्लिक करतो, तेव्हा action.php पृष्ठ कॉल केला जाईल. या फाइलमध्ये असे काहीतरी असू शकते:

उदाहरण #2 फॉर्म डेटा प्रदर्शित करणे

नमस्कार, .
तुलावर्षे

या प्रोग्रामचे उदाहरण आउटपुट:

हॅलो, सर्जी. तुम्ही 30 वर्षांचे आहात.

आपण खात्यात घेणे नाही तर कोडचे तुकडे सह htmlविशेष वर्ण()आणि (int), या कोडचे ऑपरेटिंग तत्त्व सोपे आणि समजण्यासारखे असावे. htmlविशेष वर्ण()हे सुनिश्चित करते की "विशेष" HTML वर्ण योग्यरित्या एन्कोड केलेले आहेत जेणेकरून दुर्भावनापूर्ण HTML किंवा Javascript तुमच्या पृष्ठामध्ये घातली जाणार नाही. वय फील्ड, जे आम्हाला माहित आहे की संख्या असावी, आम्ही फक्त रूपांतरित करू शकतो पूर्णांक, जे आपोआप अवांछित वर्णांपासून मुक्त होईल. PHP हे फिल्टर विस्तार वापरून स्वयंचलितपणे देखील करू शकते. $_POST["नाव"] आणि $_POST["वय"] व्हेरिएबल्स PHP द्वारे आपोआप सेट केले जातात. पूर्वी आम्ही $_SERVER सुपरग्लोबल व्हेरिएबल वापरत होतो, परंतु येथे आम्ही $_POST सुपरग्लोबल व्हेरिएबल देखील वापरतो, ज्यामध्ये सर्व POST डेटा असतो. याची नोंद घ्या पाठवण्याची पद्धतआमच्या फॉर्मची (पद्धत) POST आहे. आम्ही पद्धत वापरली तर मिळवा, तर आमची फॉर्म माहिती सुपरग्लोबल व्हेरिएबल $_GET मध्ये असेल.

वैकल्पिकरित्या, डेटा स्रोत काही फरक पडत नसल्यास तुम्ही $_REQUEST व्हेरिएबल वापरू शकता. या व्हेरिएबलमध्ये GET, POST, COOKIE डेटाचे मिश्रण आहे.

15 वर्षांपूर्वी

HTTP तपशिलानुसार, तुम्ही जेव्हा सर्व्हरच्या टोकावरील एखाद्या गोष्टीची स्थिती बदलण्यासाठी फॉर्म वापरत असाल तेव्हा तुम्ही POST पद्धत वापरावी. उदाहरणार्थ, एखाद्या पृष्ठावर वापरकर्त्यांना त्यांच्या स्वतःच्या टिप्पण्या जोडण्याची परवानगी देणारा फॉर्म असल्यास, याप्रमाणे पृष्ठ येथे, फॉर्मने POST वापरला पाहिजे जर तुम्ही POST द्वारे पोहोचलेल्या पृष्ठावर "रीलोड करा" किंवा "रिफ्रेश करा" वर क्लिक केले, तर ती जवळजवळ नेहमीच एक त्रुटी असते -- तुम्ही समान टिप्पणी दोनदा पोस्ट करू नये. म्हणूनच ही पृष्ठे बुकमार्क किंवा कॅशे केलेली नाहीत.

तुमचा फॉर्म असताना तुम्ही GET पद्धत वापरावी, बरं, सर्व्हरवरून काहीतरी मिळवणे आणि प्रत्यक्षात काहीही बदलत नाही. उदाहरणार्थ, शोध इंजिनच्या फॉर्ममध्ये GET चा वापर केला पाहिजे, कारण वेबसाइट शोधताना क्लायंटला काळजी वाटेल असे काहीही बदलू नये आणि शोध-इंजिन क्वेरीचे परिणाम बुकमार्क करणे किंवा कॅश करणे हे बुकमार्क करणे किंवा कॅश करणे इतकेच उपयुक्त आहे. एक स्थिर HTML पृष्ठ.

1 वर्षापूर्वी

स्पष्ट करण्यासारखे आहे:

GET vs POST निवडण्याच्या कारणांमध्ये विनंतीचा हेतू (तुम्ही "माहिती" सबमिट करत आहात का?), विनंतीचा आकार (URL किती लांब असू शकते याला मर्यादा आहेत, आणि GET पॅरामीटर्स पाठवले जातात) यासारख्या विविध घटकांचा समावेश आहे URL), आणि तुम्हाला क्रिया किती सहजतेने सामायिक करण्यायोग्य हवी आहे -- उदाहरणार्थ, Google शोध मिळतात कारण ते URL शेअर करून शोध क्वेरी कॉपी करणे आणि इतर कोणाशी तरी शेअर करणे सोपे करते.

POST पेक्षा GET सामायिक करणे सोपे आहे या वस्तुस्थितीमुळे येथे सुरक्षा केवळ विचारात घेतली जाते. उदाहरण: तुम्हाला GET द्वारे पासवर्ड पाठवायचा नाही, कारण वापरकर्ता परिणामी URL शेअर करू शकतो आणि अनवधानाने त्यांचा पासवर्ड उघड करू शकतो.

तथापि, जर तुम्ही नेटवर्क कनेक्शनचे संरक्षण करण्यासाठी TLS/SSL उपयोजित केले नाही तर, एखाद्या चांगल्या ठिकाणी असलेल्या दुर्भावनापूर्ण व्यक्तीद्वारे GET आणि POST हे तितकेच सोपे आहे.

HTTP (सामान्यत: पोर्ट 80) वर पाठवलेले सर्व फॉर्म असुरक्षित आहेत आणि आज (2017), सार्वजनिक वेबसाइट HTTPS (जे मुळात HTTP + ट्रान्सपोर्ट लेयर सिक्युरिटी आहे) वापरत नसण्याची काही चांगली कारणे नाहीत.

बोनस म्हणून, जर तुम्ही TLS वापरत असाल तर तुम्ही तुमच्या ट्रॅफिकमध्ये तुमच्या वापरकर्त्यांना कोड (ADs) इंजेक्ट होण्याचा धोका कमी करता जो तुम्ही तिथे टाकला नव्हता.

आज आम्ही साइटसाठी एक सुंदर HTML फीडबॅक फॉर्म तयार करण्यावर काम करू, PHP मध्ये चालणार आणि अंगभूत स्पॅम संरक्षण असणार. आपल्याला कोणत्याही विशेष ज्ञानाची आवश्यकता नाही html आणि मूलभूत तर्क पुरेसे असतील. मी तयार फायली प्रदान करेन ज्या तुम्ही साइटमध्ये बदल न करता किंवा तुमच्या गरजा समायोजित करू शकता.

संपर्क फॉर्म 7 प्लगइन वापरून कसे बनवायचे याबद्दल मी अलीकडे एक लेख लिहिला आहे. तुम्ही जूमला आणि इतर लोकप्रिय CMS वर फीडबॅक फॉर्म देखील बनवू शकता.

परंतु लोकप्रिय CMS वापरत नसलेल्या साइट्सनी काय करावे? - सर्व काही हाताने करणे बाकी आहे.

याव्यतिरिक्त, प्लगइनशिवाय फीडबॅक वापरणे वर्डप्रेससाठी देखील शक्य आहे. अनावश्यक प्लगइन सर्व्हरवर लक्षणीय भार निर्माण करतात आणि त्यांना काढून टाकल्याने आपल्याला साइटची गती वाढवता येते.

आपण येथे 500 रूबलसाठी तयार फॉर्मची स्थापना आणि कॉन्फिगरेशन ऑर्डर करू शकता (हे त्यांच्यासाठी आहे जे त्यांच्या हातांनी काम करण्यास खूप आळशी आहेत किंवा त्यांच्याकडे पुरेसे कौशल्य नाही).

HTML फीडबॅक फॉर्म कसा काम करतो

आमच्या फॉर्ममध्ये डेटा एंट्रीसाठी 5 फील्ड असतील - नाव, ईमेल पत्ता, फोन नंबर, वेबसाइट पत्ता, संदेश मजकूर (तुम्ही ते स्वतः हटवू किंवा बदलू शकता).

वेबसाइट पत्ता वगळता सर्व फील्ड आवश्यक असतील (आपण हे स्वतः कॉन्फिगर देखील करू शकता).

ईमेल पत्ता आणि वेबसाइट असलेल्या फील्डसाठी, डेटा एंट्रीच्या अचूकतेची अनिवार्य तपासणी केली जाईल.

संवादाचे अंतिम स्वरूप असे दिसेल:


html मध्ये तयार केलेल्या संपर्क फॉर्ममध्ये कार्य करण्यासाठी 3 घटक आवश्यक आहेत.

प्रथम फॉर्मच्या संरचनेसाठी, डेटा एंट्री फील्डचा प्रकार आणि संख्या यासाठी जबाबदार आहे. हा सामान्य html कोड आहे.

दुसरा फॉर्म फील्डमध्ये वापरकर्त्याने प्रविष्ट केलेल्या डेटावर प्रक्रिया करण्यासाठी जबाबदार आहे. पाठवा बटण दाबल्यानंतर काय, कुठे आणि कोणत्या स्वरूपात पाठवायचे हे ते ठरवते. अंमलबजावणीसाठी एक विशेष PHP स्क्रिप्ट वापरली जाते.

तिसरा देखावा जबाबदार आहे. डेटा एंट्री फील्डचा आकार आणि स्थान सेट करते, विविध रंग आणि प्रभाव जोडते. हे सर्व CSS शैलीद्वारे सेट केले आहे.

फॉर्मची डेमो आवृत्ती

आम्ही तुम्हाला या प्रत्येक घटकाच्या सेटअपमधून चरण-दर-चरण मार्गदर्शन करू.

HTML लेआउट तयार करणे

लेख खूप लांब न करण्यासाठी आणि प्रत्येक घटक स्वतंत्रपणे जोडू नये म्हणून, मी संपूर्ण html कोड प्रदान करेन आणि खाली मी प्रत्येक ब्लॉक आणि संभाव्य बदलांचे वर्णन करेन.

टॅग HTML मध्ये फॉर्म नियुक्त करण्यासाठी वापरला जातो

, ज्यामध्ये आवश्यक पॅरामीटर्स भरले आहेत.

योग्य स्वरूप" [ईमेल संरक्षित]"

योग्य स्वरूप "+7-123-4567890" आहे

योग्य स्वरूप "http://someaddress.com" आहे

"तुमचे नाव प्रविष्ट करा"आवश्यक />

"तुमचा ईमेल पत्ता प्रविष्ट करा"आवश्यक />

"फोन नंबर प्रविष्ट करा"आवश्यक />

योग्य स्वरूप "+7-123-4567890" आहे

"तुमचा वेबसाइट पत्ता प्रविष्ट करा"नमुना = "(http|https)://.+" />

योग्य स्वरूप "http://someaddress.com" आहे

पहिल्या ओळीने सुरुवात करूया.

class="contact_form"- भविष्यात CSS शैली सेट करण्यासाठी वर्ग निर्दिष्ट करा.

क्रिया = "contact-form.php"- स्क्रिप्टसह फाइलचे नाव निर्दिष्ट करा जे फॉर्म डेटावर प्रक्रिया करेल आणि संदेश पाठवेल. जर फाईल फॉर्मसह पृष्ठाच्या समान फोल्डरमध्ये असेल, तर फक्त फाईलचे नाव दर्शविणे पुरेसे आहे, जर वेगळ्या फोल्डरमध्ये असेल तर आपल्याला फाईलचा मार्ग सूचित करणे आवश्यक आहे.

पुढे 4 ब्लॉक्स येतात

डेटा एंट्रीसाठी फील्ड प्रदर्शित करण्यासाठी जबाबदार, नावे कशासाठी जबाबदार आहेत हे स्पष्ट करतात. फील्ड स्वतः टॅग वापरून प्रदर्शित केले जातात , ज्यामध्ये खालील वैशिष्ट्ये सेट केली आहेत:

प्रकार- इनपुट डेटाच्या प्रकारासाठी जबाबदार आहे, मजकूर - साधा मजकूर, ईमेल - ईमेल पत्ता, अशा फील्ड अचूकतेसाठी स्वयंचलितपणे तपासल्या जातात (@ उपस्थित असणे आवश्यक आहे), टेल - फोन नंबर, url - वेबसाइट पत्ता.

नाव- घटकाचे योग्य नाव, ते आवश्यक आहे जेणेकरून स्क्रिप्टला प्रत्येक फील्डचा डेटा कसा वापरायचा हे माहित असेल. तुम्ही एकाच प्रकारच्या अनेक फील्ड बनवल्यास, तुम्हाला प्रत्येक फील्डचे स्वतःचे नाव नियुक्त करणे आवश्यक आहे.

प्लेसहोल्डर- ही फील्डमध्ये स्थित टूलटिप आहे, मजकूर जो घटकाच्या रिक्त फील्डची जागा घेतो. ते बदलले किंवा हटवले जाऊ शकते; यामुळे फॉर्मच्या ऑपरेशनवर परिणाम होत नाही.

आवश्यक आहे- हे पॅरामीटर सूचित करते की फील्ड आवश्यक आहे. कोणते घटक आवश्यक आहेत आणि कोणते नाहीत हे तुम्ही स्वतः ठरवू शकता.

नमुना=”(http|https)://.+”- हे बांधकाम वेबसाइट फील्डची शुद्धता तपासण्यासाठी कार्य करते, हे सूचित करते की पत्त्यामध्ये http://text किंवा https://text असणे आवश्यक आहे, अन्यथा एक त्रुटी असेल.

काही फील्डमध्ये टूलटिप असते जी तुम्ही आयटम निवडता तेव्हा दिसते. तिला दुखापत झाली आहे , जेथे form_hint हा घटकाचा वर्ग आहे (त्याचे गुणधर्म CSS मध्ये लिहिलेले आहेत). तुम्ही प्रत्येक संपर्क फॉर्म फील्डसाठी टूलटिपमध्ये कोणताही मजकूर सेट करू शकता. तुम्हाला अशा वैशिष्ट्याची आवश्यकता नसल्यास, फक्त संपूर्ण टॅग काढा.

संदेश प्रविष्ट करण्यासाठी फील्ड स्वतः टॅगसह चिन्हांकित आहेत