ci 之验证码
为了方便,把 system/system/helpers/captcha_helper.php复制放在 application/helpers/文件夹里面
手册上面推荐用数据库,但个人认为用 $_SESSION方便些(session必须开启)
打开 application/helpers/captcha_helper.php文件,在判断 $word变量之后加上 $_SESSION['sess_validate'] = $word;
即在:
$length = strlen($word);之前加上$_SESSION['sess_validate'] = $word;即可
其实 $_SESSION['sess_validate']中的sess_validate随便自己命名,与别的不冲突就行了, 新建一个控制器,如 yes.php
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); class Yes extends CI_Controller { //根据手册设置验证码的参数,我是在源码里面设置为 4位验证码,且用的全是数字
public function __construct()
{
parent::__construct();
session_start();
} // 初始化,即初次使用
function validatecode()
{
$this->load->helper('captcha');
$vals = array(
'img_path' => './captcha/',
'img_url' => base_url() . 'captcha/',
'img_width' => '',
'img_height' => ,
'expiration' =>
); $cap['img'] = create_captcha($vals);
$this->load->view('validate', $cap);
} // 刷新验证码用
function ajaxvalidate()
{
$this->load->helper('captcha');
$vals = array(
'img_path' => './captcha/',
'img_url' => base_url() . 'captcha/',
'img_width' => '',
'img_height' => ,
'expiration' =>
); $cap['img'] = create_captcha($vals);
echo $_SESSION['sess_validate'] . $cap['img']['image']; } }
?>
展示页面(即模板文件((validate.php))可这样用(自己引入 jquery库),提交前可用 js 先检测一次是否输入正确的验证码 <form action="" method="post">
<input type="hidden" name="_url" id="vurl" value="<?php echo site_url('yes/ajaxvalidate'); ?>" />
<input type="hidden" name="validate" id="validate" value="<?php echo $_SESSION['sess_validate'];?>" />
<input type="text" name="mycode" value="" />
<br />
<a id="ff"><?php echo $img['image']; ?></a><a id="clickme">点击刷新</a><br />
<input type="submit" name="sub" value="submit" />
</form>
<script type="text/javascript">
$(document).ready(function(){
$("#clickme").click(function(){
var _url = $('#vurl').val();
$.ajax({
url:_url,
type:'post',
async:false,
data:{name:''},
success: function(data)
{
$('#ff').html(data.substr());
$('#validate').val(data.substr(,));
}
}); });
}); </script>
以上只是说明方法,其实在一个页面中,把上面的两个方法融到别的控制器即可,这样就可以运用了

ci验证码的更多相关文章

  1. CodeIgniter(CI)框架中的验证码

    在CodeIgniter框架中,CI本身自带了验证码,但是查看文档的时候,发现: 需要新建一个表,用来存储验证码信息.因为习惯了session存储验证码信息,所以我把我认为比较好看的验证码应用在了CI ...

  2. CI框架2.x的验证码中所遇问题解决

    用php版本是5.6,CI框架版本是2.x,在使用验证码(captcha)时,遇到一些问题. 首先,我查看框架手册,说必需的两个参数是"img_url",“img_path”,其他 ...

  3. php CI框架实现验证码功能和增强验证码安全性实战教程

    php CI框架实现验证码功能和增强验证码安全性实战教程 CodeIgniter简称CI是最流行的一个php MVC框架之一,本人讲从实际项目使用中写系列实战经验,有别与其他的理论讲解文章,会附上实战 ...

  4. CI框架中,扩展验证码类。

    使用CI框架的朋友,应该都知道CI框架的的验证码辅助函数,不太好用.它需要写入到数据库中,然后再进行比对. 大家在实际项目中,好像不会这样去使用,因为会对数据库造成一定的压力. 所以,我们还是利用se ...

  5. CI中的验证码

    CI中的验证码相对来说使用非常方便直接加载类调用函数以及一些配置,代码如上,比较简单,具体函数可在CI手册的辅助函数参考CAPTCHA辅助函数中查询,CI中的验证码是直接生成验证码图片在你自己创建的C ...

  6. 三十一、CI框架之使用验证码

    一.CI的验证码功能用着很是舒服,需要在根目录下新建一个captcha的验证码文件夹用于存放生产的图片,代码如下: 二.浏览器效果如下: 总结:关于验证码生产函数,有很多参数可以设置,包括字体,验证码 ...

  7. CI 点击图片刷新验证码

    <img src="<?php echo site_url('home/login/code'); ?>" onclick= this.src="< ...

  8. Python验证码6位自动生成器

    Python验证码6位自动生成器

  9. ci 基础知识

    //建立虚拟主机 2.下载完毕后,解压,并将其复制粘贴到程序的主目录(d:/wamp/xmall/),然后再将其重命名为"myshop",那么"myshop" ...

随机推荐

  1. JAVA_3lesson

    程序设计守则 为了增加程序的可扩展性,维护性.可以采用interface, abstract   可以抽象出来:共同的方法,属性   开发系统时,主体构架使用接口,接口构成了系统的骨架.   要遵循开 ...

  2. windows蓝屏代码大全及常见蓝屏解决方案

    对于以下的代码查询建议使用ctrl+F查询,而且很多蓝屏与黑屏的问题多是最近操作引起的,例如更新驱动,安装新的硬件.软件--把相关的配置调到最近的正常状况大多可以解决,确实不行时方可考虑重装系统,解决 ...

  3. Step2:配置Oracle Dataguard

    接着step1我用Rman duplicate测试下. 1,2两步请参考step1中的1,2 3.startup nomount (standby),一定要是nomount. 4.rman dupli ...

  4. 利用...来字符检測(swift)

    利用...来字符检測(swift) by 伍雪颖 let test = "LesvIo" let interval = "a"..."z" ...

  5. nginx 安装手记 分类: Nginx 服务器搭建 2015-07-14 14:28 15人阅读 评论(0) 收藏

    Nginx需要依赖下面3个包 gzip 模块需要 zlib 库 ( 下载: http://www.zlib.net/ ) zlib-1.2.8.tar.gz rewrite 模块需要 pcre 库 ( ...

  6. [置顶] android LBS的研究与分享(附PPT)

    早上起床后想想以前的工作有什么可以分享的... 两年前,前公司在做一个陌生人交友的社交软件(比陌陌还早),需要研究LBS的相关工作(这里面主要研究的是Google定位)... 一.简要调研结果 很多 ...

  7. 判断jsp中是否存在某个javascript函数

    //判断父页是否存在某个javascript函数 function fnExist(fnName) { //return fnName in this && eval(fnName) ...

  8. 进程环境之setjmp和longjmp函数

    在C中,goto语句是不能跨越函数的,而执行这样跳转功能的是函数setjmp和longjmp.这两个函数对于处理发生在深层嵌套函数调用中的出错情况是非常有用的. setjmp和longjmp函数也称为 ...

  9. Thread和Runnable、run和start的区别

    多线程可以通过两种方式来创建: 一.通过继承Thread类. 二.通过实现Runnable接口. 那么中两种方式到底有什么区别呢?那种方式更好些呢? 先看看几个简单的Demo: Demo1 publi ...

  10. arcmap10如果判断一个面是否含洞

    使用字段计算器,使用python !Shape.isMultipart!结果为true就是,false不是