推荐一个验证码生成的代码:cool-php-captcha
本帖最后由 cnjameschan 于 2010-4-13 18:56 编辑请刚入门PHP和CI,研究验证码中发现一个好东西,cool-php-captcha ,作者自己网站是被屏蔽了,好在有google的code,再一次感谢Google。
我稍加改动搞成一个model,实际使用也不会有session和验证码不一致的问题。
验证码样式:也是类Google的,我本身就是G-FAN,很喜欢。
http://cool-php-captcha.googlecode.com/files/examples.jpg
请访问:http://code.google.com/p/cool-php-captcha/ 下载源代码
直接下载:
稍加改动在CI中使用:没有技术含量,只是大家玩玩。
1、将captcha.php放进app/model目录
2、在你合适的控制器文件中加function getcode()
function getcode() {
//echo dirname(__FILE__).DIRECTORY_SEPARATOR.'<br>';
$this->load->model('Captcha');
$captcha = new Captcha();
$captcha->wordsFile = 'en.php';
$captcha->session_var = 'captcha';
$captcha->imageFormat = 'png';
$captcha->scale = 1;
$captcha->blur = true;
$aa=dirname(__FILE__).DIRECTORY_SEPARATOR;
$captcha->resourcesPath = $aa.'resources';
$captcha->CreateImage();
//echo $aa;
}
3、在合适的控制器中(验证传递过来的值)加入
/** Validate captcha */
$validate_captcha=false;
if (!empty($_POST['captcha'])) {
if (empty($_SESSION['captcha']) || trim(strtolower($_POST['captcha'])) != $_SESSION['captcha']) {
$validate_captcha=false;
//echo $_SESSION['captcha'].'<br>';
//echo $_POST['captcha'].'<br>';
} else {
$validate_captcha=true;
}
unset($_SESSION['captcha']);
}
4、在view中调用
<img src="<?php echo xxxx/getcode" id="captcha" title="点击图片更新" /><br/>忘了说整个resources文件夹放在控制器文件夹内吧 ★♂翼☆ 发表于 2012-4-25 22:15
不错,终于显示出来了,font路径要放对
font要放在哪里呀 不管font放在哪里,都是显示不出来呀 谢谢楼主分享,先收下了 不错的东西,谢谢了 这验证码可难破多了,呵呵 能不能讲讲怎么在CI里用啊,初学。。 我也是初学PHP+CI,呵呵,我把它的代码稍微分解一下,做成model,但是资源只好暂时放在控制器目录下,
如果有人要,我把源码贴出来吧。 回复 5# cnjameschan
贴出来吧,我需要 贴一下吧,老大,正好让大家学习一下:) 验证码漂亮呵呵 放ci里面 一般是放在自己的类库或者辅助函数里面的
model是放处理数据相关的东西的 不错 研究 学习 好东西,我喜欢