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

PHP में अपना खुद का CAPTCHA और कांटेक्ट फॉर्म बनाएं

by
Difficulty:IntermediateLength:MediumLanguages:

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

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

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

इस समस्या को हल करने का एक तरीका एक टेस्ट डिवाइस (devise) करना है जो बोट्स के बीच अंतर सकता है जो स्पैम को फैलाने की कोशिश कर रहे हैं और जो लोग वैलिड तरीकों से आप से कांटेक्ट करना चाहते हैं। यह वह जगह है जहां CAPTCHAs आते हैं। वे आमतौर पर एक रंगो वाले बैकग्राउंड पर लिखे गए 5 या 6 अक्षरों की रेंडम कंबीनेशन के साथ इमेजेस से मिलकर होते हैं। विचार यह है कि एक इंसान इमेज के अंदर टेक्स्ट को पढ़ने में सक्षम होगा लेकिन एक बॉट नहीं होगा। ओरिजिनल के खिलाफ यूजर द्वारा भरे CAPTCHA वैल्यू की जांच करने से आपको इंसानों से बॉट को अलग करने में मदद मिल सकती है। CAPTCHA का अर्थ है “completely automated public Turing test to tell computers and humans apart”।

इस ट्यूटोरियल में, हम सीखेंगे कि अपने खुद के CAPTCHA कैसे बनाएं और फिर उन्हें ट्यूटोरियल में हमारे द्वारा बनाए गए कॉन्टैक्ट फॉर्म के साथ इंटीग्रेट करें।

CAPTCHA बनाना

हम अपने CAPTCHA को बनाने के लिए PHP GD लाइब्रेरी का उपयोग करेंगे। आप मेरे पहले के ट्यूटोरियल में GD के साथ टेक्स्ट लिखने और शेप को ड्रा करने के बारे में अधिक जान सकते हैं। हमारी रेंडम स्ट्रिंग को बनाने के लिए भी हमें थोड़े से कोड लिखने होंगे, जिससे इमेज बनाई जाती है। फिर भी एक अन्य ट्यूटोरियल जिसका टाइटल PHP में रेंडम अल्फान्यूमैरिक स्ट्रिंग जनरेट करना है, इस संबंध में हमारी मदद कर सकता है।

एक रेंडम स्ट्रिंग जनरेट करें

इस सेक्शन के सभी कोड captcha.php फाइल में जाएंगे। आइए रेंडम स्ट्रिंग बनाने के लिए फंक्शन लिखकर शुरू करें।

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

हमारा फंक्शन डिफ़ॉल्ट रूप से एक पांच अक्षर वाली स्ट्रिंग को बनाता है, लेकिन आप उस वैल्यू को generate_string() फंक्शन के लिए एक अलग पैरामीटर पास करके बदल सकते हैं।

CAPTCHA बैकग्राउंड को रेंडर करें

एक बार जब हमारे पास रेंडम स्ट्रिंग होती है, तो CAPTCHA इमेज के बैकग्राउंड बनाने के लिए कोड लिखने का समय आ जाता है। इमेज साइज में 200 x 50 पिक्सल होगी और बैकग्राउंड के लिए पांच अलग-अलग रंगों का उपयोग करेगी।

हम वेरिएबल के लिए रेंडम वैल्यू के साथ शुरू करते हैं $red, $green, और $blue। यह वैल्यू इमेज बैकग्राउंड का फाइनल कलर निर्धारित करती हैं। उसके बाद, हम ओरिजिनल कलर के गहरे रंगों को बनाने के लिए for लूप को रन करते हैं। यह रंग एक ऐरे में स्टोर होते हैं। सबसे हल्का रंग हमारे $colors ऐरे का पहला एलिमेंट है, और सबसे गहरा रंग अंतिम एलिमेंट है। इमेज की पूरी बैकग्राउंड को भरने के लिए सबसे हल्के रंग का उपयोग किया जाता है।

अगले स्टेप में, हम अपने ओरिजिनल इमेज पर रेंडम लोकेशन पर रैक्टेंगल को ड्रा करने के लिए for लूप का उपयोग करते हैं। रेक्टेंगल की मोटाई 2 और 10 के बीच अलग-अलग होती है, जबकि रंग को हमारे $colors ऐरे के अंतिम चार वैल्यू में से रेंडम रूप से चुना जाता है।

इन सभी रैक्टेंगल्स को ड्रॉ करने से बैकग्राउंड में और रंग जुड़ जाते हैं, जिससे CAPTCHA स्ट्रिंग के फोरग्राउंड को इमेज की बैकग्राउंड से अलग करना थोड़ा कठिन हो जाता है।

आपकी CAPTCHA बैकग्राउंड इमेज नीचे दी गयी इमेज के समान दिखनी चाहिए।

CAPTCHA background in PHP

CAPTCHA स्ट्रिंग को रेंडर करें

अंतिम स्टेप के लिए, हमें बस अपनी बैकग्राउंड पर CAPTCHA स्ट्रिंग ड्रॉ करनी होगी। अलग-अलग अक्षरों के रंग, y-कोऑर्डिनेट, और रोटेशन को CAPTCHA स्ट्रिंग को पढ़ने के लिए रेंडम रूप से निर्धारित किया जाता है।

जैसा कि आप देख सकते हैं, मैं करैक्टर में वेरिएशन पाने के लिए Google से डाउनलोड किए गए कुछ फोंट का उपयोग कर रहा हूं। इमेज के दोनों किनारों पर 15 पिक्सल की एक पैडिंग है। बचे हुए स्थान -170 पिक्सल - को सभी CAPTCHA अक्षरों में समान रूप से विभाजित किया गया है।

बैकग्राउंड के ऊपर टेक्स्ट स्ट्रिंग को रेंडर करने के बाद, आप का रिजल्ट नीचे दी गई इमेज जैसा होना चाहिए। कैरेक्टर अलग अलग होंगे, लेकिन उन्हें थोड़ा रोटेट किया जाना चाहिए और काले और सफेद रंग का मिश्रण होना चाहिए।

CAPTCHA background with text

हमारे कोंटेक्ट फॉर्म में CAPTCHA को जोड़ना

अब जब हमने अपना CAPTCHA बना लिया है, तो इसे हमारे कोंटेक्ट फॉर्म में जोड़ने का समय आ गया है। हम PHP कॉन्टैक्ट फॉर्म बनाने और Send Message बटन के ठीक ऊपर CAPTCHA जोड़ने के तरीके पर अपने पिछले ट्यूटोरियल से कांटेक्ट फॉर्म का उपयोग करेंगे।

हम CAPTCHA टेक्स्ट को स्टोर करने के लिए सेशन का उपयोग करेंगे और फिर वेबसाइट विजिटर्स द्वारा एंटर किए गए टेक्स्ट को वैलिडेट करेंगे। या हमारे captcha.php फाइल के पूरे कोड हैं:

जिस फॉण्ट का आप उपयोग करना चाहते हैं, वे fonts डायरेक्टरी में जाएंगे। अब, आपको बस HTML और PHP में कॉन्टैक्ट फॉर्म बनाने पर हमारे पिछले ट्यूटोरियल से Send Message बटन के ऊपर यह HTML कोड को जोड़ना होगा।

कभी-कभी, CAPTCHA टेक्स्ट को इंसानों के लिए भी पढ़ना मुश्किल होता है। इन स्थितियों में, हम चाहते हैं कि वे यूज़र के अनुकूल तरीकों से एक नया CAPTCHA मांग सके। ऊपर दिया गया redo आइकन हमें ठीक यही करने में मदद करता है। आपको केवल कांटेक्ट फॉर्म के लिए HTML के रूप में उसी पेज पर नीचे दिए गए जावास्क्रिप्ट को जोड़ना होगा।

फॉर्म में CAPTCHA को इंटीग्रेट करने और एक रिफ्रेश बटन जुड़ने के बाद, आपको एक ऐसा फॉर्म प्राप्त होना चाहिए जो नीचे दी गई इमेज जैसा दिखता हो।

PHP Contact form with CAPTCHA

CAPTCHA के हमारे इंटीग्रेशन में अंतिम स्टेप जो हमने कॉन्टैक्ट फॉर्म के साथ बनाया है, जिसमें फॉर्म को भरने और सेशन मे स्टोर वैल्यू के साथ मिलान करके यूजर द्वारा CAPTCHA वैल्यू इनपुट को चेक करना भी शामिल है। निम्नलिखित कोड के साथ पिछले ट्यूटोरियल से contact.php फाइल को अपडेट करें।

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

अंतिम विचार

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

आप CAPTCHA बनाने के लिए इस ट्यूटोरियल के लॉजिक का भी उपयोग कर सकते हैं जो बेसिक मैथ की इक्वेशन जैसे जोड़ना और घटाना पर निर्भर करता है।

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

यदि आपके पास कोई प्रश्न या सुझाव है, तो बेझिझक मुझे कमैंट्स में बता सकते हैं। आपको सर्वश्रेष्ठ PHP कॉन्टैक्ट फॉर्म की लिस्ट पर भी एक नजर डालनी चाहिए।

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.