lukeme
发表于 2011-5-24 09:28:08
我也碰到过类似问题,最后直接修改了它自身的辅助函数。
qq402717704
发表于 2011-5-28 18:00:36
回复 rockey329 的帖子
什么函数? 是最新版本的吧?
rockey329
发表于 2011-5-28 23:00:38
回复 qq402717704 的帖子
2.0,看中文手册吧,那里有介绍的
phproot
发表于 2011-5-29 08:43:59
public function captcha($refresh='0') { $session_word = $this->session->userdata('captcha_word'); if (empty($session_word) || !empty($refresh)){ $vals = array( 'img_path' => './images/captcha/', 'img_url' => base_url().'images/captcha/', 'font_path' => './system/fonts/captcha.ttf', 'img_width' => '100', 'img_height' => '30', 'expiration' => '7200' ); $cap = create_captcha($vals); $data = array( 'captcha_image'=> $cap['image'], 'captcha_word' => $cap['word'] ); $this->session->set_userdata($data); return $cap['image']; }else{ return $this->session->userdata('captcha_image'); } }
phproot
发表于 2011-5-29 08:46:41
很简单,设定判断就好了。
每次刷新都把新的文件地址,以及生成的认证吗数据写入session。如果session里有认证码了,就不执行。如果没有,则执行。
设定一个参数,如果为1的时候则执行更新认证码。
之后搞一个认证码判断就好了。
phproot
发表于 2011-5-29 08:50:43
当然你也可以在用户执行刷新的时候去删除相关文件。但是现在服务器的硬盘都是TB级的。一个图片才占多少。就算你100万/秒的访问量好了。
一个文件4k*100万。才4个G。呵呵。1~2千G的硬盘,4G算什么哦。
super250
发表于 2011-6-1 16:26:06
system/helpers/captcha_helper.php
里面
改一下
if ($use_font == FALSE)
{
$font_size = 6;
// $x = rand(0, $img_width/($length/3));
$x = 3; $y = 0;
}
zyelec
发表于 2011-6-2 14:00:20
坐标设置的不能太靠边
麻雀
发表于 2011-6-28 09:24:00
为什么就没有一个完整的实例代码放出来呢~~~~~~这东西叫我等怎么学啊,手册里怎么还有数据库....太夸张了吧,刚学CI前面的SESSION还没完全弄熟,现在想学这个验证码,就是想看看这个验证是怎么写到SESSION中的,结果手册之中只字未提......如何学习啊
jeongee
发表于 2011-6-28 09:26:14
麻雀 发表于 2011-6-28 09:24 static/image/common/back.gif
为什么就没有一个完整的实例代码放出来呢~~~~~~这东西叫我等怎么学啊,手册里怎么还有数据库....太夸张了吧 ...
我建议你不要使用那个,你就在网上随便搜索个PHP 验证码类库放到libraries下就可以使用啦