xusw444 发表于 2017-10-26 23:20:56

看到很多说验证码的,我来分享下我的方法

原先做验证码都是用第三方的,后来发现好像CI有验证码类,就研究了下,其实也很简单
首先建立一个公共类common(验证码多处使用,放到公共类里方便),建立验证码的方法,直接输入图片
lass Common extends CI_Controller {

        /**
       公共功能
       */
       
       /**验证码**/
        public function captcha()
        {
                $this->load->helper('captcha');
                $this->load->helper('url');
                $this->load->library('session');
                $vals = array(
    //'word'      => 'Random word',
    'img_path'=> './captcha/',//目录需要可写属性
    'img_url'   => base_url().'captcha/',
    'font_path' =>'/xxx/font.ttf',//使用服务器绝对路径,建议使用外部字体,不然字体大小不能定义
    'img_width' => '95',//宽高根据自身项目调整
    'img_height'    => 40,
    'expiration'    => 60,//一般来说60秒够了
    'word_length'   => 4,
    'font_size' => 22,
    'img_id'    => 'Imageid',
    'pool'      => '23456789abcdefghjkmnpqrstuvwxyzABCDEFGHJKMNPQRSTUVWXYZ',//我把1iol0OLI全部删除了,太反人类了


    'colors'    => array(
      'background' => array(255, 255, 255),
      'border' => array(255, 255, 255),
      'text' => array(0, 0, 0),
      'grid' => array(15, 136, 235)
    )
);

$cap = create_captcha($vals);//创建验证码
$word= $cap['word'];
$this->session->set_userdata('captcha', $word);//把字符存储到session里

$fileres = file_get_contents(base_url().'captcha/'.$cap['time'].'.jpg');//读取生成的图片
header('Content-type: image/jpeg'); //定义图片
echo $fileres;


        }
       
}
前端直接访问地址

<div class="group-ipt verify">
                                        <input type="text" name="verify" id="verify" class="ipt" placeholder="输入验证码" required>
                                        <img src="<?php echo site_url('common/captcha');?>" class="imgcode">
                                </div>


然后再写一段点击刷新的JS

$('.imgcode').hover(function(){
                layer.tips("看不清?点击更换", '.verify', {
                      time: 6000,
                      tips:
                    })
        },function(){
                layer.closeAll('tips');
        }).click(function(){
                $(this).attr('src','<?php echo site_url('common/captcha');?>');
        });
       





完美!

情、非得已 发表于 2017-10-28 16:48:49

先收藏了,应该以后会用到,多谢;P

Sam@ 发表于 2017-10-29 14:16:20

收藏了
页: [1]
查看完整版本: 看到很多说验证码的,我来分享下我的方法