खोज…


यह हेल्पर लोड हो रहा है

यह कोड निम्न कोड का उपयोग करके लोड किया गया है:

नियंत्रक में ही (* बार-बार दोहरा सकते हैं *)

$this->load->helper('captcha');

config/autoload.php ( केवल एक बार लोड करें )

$autoload['helper'] = array('captcha');

create_captcha ($ डेटा)

CAPTCHA को इनपुट के रूप में जनरेट करने के लिए जानकारी की एक सरणी लेता है और छवि के बारे में सहयोगी डेटा की एक सरणी को वापस करते हुए, आपके विनिर्देशों के लिए छवि बनाता है।

[array]
(
  'image' => IMAGE TAG
  'time'    => TIMESTAMP (in microtime)
  'word'    => CAPTCHA WORD
)

"छवि" वास्तविक छवि टैग है:

<img src="http://example.com/captcha/12345.jpg" width="140" height="50" />

"समय" फ़ाइल एक्सटेंशन के बिना छवि नाम के रूप में उपयोग किया जाने वाला माइक्रो टाइमस्टैम्प है। यह इस तरह एक नंबर होगा: 1139612155.3422

"शब्द" कैप्चा छवि में दिखाई देने वाला शब्द है, जो यदि फ़ंक्शन को आपूर्ति नहीं करता है, तो एक यादृच्छिक स्ट्रिंग होगा।

कैप्चा हेल्पर का उपयोग करना

एक बार लोड होने पर आप इस तरह एक कैप्चा उत्पन्न कर सकते हैं:

$vals = array(
    'word'    => 'Random word',
    'img_path'    => './captcha/',
    'img_url'    => 'http://example.com/captcha/',
    'font_path'    => './path/to/fonts/texb.ttf',
    'img_width'    => '150',
    'img_height' => 30,
    'expiration' => 7200
    );

$cap = create_captcha($vals);
echo $cap['image'];
  • कैप्चा फ़ंक्शन के लिए जीडी इमेज लाइब्रेरी की आवश्यकता होती है।
  • केवल img_path और img_url की आवश्यकता है।
  • यदि "शब्द" की आपूर्ति नहीं की जाती है, तो फ़ंक्शन एक यादृच्छिक ASCII स्ट्रिंग उत्पन्न करेगा। आप अपने स्वयं के शब्द पुस्तकालय को एक साथ रख सकते हैं जिसे आप यादृच्छिक रूप से आकर्षित कर सकते हैं।
  • यदि आप TRUE TYPE फ़ॉन्ट का पथ निर्दिष्ट नहीं करते हैं, तो मूल बदसूरत GD फ़ॉन्ट का उपयोग किया जाएगा। "कैप्चा" फ़ोल्डर को लिखने योग्य होना चाहिए (666, या 777)
  • "समाप्ति" (सेकंड में) यह दर्शाता है कि हटाए जाने से पहले कैप्चा फ़ोल्डर में एक छवि कितनी देर तक रहेगी। डिफ़ॉल्ट दो घंटे है।

पूरा उदाहरण

यहाँ एक डेटाबेस के साथ उपयोग का एक उदाहरण है। उस पृष्ठ पर जहां कैप्चा दिखाया जाएगा, आपके पास कुछ इस तरह होगा:

$this->load->helper('captcha');
$vals = array(
    'img_path'    => './captcha/',
    'img_url'    => 'http://example.com/captcha/'
    );

$cap = create_captcha($vals);

$data = array(
    'captcha_time'    => $cap['time'],
    'ip_address'    => $this->input->ip_address(),
    'word'    => $cap['word']
    );

$query = $this->db->insert_string('captcha', $data);
$this->db->query($query);

echo 'Submit the word you see below:';
echo $cap['image'];
echo '<input type="text" name="captcha" value="" />';

फिर, उस पृष्ठ पर जो सबमिशन स्वीकार करता है, आपके पास कुछ इस तरह होगा:

// First, delete old captchas
$expiration = time()-7200; // Two hour limit
$this->db->query("DELETE FROM captcha WHERE captcha_time < ".$expiration);  

// Then see if a captcha exists:
$sql = "SELECT COUNT(*) AS count FROM captcha WHERE word = ? AND ip_address = ? AND captcha_time > ?";
$binds = array($_POST['captcha'], $this->input->ip_address(), $expiration);
$query = $this->db->query($sql, $binds);
$row = $query->row();

if ($row->count == 0)
{
    echo "You must submit the word that appears in the image";
}


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow