cnjameschan 发表于 2010-4-11 18:35:31

推荐一个验证码生成的代码: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文件夹放在控制器文件夹内吧

sddong 发表于 2014-8-26 09:16:58

★♂翼☆ 发表于 2012-4-25 22:15
不错,终于显示出来了,font路径要放对

font要放在哪里呀

sddong 发表于 2014-8-26 10:41:48

不管font放在哪里,都是显示不出来呀

aqxinzhuan 发表于 2014-12-19 11:21:42

谢谢楼主分享,先收下了

墨剑 发表于 2010-4-12 14:56:59

不错的东西,谢谢了

zycbob 发表于 2010-4-12 16:31:01

这验证码可难破多了,呵呵

cisso 发表于 2010-4-12 17:43:21

能不能讲讲怎么在CI里用啊,初学。。

cnjameschan 发表于 2010-4-12 19:56:11

我也是初学PHP+CI,呵呵,我把它的代码稍微分解一下,做成model,但是资源只好暂时放在控制器目录下,
如果有人要,我把源码贴出来吧。

why718 发表于 2010-4-13 08:42:34

回复 5# cnjameschan


   贴出来吧,我需要

cisso 发表于 2010-4-13 08:57:37

贴一下吧,老大,正好让大家学习一下:)

xiaoniao 发表于 2010-4-13 09:03:09

验证码漂亮呵呵   放ci里面 一般是放在自己的类库或者辅助函数里面的

model是放处理数据相关的东西的

轻风php 发表于 2010-4-18 12:42:16

不错 研究 学习

376173001 发表于 2010-4-19 15:00:10

好东西,我喜欢
页: [1] 2 3 4 5
查看完整版本: 推荐一个验证码生成的代码:cool-php-captcha