|
本帖最后由 kycool 于 2012-10-18 13:12 编辑
题外话:
在论坛里看到很多发了很多关于CI验证码的帖子,有心得,也有各种求解;之前本来是想发一个关于验证码的帖子,可能是自己太懒了,一直没有发。我用CI没有查找什么资料,只是深入探究手册和captcha_helper的源码,所有问题都不是问题。有些人一遇到问题就发帖求解,请先问问自己有没有把所有的方法都尝试下,源码都摆在那里,为什么不尝试着去探究下源码呢。话说多了,直接上代码
一 验证码的使用
用帮助方法的之前,请先查看帮助文件源码,看下你所有方法会返回个什么结果;如果你看都不看一下,以后一遇到问题就会头大。
create_captcha这个方法会返回一个关联数组array('word' => $word, 'time' => $now, 'image' => $img);
实例:
public function show_captcha(){ $vals=array(
'word'=>rand(1000,10000),//显示纯数字,这里有人不知道怎么做
'img_path'=>'./captcha/',
'img_url'=>base_url()."captcha/",
'img_width'=>'80',
'img_height'=>'30',
'expiration'=>5
);
$cap=create_captcha($vals);
$img=$cap['image'];
$time=$cap['time'];
$num=$cap['word'];
echo $img."<br/>------------<br/>".$time."<br/>------------<br/>".$num."<br/>-------------<br/>";
}
照葫芦画瓢运行下你就会明白了
有些问题我不想说的太清楚,手册说的很明白
二 BUG
2.1 自定义宽度所显示的数字超出边框的问题
打开captcha_helper源文件,
if ($use_font == FALSE) {
$font_size = 5;
//$x = rand(0, $img_width/($length/3));
$x=rand(0,20);//修改
$y = 0;
}
else
{
$font_size = 16;
//$x = rand(0, $img_width/($length/1.5));
$x=rand(0,20);//修改
$y = $font_size+2;
}
如果不懂,仔细看源码
2.2验证码session的问题
这根本不是个问题,自己添加相应的逻辑就可以达到你的要求;如果不会写,这是你自己的问题
|
|