makaleler / Php / Codeigniter Captcha Yenileme 'Refresh'

Codeigniter Captcha Yenileme 'Refresh'

15.01.2015 12:45:33

Codeigniter Captcha kodunu post etmeden yenileme işlemi

Captcha kodlarının okunabilirliğini arttırması için yenileme butonu ekleyerek çalıştırılması son kullanıcı için kolaylık sağlayacaktır.

Öncelikle controller sayfamızda düzenlemelerimizi yapalım


vim application/controller/test.php
# bu fonksiyon sabit olarak kullanacağımız fonksiyondur bunu direkt html olustururken cagiracaz.
    public function get_captcha()
    {   
        $this->load->library('form_validation');
        $this->load->helper('captcha');

        $vals = array(
         'img_path'   => './captcha/',
         'img_url'    => base_url().'captcha/',
         'font_path'  => './sistemk/fonts/texb.ttf',
         'img_width'  => '150',
         'img_height' => 30,
         'expiration' => 7200,
         'img_name'     => 'img_captcha'
        );
        return create_captcha($vals);
    }

# bu fonksiyon ise jquery ile çağıracağımız kısımdır dinamik olarak oluşturacağımız koddur
    public function get_ajax_captcha()
    {
        $this->load->library('form_validation');
        $this->load->helper('captcha');

        $vals = array(
         'img_path'   => './captcha/',
         'img_url'    => base_url().'captcha/',
         'font_path'  => './sistemk/fonts/texb.ttf',
         'img_width'  => '150',
         'img_height' => 30,
         'expiration' => 7200,
         'img_name'     => 'img_captcha'
        );
        $tmp = create_captcha($vals);
# önemli olan nokta daha sonra post işleminde kullanacağımız captcha değerini bir session a atıyoruz.
        $this->session->set_userdata('captcha_word',$tmp['word']);
        echo $tmp['image'];
    }

# controller kısmında captchayı kullanacağımız alandaki açıklamaları kısa yapacağım mantığı anlaşılması yeterli olacaktır.
    public function index()
    {
        $this->load->library('form_validation');
        $this->data['cap'] = $this->get_captcha();
        $this->form_validation->set_rules('captcha', 'CAPTCHA', 'trim|required|xss_clean|callback_GuvenlikKontrolu');
            if ($this->form_validation->run() == FALSE)
            {
                $this->session->set_userdata('captcha_word',$this->data['cap']['word']);
                $this->load->view('temsilci/login',$this->data);
            }
            else
............
    }

# bu kısım ise captcha dogrulugunu yaptigimiz kisimdir.
    #------------------------------------------------
    # guvenlik kodu kontrolu
    function GuvenlikKontrolu($sValue)
    {
       if($sValue != $this->session->userdata('captcha_word'))
       {
           $this->form_validation->set_message('GuvenlikKontrolu', 'Girdiğiniz Güvenlik Kodu yanlıştır. Lütfen tekrar deneyiniz.');
           return FALSE;
       }
    }

Şimdi view kısmını düzenleyelim çok karışmaması için gerekli kısımların örneklerini yazacağım


vim aplication/view/test.php
                <script type="text/javascript" src="js/jquery-1.4.4.min.js"></script>
..........
                <div style="float:left;width:400px;margin-left:150px;margin-bottom:3px;">
                <div id="div_captcha" style="float:left;margin-right:10px;"><?php echo $cap['image'];?></div>
                <a id="refresh_captcha" style="float:left;cursor: pointer;">
                    <img name="image" src="/images/reload.png"/>
                </a>
                <label for="captcha">Captcha:</label>
                <input class="txtInput" id="captcha" name="captcha" size="35" value="" type="text"><br>
                <div style="float:left; width:100%;background-color:#CCCCCC;">
                <?php echo form_error('captcha'); ?>
                </div>
..........
<script>
    $('#refresh_captcha').click(function(){
        $.get( "/temsilci/get_ajax_captcha", function( data ) {
            $( '#div_captcha' ).html( data );
        });
    });
</script>


İlgili konular: Codeigniter Captcha Ekleme
yazar husonet

Yorumlar

Bu içerik için sizde yorum yapabilirsiniz!
anasayfa | makaleler | haberler | dosyalar | linkler | hakkımızda