利用CI框架做一个随机的验证码识别

在CI的中文手册上,有一些有关于验证码识别的代码和原理讲解,下面废话不多说,直接上代码。

	public function __construct()
{
	//切记在控制器的构造函数中一定先继承父类控制器的构造函数
	   parent::__construct();$this->load->helper('captcha');
}
	public function test_gd(){
		$vals = array(
				'word'          => rand(100000,999999)  ,        //验证码上显示的字符,可以写成函数,例如:rand(100000,999999)
				'img_path'      => 'data/captcha/',    //验证码保存路径
				'img_url'       => '../../data/captcha', //验证码图片url
				'font_path'     => './path/to/fonts/texb.ttf',   //验证码上字体
				'img_width'     => '150',        //验证码图片宽度
				'img_height'    => 30,           //验证码图片高度
				'expiration'    => 7200,         //验证码图片删除时间
				'word_length'   => 8,            //验证码长度
				'font_size'     => 16,           //验证码字体大小
				'img_id'        => 'Imageid',
				'pool'          => '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ',
				'colors'        => array(
						'background' => array(255, 255, 255),
						'border' => array(255, 255, 255),
						'text' => array(0, 0, 0),
						'grid' => array(255, 40, 40)
				)
        );

		$cap = create_captcha($vals);
		echo($cap['image']);
		
	}

这种方式的缺点是,所有生成的验证码的图片都会存放在同一个文件夹里。如果访问量比较大的话,会造成内存占用量比较大的问题。网上有很多解决这种问题的方式。可以参考着改进一下。如果我有时间的话,我会写一个放在博客上。


还有一种生成验证码的比较好的方式。就是用php写一个画板,画板不变,变的是生成的随机的数字,这种方式也是大多数人所用到的。



发布了134 篇原创文章 · 获赞 23 · 访问量 9万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览