Unlimited WordPress themes, graphics, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. PHP
Code

PHP फिल्टर्स के साथ डाटा को सैनिटाइज और वैलिडेट करें

by
Difficulty:IntermediateLength:MediumLanguages:

Hindi (हिंदी) translation by Ashish Rampal (you can also view the original English article)

जब हम फॉर्म के साथ काम करते हैं तो डाटा वैलिडेशन इसके अंदर का ही एक हिस्सा है।  गलत डाटा सबमिट करना ना केवल सिक्योरिटी से संबंधित समस्याएं पैदा करता है पर यह आपके वेबपेज को ब्रेक भी कर सकता है। आज हम देखेंगे कि किस प्रकार इनवैलिड अक्षरों को हटाए और “filter_var” फंक्शन का प्रयोग करके डाटा को वैलिडेट करें।


नीचे उदाहरण को देखा जा सकता है। यूज़र ने अपने होम पेज के रूप में टेक्स्ट एंटर किया है “I don’t have one”। यदि  इस डाटा को डेटाबेस में एंटर किया जाना हो और बाद में इसे लिंक के रूप में प्राप्त करना हो,  लिंक टूट जाएगा। 

ज्यादातर लोग डाटा वैलिडेशन को बहुत थकाऊ प्रोसेस मानते हैं जहां वे या तो:

  • डाटा को कंपेयर करते हैं जिसे वे वैलिडेट करना चाहते हैं उस हर कंबीनेशन के खिलाफ जिनको वह सोच सकते हैं।
  • गोल्डन रेगुलर एक्सप्रेशन को प्राप्त करने की कोशिश करते हैं जो हर संभव कंबीनेशन को  मिलाएगा ।
  • दोनों का कंबीनेशन।

ऊपर दी गई लिस्ट में सामान्य समस्याएं हैं:

  • इसमें बहुत अधिक समय लगता है।
  • गलती होने के काफी अधिक अवसर है।

सौभाग्य से, वर्जन 5.2 से शुरुआत करते हुए, PHP ने एक बहुत अच्छा फंक्शन जिसका नाम filter_var है को शामिल किया, जो हमारे डाटा वैलिडेशन के दर्द को दूर करता है।

filter_var एक्शन में

filter_var डाटा को सेनीटाइज और वैलिडेट दोनों करेगा।  इन दोनों के बीच में क्या अंतर है?

  • सैनिटाइजिंग डाटा में से किसी इनवैलिड अक्षर को हटा देता है।
  • वैलिडेट यह पता लगाता है कि डाटा क्या सही तरीके से दिया गया है।

नोट: सेनीटाइज ही क्यों और सिर्फ वैलिडेट क्यों नहीं?  ऐसा हो सकता है कि यूजर गलती से गलत अक्षर टाइप कर दे या यह किसी खराब कॉपी और पेस्ट का नतीजा हो। डाटा को सेनीटाइज करके, आप यूजर की गलतियों को दूर करने की जिम्मेदारी लेते हैं।

filter_var का प्रयोग कैसे करें

filter_var का प्रयोग बहुत ही आसान है। यह सिर्फ एक PHP का फंक्शन है जो दो डाटा को लेता है:

  • वह वेरिएबल जिसे आप चेक करना चाहते हैं
  • किस प्रकार के चेक का प्रयोग करना चाहते हैं

उदाहरण के लिए, नीचे दिए गए कोड स्ट्रिंग से सभी HTML टैग्स को हटा देता:

यह एक और उदाहरण है -  इस बार और भी कठिन। नीचे वाले कोड यह पक्का करते हैं कि वेरिएबल की वैल्यू एक वैलिड IP ऐड्रेस हो:

filter_var का प्रयोग करना इतना आसान है। वह सभी रूल्स जिनको आप चेक करने के लिए प्रयोग कर सकते हैं की पूरी लिस्ट के लिए, इस ट्यूटोरियल के अंत को देखें।

सैनिटाइजिंग के उदाहरण

नीचे एक छोटा सा उदाहरण है कि कैसे हम दो फील्ड से इनपुट को सैनिटाइज करें: एक ईमेल फील्ड और एक होम पेज फील्ड। यह उदाहरण किसी भी अक्षर को मिटा देगा जो इन दोनों प्रकार के डाटा में नहीं होने चाहिए।

FILTER_SANITIZE_EMAIL और FILTER_SANITIZE_URL कांस्टेंट PHP द्वारा निर्धारित है,  इस बात का तुक्का लगाना कि कौन से अक्षर अवैध है पूरी तरह से खत्म हो गया।

वैलिडेट करने के उदाहरण

सिर्फ इसलिए कि डाटा सैनिटाइज किया गया है यह पक्का नहीं होता कि यह सही से फॉरमैट में है। नीचे दिए गए उदाहरण में डाटा को सैनिटाइज किए जाने की कोई जरूरत नहीं है पर यह जाहिर है कि यूजर की इनपुट कोई ईमेल या URL नहीं है।

यह पक्का करने के लिए की डाटा सही फॉरमैट में है, इसे वैलिडेट किया जाना पड़ता है।

अब जबकि डाटा वैलिडेट कर दिया गया है आप इस बात पर पक्का हो सकते हैं कि सबमिट की गई जानकारी वही है जिसे आप चाहते हैं।

सभी को साथ में रखना:  एक ईमेल सबमिट फॉर्म

अब जबकि डाटा सनीटाइज़ेशन और वैलिडेशन को कवर कर लिया गया है हम एक ईमेल सबमिशन फॉर्म के त्वरित उदाहरण में अपने इन स्किल्स का प्रयोग करते हैं। यह खासकर प्रोडक्शन क्वालिटी का होगा -  उदाहरण के लिए किसी भी फॉर्म को होम पेज की आवश्यकता नहीं होगी -  लेकिन यह इस टुटोरिअल के लिए सही तरीके से काम करेगा। फॉर्म में जानकारी के चार हिस्से होंगे:

  • नाम
  • ईमेल एड्रेस
  • होम पेज
  • मैसेज

हम इन चारों डाटा को सेनीटाइज और वैलिडेट करेंगे और सिर्फ तभी ईमेल करेंगे अगर यह सभी वैलिड हो। अगर कुछ भी अवैध है, या यदि कोई फील्ड खाली है, फॉर्म को यूजर के सामने सभी आइटम की लिस्ट जिन्हें ठीक किया जाना है के साथ प्रस्तुत कर दिया जाएगा। हम साथ ही सैनिटाइज किए गए डेटा को भी यूजर को रिटर्न करेंगे उस परिस्थिति में जब वह अंजान होगा की कोई खास अक्षर अवैध है।

Step 1 - फॉर्म को बनाना

पहले स्टेप के लिए,  सिर्फ फॉर्म के एलिमेंट का निर्माण करें जिनमें 5  फील्ड हो:  चार  ऊपर दी गई है और एक सबमिट बटन:

Step 2 - पता लगाना है कि क्या फॉर्म सबमिट कर दिया गया है

आप यह सुनिश्चित करने के लिए देख सकते हैं कि क्या फॉर्म सबमिट कर दिया गया है  यह देखकर की यदि सबमिट बटन “set” हो गया है।  अपने फॉर्म के सबसे ऊपर, दिए गए कोड को रखें:

Step 3: नाम और मैसेज फील्ड को वैलिडेट करना

क्योंकि दोनों नाम और मैसेज फेल्ड सनीटाइज़ की जाएंगी और साथ ही साथ वैलिडेट भी,  हम इन्हें एक साथ करेंगे। सबसे पहले, यह चेक करें कि क्या इनमें से कोई फील्ड खाली है इसके लिए निम्नलिखित करें:

इसके बाद, इन्हें FILTER_SANITIZE_STRING कांस्टेंट के साथ सैनिटाइज करें

अंत में, यह पक्का करने के लिए चेक करें कि दोनों फील्ड अभी भी खाली नहीं है। यह पक्का करने के लिए है कि सभी अवैध अक्षरों को हटाने के बाद भी आपके पास खाली  फील्ड नहीं है:

हम इन दोनों फील्ड पर वैलिडेशन नहीं करेंगे क्योंकि कोई भी तरीका नहीं है जिससे हम सीधे-सीधे नाम या मैसेज को वैलिडेट कर सकें।

अंतिम कोड कुछ इस प्रकार का नजर आएगा

Step 4 - ईमेल फील्ड को वैलिडेट करना

ईमेल फील्ड टाइप ओर वैलिडेट की जाएगी उसी प्रकार से जैसे कि पहले  इस ट्यूटोरियल में की गई थी।

सबसे पहले चेक करें कि यह खाली तो नहीं है:

इसके बाद, इसे सेनीटाइज करें:

अंत में, इसे सही ईमेल ऐड्रेस की तरह वैलिडेट करें:

अंतिम कोड कुछ इस प्रकार नजर आएंगे:

Step 5 -- होमपेज फील्ड को वैलिडेट करें

फिर से,  होम पेज स्पीड को सैनिटाइज और वैलिडेट किया जाएगा ठीक उसी प्रकार जैसा कि ट्यूटोरियल में पहले किया गया था।

सबसे पहले यह पक्का करेंगे की यह  खाली तो नहीं है:

इसके बाद, इसे पहले टाइप करें और किसी अवैध अक्षर को हटा दें:

अंत में, यह पक्का करने के लिए कि यह सही URL है इसे वैलिडेट करें:

अंतिम कोड इस प्रकार नजर आएंगे:

Step 6 -- गलतियों को जांचें और मैसेज को भेजें

अब जबकि हम सभी फील्ड में काम कर चुके हैं,  यह समय है या तो गलतियों को दिखाएं या मैसेज को भेज दे। सबसे पहले यह मानकर चलें कि यहां कोई  गलती नहीं है:

इसके बाद ईमेल मैसेज को बनाएं:

और अंत में, मैसेज को भेज दे:

फिर भी, यदि कोई  गलती है, उन्हें रिपोर्ट करें और यूजर से फिर से कोशिश करवाएं:

पूरा प्रोजेक्ट कुछ इस प्रकार नजर आएगा:

सारांश

उम्मीद करता हूं कि इस ट्यूटोरियल को पढ़कर आपको PHP के नए डाटा फिल्टरिंग  फीचर के बारे में एक अच्छा परिचय मिला होगा। अभी भी बहुत से फंक्शन और नियम है जो यहां कवर नहीं किए गए,  इसलिए यदि आप और सीखना चाहे,  तो प्लीज PHP मैनुअल के इस डाटा फिल्टरिंग सेक्शन को देखें।

  • और दैनिक वेब डेवलपमेंट ट्यूटोरियल और आर्टिकल्स के लिए NETTUTS RSS Feed को सब्सक्राइब करें।


Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.