रविवार, 31 जनवरी 2010

securimage से कैप्चा(captcha) लगाना हुआ और भी आसान

कैप्चा से तो आप सभी परिचित होंगे. चित्रों में लिखे टेढ़े मेढ़े शब्द जिन्हे अक्सर वेब फ़ार्मों को भरते समय आखिरी में भरना पड़ता है.

असल में होता ये है कि इन चित्रों में लिखे टेढ़े मेढ़े शब्दों को केवल मनुष्य ही पढ़ पाता है जिससे केवल वही उन्हे भर सकता है मशीन नही. अन्यथा छोटे छोटे प्रोग्राम भी ढेरों फ़ार्म स्वचालित रूप से जमा कर सकते हैं. कैप्चा इस प्रकार के स्वचालित प्रोग्रामों से सुरक्षा प्रदान करता है.

securimage एक पीएचपी क्लास फ़ाइल है जिससे फ़ार्मों में कैप्चा लगाना बहुत आसान हो जाता है. आइए देखते हैं कैसे?

सर्वप्रथम securimage क्लास फ़ाइल को आप http://www.phpcaptcha.org/ से डाउनलोड कर लें. इसकी जिप फ़ाइल में आपको निम्नलिखित फ़ाइलें दिखाई देंगी.

image 

वैसे तो इसमें वो सब कुछ है जिसकी आपको जरूरत है परंतु चूंकि हम यहां सीखने सिखाने का काम कर रहे हैं अत: हम इस जिप फ़ाइल से gdfonts तथा securimage.php क्लास फ़ाइल को ही निकालेंगे. इन्हे हम अब अपनी साइट के रूट फ़ोल्डर में कापी करते हैं.

image

तो अब सब तैयार है. तो शुरू करते हैं.

इसी फ़ोल्डर में एक फ़ाइल बनाएं index.php के नाम से.

इस फ़ाइल में निम्नलिखित कोड लिखें:

<?php session_start(); //हम पीएचपी सेशन शुरू कर रहे हैं.
require_once 'securimage.php'; //हम कैप्चा की मुख्य क्लास फ़ाइल को शामिल कर रहे हैं.
$securimage = new Securimage(); //अब बारी है क्लास से आब्जेक्ट बनाने की
if($_SERVER['REQUEST_METHOD']=='POST'){ //हम यह जांच रहे हैं कि फ़ार्म द्वारा POST अनुरोध हुआ या नही?
    if ($securimage->check($_POST['captcha_code']) == false) { //अब securimage आब्जेक्ट के द्वारा हम फ़ार्म से भेजे गये कोड को जांच रहे हैं
        //त्रुटि संदेश दिखाएं
        echo "कैप्चा कोड का मिलान नही हो सका"; //यदि मिलान ना हो तो त्रुटि संदेश दिखाएं
    }else{
        //फ़ार्म जमा करें
        echo "धन्यवाद फ़ार्म जमा किया जा सकता है"; //अन्यथा फ़ार्म जमा करें

    }
}
?>
<form name="form_captcha_test" method="post" action="index.php">
<input type="text" name="captcha_code" value="" /><br />
<img src="showimg.php" alt="captcha image" /> <!-- showimg.php ही कैप्चा चित्रों को पैदा करेगी-->
<input type="submit" name="btn_submit" value="जमा करें" />
</form>

अब एक और फ़ाइल बनाएं जिसका नाम हो showimg.php. इस फ़ाइल में निम्नलिखित कोड लिखें:

<?php

include 'securimage.php'; //मुख्य क्लास फ़ाइल को शामिल कर रहे हैं.
$img = new securimage(); //क्लास से आब्जेक्ट बना रहे हैं
$img->use_gd_font = true; //इसे सक्षम कर देने से gdf फ़ान्टों का समर्थन शुरू हो जाता है
$img->gd_font_file = "gdfonts/bubblebath.gdf"; //अब यहां यह बताना है कि कौन सा gdf फ़ान्ट प्रयोग में लाना है
$img->show(); //और आखिर में हम कैप्चा चित्र को दिखाएंगे.

?>

ब्राउजर में अब index.php फ़ाइल को देखें आपको एक कैप्चा दिखाई देगा.

image

कुछ गलत सलत लिखकर फ़ार्म जमा करें. आपको त्रुटि संदेश मिलेगा

image

और सही लिखकर जमा करें

image 

तो बोलिए है ना आसान? और समय भी बहुत कम लगा. वैसे ये तो बहुत ही छोटा सा लेख था. और अधिक जानकारी के लिए आप इधर का रुख कर सकते हैं:

http://www.phpcaptcha.org/Securimage_Docs/Securimage/classes/Securimage.html

 

एक और महत्वपूर्ण बात. जब मैं यह लेख लिख रहा था तब ये पता चला कि यदि आपकी showimg.php फ़ाइल यूनिकोड में हो तो कैप्चा नही दिखता है. अत: यदि आपको को भी कैप्चा नही दिख रहा है तो इसे ANSI में कर लें.

image

यह स्क्रीनशाट Notepad++ का है.

कोई टिप्पणी नहीं:

एक टिप्पणी भेजें

इस ब्लाग में प्रकाशित सामग्री कापीराईट द्वारा सुरक्षित है. बिना अनुमति इसका किसी भी प्रकार से अन्यत्र प्रयोग/प्रकाशन मूल रूप में/बदल कर उपयोग नही किया जा सकता है.

हिंदी में तकनीकी लेखन को प्रोत्साहित करें

please donate अभी तक वेब डेवलपमेंट अथवा प्रोग्रामिंग आदि से संबंधित जानकारी पर अंग्रेजी का एकाधिकार रहा है. भारत में इतने आई टी गुरू होने के बावजूद भारतीय भाषाओं में इस विषय पर लेखन नगण्य है. इस ब्लाग के माध्यम से मैं हिन्दी भाषिओं तक वेब डेवलपमेंट का ज्ञान पहुंचाने की कोशिश कर रहा हूं. अत: आप सभी से अनुरोध है कि हिंदी में तकनीकी लेखन के लिये सहयोग करें
मैं वेबसाइटें भी बनाता हूं. यदि आपको बनवानी हो तो बताएं.

इस ब्लॉग में खोजें

फ़ॉलोअर