मालवेअर हे अनाहूत किंवा धोकादायक प्रोग्राम आहेत जे...
बातम्या सिंहाचा वाटावापरकर्त्याकडून प्राप्त झालेल्या डेटाच्या प्रक्रियेशी संबंधित आहे. आणि बर्याच बाबतीत, हा डेटा फॉर्ममधून प्राप्त केला जातो, म्हणून 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 फॉर्मचे उदाहरण आहे:
या फॉर्ममध्ये विशेष काही नाही. कोणत्याही विशेष टॅगशिवाय हा नियमित 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 मध्ये फॉर्म नियुक्त करण्यासाठी वापरला जातो
, ज्यामध्ये आवश्यक पॅरामीटर्स भरले आहेत.पहिल्या ओळीने सुरुवात करूया.
class="contact_form"- भविष्यात CSS शैली सेट करण्यासाठी वर्ग निर्दिष्ट करा.
क्रिया = "contact-form.php"- स्क्रिप्टसह फाइलचे नाव निर्दिष्ट करा जे फॉर्म डेटावर प्रक्रिया करेल आणि संदेश पाठवेल. जर फाईल फॉर्मसह पृष्ठाच्या समान फोल्डरमध्ये असेल, तर फक्त फाईलचे नाव दर्शविणे पुरेसे आहे, जर वेगळ्या फोल्डरमध्ये असेल तर आपल्याला फाईलचा मार्ग सूचित करणे आवश्यक आहे.
पुढे 4 ब्लॉक्स येतात
डेटा एंट्रीसाठी फील्ड प्रदर्शित करण्यासाठी जबाबदार, नावे कशासाठी जबाबदार आहेत हे स्पष्ट करतात. फील्ड स्वतः टॅग वापरून प्रदर्शित केले जातात , ज्यामध्ये खालील वैशिष्ट्ये सेट केली आहेत:
प्रकार- इनपुट डेटाच्या प्रकारासाठी जबाबदार आहे, मजकूर - साधा मजकूर, ईमेल - ईमेल पत्ता, अशा फील्ड अचूकतेसाठी स्वयंचलितपणे तपासल्या जातात (@ उपस्थित असणे आवश्यक आहे), टेल - फोन नंबर, url - वेबसाइट पत्ता.
नाव- घटकाचे योग्य नाव, ते आवश्यक आहे जेणेकरून स्क्रिप्टला प्रत्येक फील्डचा डेटा कसा वापरायचा हे माहित असेल. तुम्ही एकाच प्रकारच्या अनेक फील्ड बनवल्यास, तुम्हाला प्रत्येक फील्डचे स्वतःचे नाव नियुक्त करणे आवश्यक आहे.
प्लेसहोल्डर- ही फील्डमध्ये स्थित टूलटिप आहे, मजकूर जो घटकाच्या रिक्त फील्डची जागा घेतो. ते बदलले किंवा हटवले जाऊ शकते; यामुळे फॉर्मच्या ऑपरेशनवर परिणाम होत नाही.
आवश्यक आहे- हे पॅरामीटर सूचित करते की फील्ड आवश्यक आहे. कोणते घटक आवश्यक आहेत आणि कोणते नाहीत हे तुम्ही स्वतः ठरवू शकता.
नमुना=”(http|https)://.+”- हे बांधकाम वेबसाइट फील्डची शुद्धता तपासण्यासाठी कार्य करते, हे सूचित करते की पत्त्यामध्ये http://text किंवा https://text असणे आवश्यक आहे, अन्यथा एक त्रुटी असेल.
काही फील्डमध्ये टूलटिप असते जी तुम्ही आयटम निवडता तेव्हा दिसते. तिला दुखापत झाली आहे , जेथे form_hint हा घटकाचा वर्ग आहे (त्याचे गुणधर्म CSS मध्ये लिहिलेले आहेत). तुम्ही प्रत्येक संपर्क फॉर्म फील्डसाठी टूलटिपमध्ये कोणताही मजकूर सेट करू शकता. तुम्हाला अशा वैशिष्ट्याची आवश्यकता नसल्यास, फक्त संपूर्ण टॅग काढा.
संदेश प्रविष्ट करण्यासाठी फील्ड स्वतः टॅगसह चिन्हांकित आहेत
स्पॅम संरक्षण- नाव=बेझस्पामा नावाचे अदृश्य फील्ड. यात डिस्प्ले आहे: काहीही शैली - याचा अर्थ फील्ड लोकांना अदृश्य आहे, परंतु बॉट्स ते आपोआप भरतील.
आणि कोणत्याही स्वरूपाचा अंतिम घटक म्हणजे पाठवा संदेश बटण, ते टॅगद्वारे निर्दिष्ट केले जाते , ज्याचा देखावा आणि "सबमिट" प्रकार सानुकूलित करण्यासाठी स्वतःचा वर्ग आहे.
फील्ड जोडण्यासाठी किंवा काढण्यासाठी, फक्त अनावश्यक काढून टाका किंवा विद्यमान फील्डशी सादृश्य करून नवीन घाला, त्यांच्यासाठी सर्व गुणधर्म आणि नावे निर्दिष्ट करा.
CSS शैलींसह सजावट
आपण ब्राउझरमध्ये निकाल पाहिल्यास, आपल्याला काहीतरी अनाड़ी आणि अप्रिय दिसेल. आम्हाला एक सुंदर अभिप्राय फॉर्म मिळण्यासाठी, आम्हाला त्याच्या शैलींवर कार्य करावे लागेल (html पुरेसे नाही).
तुम्हाला CSS माहित असल्यास, तुम्ही कोणत्याही समस्यांशिवाय सर्व फॉर्म घटकांसाठी डिझाइन सेट करू शकता, तुम्हाला माझ्या मदतीचीही गरज नाही.
जर तुम्हाला शैलींची माहिती नसेल, तर मी तुम्हाला फक्त एक तयार फाइल देईन ज्यामध्ये सर्वकाही आधीच अशा प्रकारे लिहिलेले आहे की तुमचा फॉर्म उदाहरणातील एकसारखा असेल.
आपण दोन प्रकारे शैली कनेक्ट करू शकता:
- तुमच्या साइटवर आधीपासून असलेल्या style.css फाइलमध्ये फाइलची सामग्री कॉपी करा (अगदी शेवटी जोडा)
- मी दिलेली फाईल तुमच्या होस्टिंगवर ठेवा आणि ती कनेक्ट करा.
स्टाइल फाइल्स खालील कोड वापरून कनेक्ट केल्या आहेत , आत ठेवले
. स्टाइल्स (styles.css) असलेली फाइल html पेज सारख्या फोल्डरमध्ये नसल्यास, त्यावर पूर्ण मार्ग लिहा.मी दिलेल्या स्टाईल फाइलमध्ये प्रत्येक घटकाला लेबल लावले आहे, त्यामुळे तुम्ही त्यात कोणतेही बदल करू शकता - रंग, आकार, आकार, प्रभाव बदला. सर्वात मूलभूत ज्ञान असल्यास, आपण ते सहजपणे संपादित करू शकता.
PHP कोड सेट करत आहे (स्पॅम विरोधी संरक्षण जोडले आहे)
शैलींप्रमाणे, मी तुम्हाला रेडीमेड कोड देईन जो HTML फीडबॅक फॉर्मवर प्रक्रिया करतो आणि स्पॅमपासून संरक्षण करतो. ही फाईल एका विशिष्ट कॉन्फिगरेशनसाठी सानुकूलित केलेली आहे आणि जर तुम्हाला नवीन फील्ड सेट करायचे असतील किंवा विद्यमान काढून टाकायचे असतील तर तुम्हाला त्यात बदल करावे लागतील. म्हणून, मी तुम्हाला ते कसे कार्य करते ते सांगेन जेणेकरून तुम्हाला काय बदलण्याची आवश्यकता आहे हे समजेल.
windows-1251 एन्कोडिंग आणि php आवृत्ती 5.4+ वापरणाऱ्या साइट्ससाठी, तुम्हाला htmlspecialchars फंक्शनशी संबंधित कोड जोडणे आवश्यक आहे. मी ते खाली दाखवतो. अन्यथा, सिरिलिक वर्णमालाऐवजी रिक्त फील्ड दिसतील.
लक्षात ठेवा, फॉर्म गुणधर्मांमध्ये (html फाईलमध्ये) आम्ही पॅरामीटर क्रिया=”contact-form.php” निर्दिष्ट केला आहे. तुम्हाला contact-form.php नावाची फाईल तयार करावी लागेल आणि त्यात खालील कोड ठेवावा लागेल.
\r\n उत्तर द्या: $email \r\n"; जर (mail($address, $sub, $mes, $from)) ( शीर्षलेख("रिफ्रेश: 5; URL=https://site") प्रतिध्वनी
";) इतर ( शीर्षलेख("रिफ्रेश: 5; URL=https://site"); प्रतिध्वनी "
";) ) बाहेर पडा; /* बेझस्पामा फील्ड स्पॅम बॉट्सने भरले असल्यास संदेशाशिवाय बाहेर पडा */ ?>
/* व्हेरिएबल्स सेट करा */ $name = htmlspecialchars($_POST["name"]); $email = htmlविशेष वर्ण($_POST["ईमेल"]); $tel = htmlspecialchars($_POST["tel"]); $website = htmlspecialchars($_POST["वेबसाइट"]); $message = htmlspecialchars($_POST["संदेश"]); $bezspama = htmlspecialchars ($_POST [ "bezspama" ] ); /* तुमचा पत्ता आणि संदेश विषय */ $sub = "साइट XXX वरून संदेश"; /* पत्र स्वरूप */ $mes = "XXX साइटवरून संदेश.\n प्रेषकाचे नाव: $name प्रेषकाचा ईमेल पत्ता: $email प्रेषकाचा फोन नंबर: $tel प्रेषकाची वेबसाइट: $website संदेश मजकूर: $message" ; जर (रिक्त ($bezspama)) /* फील्ड मूल्यांकन बेझस्पामा - रिक्त असणे आवश्यक आहे */ /* मेल() फंक्शन वापरून संदेश पाठवा*/ $from = "प्रेषक: $name<$email>\r\n उत्तर द्या: $email \r\n"; जर (मेल ($address, $sub, $mes, $from)) ( शीर्षलेख(); प्रतिध्वनी "
पत्र पाठवले गेले आहे, 5 सेकंदात तुम्ही पृष्ठ XXX वर परत याल " ; } इतर( शीर्षलेख ( "रिफ्रेश करा: 5; URL=https://site") ; प्रतिध्वनी "
ईमेल पाठवला गेला नाही, 5 सेकंदात तुम्हाला YYY पृष्ठावर परत केले जाईल " ; } बाहेर पडणे; /* बेझस्पामा फील्ड स्पॅम बॉट्सने भरले असल्यास संदेशाशिवाय बाहेर पडा */ |
सर्व प्रथम, आम्हाला PHP कोडद्वारे प्रक्रिया केली जाईल असे व्हेरिएबल्स सेट करणे आवश्यक आहे. गोंधळात पडू नये म्हणून, आम्ही त्यांना तीच नावे देतो जसे ते फॉर्ममध्ये होते, फक्त सर्व व्हेरिएबल्स $ चिन्हाने सुरू होतात. मूल्य असाइनमेंट कमांड स्वतः असे दिसते:
$title = htmlspecialchars($_POST["title"]);
$title=htmlspecialchars($_POST["title"]); |
तुम्ही कोणतीही अतिरिक्त डेटा फील्ड जोडली असल्यास, व्हेरिएबल्स ब्लॉकमध्ये त्यांची नावे जोडा.
आम्ही फॉर्ममधून सर्व व्हेरिएबल्स घेत नाही. कमीतकमी, ज्या ईमेल पत्त्यावर पत्र पाठवले जाईल (तुमचा पत्ता) स्वतंत्रपणे सूचित केले आहे. या प्रकरणात, हे $address व्हेरिएबल आहे - तुमचा ईमेल पत्ता त्याच्या मूल्यामध्ये प्रविष्ट करा.
तसेच, या उदाहरणात, $sub व्हेरिएबलचे मूल्य स्पष्टपणे सेट केले आहे - ते अक्षराचा विषय प्रदर्शित करेल. तुम्ही मेसेजचा विषय HTML फॉर्ममध्ये टेक्स्ट फील्ड (जसे नाव) म्हणून जोडू शकता आणि तेथून या व्हेरिएबलचे मूल्य घेऊ शकता.
लेटर फॉरमॅट ब्लॉकमध्ये, तुम्हाला प्राप्त होणारा संदेश कॉन्फिगर केलेला आहे. संदेश नावाच्या मजकूर क्षेत्रामध्ये जे लिहिले होते त्यापेक्षा ते वेगळे असू शकते. मी फक्त दुसरे $mes व्हेरिएबल बनवले आणि त्यात अतिरिक्त मजकूर आणि महत्त्वाचा प्रेषक डेटा (नाव, ईमेल, फोन, वेबसाइट) समाविष्ट केला. तुम्ही हा भाग तुमच्या इच्छेनुसार कॉन्फिगर करू शकता.
तुमची php फाइल ज्या सर्व्हरवर आहे त्या सर्व्हरचा पत्ता नसून प्रेषकाच्या नावाने तुम्हाला मिळालेल्या पत्रांवर स्वाक्षरी आहे याची खात्री करण्यासाठी, आम्ही $from एक नवीन व्हेरिएबल सेट करतो, ज्यात प्रेषकाचे नाव आणि ईमेल समाविष्ट आहे. पत्र पाठवणारा.
नंतर मेल फंक्शन निर्दिष्ट पॅरामीटर्सनुसार पत्र पाठवते. यशस्वीरित्या पाठविल्यास, पत्र पाठवले गेले आहे असे सांगणारा संदेश दिसेल आणि 5 सेकंदांनंतर वापरकर्त्यास आपल्या वेबसाइटवरील पृष्ठावर पुनर्निर्देशित केले जाईल (आपण पृष्ठ पत्ता आणि विलंब वेळ बदलू शकता). जर पत्र पाठवले जाऊ शकले नाही, तर एक संदेश दिसेल की पत्र पाठवले गेले नाही आणि 5 सेकंदांनंतर ते साइटच्या पृष्ठावर जाते, आपण पृष्ठ पत्ता आणि वेळ सेट करू शकता.
वेबसाइट पृष्ठावर एक फॉर्म समाविष्ट करणे
तुम्ही तयार केलेला फीडबॅक फॉर्म टाकण्यासाठी, तुम्हाला फॉर्मचा html कोड कॉपी करून पेज कोडच्या त्या भागात पेस्ट करावा लागेल जिथे तुम्हाला साइटसाठी फीडबॅक दाखवायचा आहे.
पुन्हा एकदा मी तुम्हाला आठवण करून देऊ इच्छितो की जर PHP प्रोग्राम असलेली फाईल त्याच फोल्डरमध्ये नसेल ज्या पृष्ठावर html कोड आहे, तर फॉर्मच्या कोडमध्येच तुम्हाला त्याचा संपूर्ण मार्ग लिहावा लागेल. , अन्यथा ते कार्य करणार नाही, कारण फॉर्मला फाइल हँडलर सापडणार नाही.
संपर्क फॉर्म फायली डाउनलोड करा
फील्डमध्ये डेटा एंट्रीसह सक्रिय अँटी-स्पॅम
स्पॅमर्स विविध सॉफ्टवेअर टूल्स वापरून कार्य करतात आणि काही बॉट्स मूलभूत आवृत्तीमध्ये तयार केलेल्या रिक्त फील्ड संरक्षणास बायपास करण्यास सक्षम असतात. जर ते तुम्हाला त्रास देऊ लागले, तर तुम्ही त्याऐवजी साधे संरक्षण वापरू शकता किंवा विशेष फील्डमध्ये डेटा प्रविष्ट करून अतिरिक्त वापरू शकता. उदाहरणार्थ, एक गणिती अभिव्यक्ती करा ज्यामध्ये तुम्हाला उत्तर प्रविष्ट करण्यास किंवा एखादा साधा प्रश्न विचारण्यास सांगा. यामुळे फॉर्ममध्ये मोठ्या बदलांची आवश्यकता नाही.
ही अँटिस्पॅम पद्धत वापरण्यासाठी फॉर्म कोड आणि PHP हँडलर कसे बदलावे ते मी तुम्हाला दाखवतो. आपली इच्छा असल्यास, आपण रिक्त फील्डसह संरक्षण बदलू शकत नाही, परंतु कोडमध्ये संबंधित ओळी जोडा आणि आपल्याकडे एकाच वेळी 2 पद्धती कार्य करतील - सिद्धांतानुसार, ते अधिक कार्यक्षम असावे.
सर्व प्रथम, आपल्याला HTML कोडमध्ये इनपुट फील्ड आणि प्रश्न जोडण्याची आवश्यकता आहे. आमच्याकडे आधीपासून ओळ 25 (इनपुट नाव = “बेझस्पामा”) आधार म्हणून आहे. हे क्षेत्र अदृश्य आहे. आम्ही ते सामान्य बनवतो. हे करण्यासाठी, संपूर्ण ओळ या ब्लॉकमध्ये बदला:
|
गणितीय अभिव्यक्ती 2+2*2 ऐवजी, आपण कोणताही डेटा प्रविष्ट करू शकता - हा वापरकर्त्यासाठी एक दृश्य प्रश्न आहे. आम्ही इनपुट फील्डमधून डिस्प्ले:कोणतीही शैली काढून टाकली आणि अनिवार्य फिलिंग जोडले.
पुढील पायरी म्हणजे PHP हँडलरमधील डेटा बदलणे जेणेकरुन ते या फील्डच्या रिक्ततेसाठी नाही तर प्रविष्ट केलेल्या डेटाच्या शुद्धतेसाठी तपासले जाईल. आम्ही 25 व्या ओळीत रिक्त अभिव्यक्ती ($bezspama) सह चेक इन केले. आम्ही ही अभिव्यक्ती बदलतो आणि भरलेले फील्ड पूर्वनिर्धारित संख्येइतके आहे की नाही ते तपासू. माझ्या उदाहरणात, गणिताची अभिव्यक्ती 6 आहे, त्यामुळे संपूर्ण ओळ अशी दिसेल.
हे रहस्य नाही की HTML पृष्ठाचा वेबसाइटशी संवाद साधण्याचा सर्वात सामान्य मार्ग हा एक फॉर्म आहे. फॉर्म (म्हणजे, फॉर्म टॅगद्वारे तयार केलेला HTML घटक) विनामूल्य ईमेल सेवा, इलेक्ट्रॉनिक स्टोअर आणि इतर अनेक प्रकारच्या साइटद्वारे देखील वापरला जातो.
PHP वापरून साध्या फॉर्मवर प्रक्रिया करणे सोपे आहे. तथापि, वेळोवेळी एकाच प्रकारच्या अनेक फील्ड असलेल्या फॉर्मवर प्रक्रिया करणे आवश्यक आहे, जरी त्यांची संख्या विस्तृत श्रेणीमध्ये बदलू शकते आणि त्यांची संख्या आगाऊ माहित नाही. अशा प्रकरणांसाठी, PHP मूल्यांच्या ॲरेप्रमाणे समान प्रकारच्या फील्डवर प्रक्रिया करण्यासाठी प्रदान करते.
चला विविध प्रकारच्या फील्डच्या पर्यायांवर बारकाईने नजर टाकूया.
मजकूर फील्ड
या लेखात, मजकूर फील्ड मजकूराच्या प्रकार पॅरामीटर मूल्यासह आणि मजकूर टॅगसह इनपुट टॅगद्वारे तयार केलेल्या घटकांचा संदर्भ घेतात. अशा अनेक फील्डचा समावेश असलेल्या फॉर्मची प्रक्रिया आयोजित करणे सर्वात सोपे आहे. खालील सूची अशा फॉर्मसाठी HTML मार्कअप दर्शवते.
जसे आपण सूचीमधून पाहू शकता, PHP दृष्टिकोनातून, फॉर्म घटकांची नावे ॲरे घटक आहेत. म्हणून, या फॉर्मवर प्रक्रिया करणारी PHP स्क्रिप्ट या फॉर्मच्या सर्व अनेक मजकूर फील्डला एकल ॲरे मानेल. खालील उदाहरणाप्रमाणे वैयक्तिक घटकांना अनुक्रमणिकेद्वारे प्रवेश करता येतो किंवा सूची आणि प्रत्येक आदेश वापरून गणना केली जाऊ शकते.
n"; ?>
स्विचेस
या लेखात, चेकबॉक्सेस हे चेकबॉक्सच्या प्रकार पॅरामीटर मूल्यासह इनपुट टॅगद्वारे तयार केलेले घटक आहेत. "स्विच" ची व्हेरिएबल संख्या वापरण्याचा फॉर्म अगदी त्याच प्रकारे तयार केला आहे. लक्षात घ्या की विशिष्ट रेडिओ बटण मूल्याची निवड (म्हणजे मूल्य गुणधर्माचे मूल्य) महत्त्वाचे नाही. खालील सूचीमध्ये एक उदाहरण दर्शविले आहे:
तथापि, अशा फॉर्मची प्रक्रिया मजकूर फील्डसाठी वर्णन केलेल्या प्रक्रियेपेक्षा भिन्न आहे. या प्रकरणात, साइट अभ्यागताने हे किंवा ते स्विच चालू केले आहे की नाही हे निर्धारित करणे आवश्यक आहे. सक्षम असल्यास, संबंधित ॲरे घटक अस्तित्वात असल्यास, तो गहाळ आहे. खालील सूची हे PHP स्क्रिप्टचे उदाहरण आहे जे सक्षम रेडिओ बटणे मुद्रित करते:
रेडिओ बटणे
रेडिओ बटणांच्या प्रक्रियेचे वर्णन करण्यापूर्वी, ते कसे कार्य करतात हे लक्षात ठेवणे आवश्यक आहे. रेडिओ बटणांचे सार (रेडिओ सारख्या प्रकार पॅरामीटरच्या मूल्यासह इनपुट टॅगद्वारे तयार केलेले घटक) हे आहे की एक बटण निवडून, वापरकर्ता स्वयंचलितपणे त्याच सेटमधून दुसरे बटण निवड रद्द करतो. बटणे एका सेटमध्ये अगदी सोप्या पद्धतीने एकत्र केली जातात: सेटमधील सर्व बटणांचे नाव समान असते.
परंतु सेटमधील बटणांची मूल्ये (म्हणजे मूल्य पॅरामीटर्स) भिन्न आहेत. आणि सेटच्या नावासह निवडलेल्या बटणाचे मूल्य साइटवर पाठवले जाईल. मजकूर फील्ड आणि रेडिओ बटणांप्रमाणेच, रेडिओ बटणांच्या सेटची नावे PHP मधील ॲरे घटकांची नावे म्हणून स्वरूपित केली जावीत. अशा फॉर्मचे उदाहरण खालील सूचीमध्ये दिले आहे:
प्रोसेसिंग रेडिओ बटणे प्रक्रियेत मजकूर फील्ड आणि रेडिओ बटणे दोन्ही वापरण्याच्या कल्पना एकत्र करतात. जर html पृष्ठाच्या लेखकाने डीफॉल्ट मूल्य सेट केले नसेल आणि वापरकर्त्याने रेडिओ बटणांच्या संचामध्ये विशिष्ट बटण निवडले नसेल, तर हा घटक ॲरेमध्ये नसेल (रेडिओ बटणांप्रमाणे).
जर बटण निवडले असेल, तर संबंधित ॲरे घटकामध्ये त्याचे मूल्य असेल (मजकूर फील्डसाठी). खाली एक उदाहरण सूची आहे जी रेडिओ बटणांच्या एकाधिक सेटसह फॉर्मवर प्रक्रिया करते.
n"; ?>
अशा प्रकारे, जटिल आकारांवर प्रक्रिया करण्यात काहीही क्लिष्ट नाही.
या PHP धड्यात भाषेच्या मूलभूत संकल्पनांचा समावेश आहे: वेब पृष्ठांवर विनंती पाठवून फॉर्मवर प्रक्रिया करणे, फॉर्मवर प्रक्रिया करताना मूलभूत PHP नियंत्रण रचना, PHP फॉर्ममधून फाइलवर डेटा लिहिणे, PHP date() मधील तारीख कार्य.
1. आम्ही तुम्हाला आठवण करून देतो की सर्व फाईल्स phpचालत असतानाच चाचणी केली जाते डेन्व्हरआणि फक्त ब्राउझर ॲड्रेस बारवरून. तुम्ही डबल क्लिक करून php फाइल्स चालवू शकत नाही!
2. डेन्व्हर लाँच करा.
व्यायाम 1: साध्या फॉर्मवर प्रक्रिया करणे
या PHP धड्यात आपण HTML पृष्ठावर फॉर्मवर प्रक्रिया करणे, फॉर्म फील्डसाठी PHP व्हेरिएबल्स तयार करणे पाहू.
1. अंजीर प्रमाणे एक आकार तयार करा. ३.१. असे समजले जाते की जेव्हा तुम्ही ऑर्डर पाठवा बटणावर क्लिक कराल तेव्हा फॉर्ममधील डेटा प्रशासकाकडे हस्तांतरित केला जाईल आणि क्लायंटला स्क्रीनवर प्रतिसाद दिसेल. ऑर्डर प्रक्रिया केली. जर तुम्हाला फॉर्म लिहिणे कठीण वाटत असेल, तर आकृतीखालील कोड लागू करा आणि फोल्डरमध्ये सेव्ह करा php_2नावाखाली forma_bob.htmlआम्ही तुम्हाला आठवण करून देतो की फॉर्म हँडलरचा पत्ता विशेषतामध्ये लिहिलेला आहे क्रियाटॅग फॉर्म.
आकृती 3.1
2. डेटा सबमिट केल्यानंतर वापरकर्त्याला प्रतिसाद मिळण्यासाठी, PHP मध्ये फॉर्म हँडलर तयार करणे आवश्यक आहे. खालील कोड तयार करा आणि फोल्डरमध्ये सेव्ह करा php_2नावाखाली zakaz.php
3. हँडलरची कार्यक्षमता तपासा. हे करण्यासाठी, फाइल चालवा forma_bob.htmlब्राउझर ॲड्रेस बारमध्ये पत्ता टाइप करून ब्राउझरद्वारे http://localhost/php_2/forma_bob.html
4. फॉर्म फील्डमध्ये कोणतीही संख्या प्रविष्ट करा आणि बटणावर क्लिक करा ऑर्डर सबमिट करा. अंजीर मध्ये परिणाम. ३.२.
आकृती 3.2
फॉर्म व्हेरिएबल्स
ऑर्डर फॉर्म वापरण्याचा संपूर्ण मुद्दा म्हणजे ग्राहकाने कीबोर्डवर प्रविष्ट केलेली ऑर्डर माहिती मिळवणे. PHP स्क्रिप्टमध्ये, प्रत्येक फॉर्म फील्डमध्ये व्हेरिएबल म्हणून प्रवेश केला जाऊ शकतो ज्याचे नाव फॉर्म फील्डसारखेच आहे. PHP मध्ये, व्हेरिएबल्स ओळखणे सोपे आहे कारण ते डॉलर चिन्हाने सुरू होतात. $ .
तुम्ही फील्डमधील सामग्रीमध्ये प्रवेश करू शकता थकवाखालील प्रकारे:
$Treqty//लहान शैली
$_POST['टायरक्टी']//मध्यम शैली
$HTTP_POST_VARS['सामान्य']//लांब शैली
फॉर्म व्हेरिएबल्सचा संदर्भ देण्यासाठी आम्ही लांबलचक शैली वापरु, परंतु वापर सुलभतेसाठी आम्ही अनुप्रयोगाच्या लहान आवृत्त्या तयार करू. निवडलेल्या आवृत्त्या आणि सेटिंग्जकडे दुर्लक्ष करून, सर्व सिस्टममध्ये प्रभावीपणे काम करणाऱ्या डेटामध्ये फेरफार करण्याचा हा एक सोयीस्कर आणि सुरक्षित मार्ग आहे.
एका व्हेरिएबलची सामग्री दुसऱ्यावर कॉपी करताना, आम्ही असाइनमेंट ऑपरेटर वापरतो, जो PHP मध्ये समान चिन्हाने दर्शविला जातो ( = ). कोडची खालील ओळ एक नवीन व्हेरिएबल तयार करते ज्याला म्हणतात $Treqtyआणि सामग्री हस्तांतरित करते $_POST['टायरक्टी']या नवीन व्हेरिएबलसाठी:
$tireqty=$_POST['tireqty']
ही स्क्रिप्ट कोणतेही आऊटपुट जनरेट करत नसल्यामुळे, ती हँडलच्या वर किंवा खाली ठेवली तरी काही फरक पडत नाही. . सामान्यतः हा ब्लॉक स्क्रिप्टच्या सुरुवातीला ठेवला जातो.
5. फाइलवर zakaz.phpखालीलप्रमाणे कोड बदला आणि फॉर्मची कार्यक्षमता तपासा. अंजीर मध्ये परिणाम. ३.३. तुम्ही कोणता डेटा प्रविष्ट केला आहे त्यानुसार संख्या भिन्न असू शकतात.
आकृती 3.3
व्यायाम २: बॉबच्या ऑटो पार्ट्स फॉर्मसाठी कॅल्क्युलेटर तयार करा
या PHP ट्यूटोरियलमध्ये, आपण गणनासाठी मूलभूत PHP अंकगणित कार्ये पाहू.
1. फाइल forma_bob.htmlनावाखाली जतन करा forma_bob_2.html
2. फाइल zakaz.phpनावाखाली जतन करा zakaz_2.php
3. फाइलवर forma_bob_2.html"ऑटो पार्ट्स फ्रॉम बॉब" फॉर्म बदला जेणेकरून ते अंजीर प्रमाणे दिसेल. ३.४. हँडलरचे नाव बदलायला विसरू नका zakaz_2.php. तुमचे नुकसान होत असल्यास, तुम्ही खालील कोड लागू करू शकता.
आकृती 3.4
4. फाइलमध्ये नवीन फॉर्म प्रक्रिया तयार करा zakaz_2.phpमागील धड्यांमधून मिळालेले ज्ञान वापरणे. प्रक्रियेमध्ये खालील आउटपुट डेटा आणि अटी असणे आवश्यक आहे:
1. प्रत्येक उत्पादनाची किंमत स्थिरांकाद्वारे निर्धारित केली जाते. PHP मधील स्थिरांक define फंक्शनद्वारे निर्दिष्ट केला जातो. उदाहरण परिभाषित करा("POKRPRICE",10); फंक्शनचे पहिले पॅरामीटर हे स्थिरांकाचे नाव आहे, जे कॅपिटल अक्षरांमध्ये लिहिलेले आहे, दुसरे पॅरामीटर हे स्थिरांकाचे मूल्य आहे.
2. तार्किक ऑपरेशन किंवाद्वारे दर्शविले ||
3. तार्किक ऑपरेशन आणिद्वारे दर्शविले && .
4. तुलना ऑपरेशन्स: अधिक > , कमी < , >= पेक्षा मोठे किंवा समान, पेक्षा कमी किंवा समान <=
5. संगणकावरून वेळ वाचणारे कार्य तारीख("H:i, jF")
6. दशांश स्थानांची संख्या स्वरूपित करणारे कार्य संख्या_स्वरूप. उदाहरण number_format($sumnalog,2). पहिला पॅरामीटर हा व्हेरिएबल आहे ज्याचे वर्ण आपण फॉरमॅट करतो, दुसरे पॅरामीटर म्हणजे दशांश स्थानांची संख्या.
7. तुम्हाला फॉर्म प्रोसेसिंग तयार करणे अवघड वाटत असल्यास, तुम्ही खालील कोड वापरू शकता (चित्र 3.8):
आकृती 3.8
व्यायाम 3: मजकूर फाइलमध्ये फॉर्म डेटा लिहिणे
आमच्या PHP ट्यूटोरियलमध्ये आम्ही मजकूर फाइलवर फॉर्म डेटा लिहिणे आणि फॉर्मवर प्रक्रिया करताना date() तारीख फंक्शन देखील पाहतो.
1. “बॉबचे ऑटो पार्ट्स” फॉर्म हँडलर फाईलमध्ये, शेवटच्या क्लोजिंग कर्ली ब्रेसनंतर, कोड जोडा.
आकृती 3.9
2. प्रोग्रामचे ऑपरेशन तपासा. मजकूर फाइल orders.txtस्वयंचलितपणे तयार केले जाते, त्यातील सामग्री पहा.
नियंत्रण कार्य
या PHP धड्याचा अभ्यास केल्यानंतर, तुम्हाला प्राप्त केलेले ज्ञान एकत्रित करण्यासाठी चाचणी कार्य पूर्ण करण्यास सांगितले जाते.
आकृती 3.10
1. अंजीर प्रमाणे एक फॉर्म तयार करा. ३.१०.
2. फॉर्म प्रोसेसिंग तयार करा जे अंजीर प्रमाणे ऑर्डर परिणाम प्रदर्शित करेल. 3.11 (फॉर्ममध्ये प्रविष्ट केलेल्या डेटावर अवलंबून परिणाम बदलू शकतात.
3. ऑर्डर परिणाम वेगळ्या मजकूर फाईलमध्ये लिहिणे आवश्यक आहे.
ऑर्डर सूचीमध्ये खालील गोष्टी प्रतिबिंबित केल्या पाहिजेत:
- उत्पादन प्रकार.
- 1 तुकडा किंमत. वस्तू
- ऑर्डर केलेल्या वस्तूंची संख्या.
- शिपिंग, विक्री कर आणि सूट वगळता एकूण ऑर्डरची किंमत.
- वितरण खर्च.
- विक्री कराची रक्कम.
- टक्केवारी आणि rubles मध्ये सूट.
- ऑर्डरच्या किंमतीत वितरण, विक्री कर आणि सूट समाविष्ट आहे.
- वितरण पत्ता.
समस्या परिस्थिती:
- वस्तूंची किंमत:
- पेन - 10 घासणे.
- पुस्तके - 100 घासणे.
- स्मरणिका - 1000 घासणे.
- संगणक - 10,000 घासणे.
- विक्री कर - 18%. सवलतीच्या अधीन असलेल्या सर्व वस्तूंच्या एकूण किमतीमध्ये कर जोडला जातो.
- वितरण खर्च - 500 घासणे. सवलत आणि विक्री कर समाविष्ट करण्यासाठी शिपिंग खर्च सर्व वस्तूंच्या एकूण किंमतीमध्ये जोडले जातात.
- सवलत:
- 5 पीसी पेक्षा कमी पेन किंवा पुस्तके ऑर्डर करताना. सवलत - 5%, 5 ते 10 पीसी पर्यंत. - 10%, 10 पीसी वर. - 20%;
- 10 ते 20 पीसी पासून स्मृतिचिन्हे किंवा संगणक ऑर्डर करताना. सवलत - 10%, 20 ते 30 पीसी पर्यंत. - 20%, 30 पीसी वर. - 40%.