ci验证码
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验证码的更多相关文章
- CodeIgniter(CI)框架中的验证码
在CodeIgniter框架中,CI本身自带了验证码,但是查看文档的时候,发现: 需要新建一个表,用来存储验证码信息.因为习惯了session存储验证码信息,所以我把我认为比较好看的验证码应用在了CI ...
- CI框架2.x的验证码中所遇问题解决
用php版本是5.6,CI框架版本是2.x,在使用验证码(captcha)时,遇到一些问题. 首先,我查看框架手册,说必需的两个参数是"img_url",“img_path”,其他 ...
- php CI框架实现验证码功能和增强验证码安全性实战教程
php CI框架实现验证码功能和增强验证码安全性实战教程 CodeIgniter简称CI是最流行的一个php MVC框架之一,本人讲从实际项目使用中写系列实战经验,有别与其他的理论讲解文章,会附上实战 ...
- CI框架中,扩展验证码类。
使用CI框架的朋友,应该都知道CI框架的的验证码辅助函数,不太好用.它需要写入到数据库中,然后再进行比对. 大家在实际项目中,好像不会这样去使用,因为会对数据库造成一定的压力. 所以,我们还是利用se ...
- CI中的验证码
CI中的验证码相对来说使用非常方便直接加载类调用函数以及一些配置,代码如上,比较简单,具体函数可在CI手册的辅助函数参考CAPTCHA辅助函数中查询,CI中的验证码是直接生成验证码图片在你自己创建的C ...
- 三十一、CI框架之使用验证码
一.CI的验证码功能用着很是舒服,需要在根目录下新建一个captcha的验证码文件夹用于存放生产的图片,代码如下: 二.浏览器效果如下: 总结:关于验证码生产函数,有很多参数可以设置,包括字体,验证码 ...
- CI 点击图片刷新验证码
<img src="<?php echo site_url('home/login/code'); ?>" onclick= this.src="< ...
- Python验证码6位自动生成器
Python验证码6位自动生成器
- ci 基础知识
//建立虚拟主机 2.下载完毕后,解压,并将其复制粘贴到程序的主目录(d:/wamp/xmall/),然后再将其重命名为"myshop",那么"myshop" ...
随机推荐
- jq问题处理
1.同一个事件,点击显示和隐藏 $(document).ready(function(){ $('.container .nav-header').click(function(){ var chan ...
- 新建虚拟SAN
在SCVMM中,在每台主机上新建虚拟SAN(所使用的FC适配器必须一起用NPIV,否则不可用),新建完成后,在其主机的Hyper-V管理器中也可以看到 每台主机上的虚拟SAN名称必须相同 之后就 ...
- ThinkPHP3.1 常量参考
预定义常量 常量 说明 URL_COMMON=0 普通模式 URL URL_PATHINFO=1 PATHINFO URL URL_REWRITE=2 REWRITE URL URL_COMPAT=3 ...
- 集合(Collection,set,list,map)
package cn.hncu.col.col; import java.util.ArrayList;import java.util.Collection;import java.util.Has ...
- axis2调用webservice
public static long TIMEOUTINMILLISECONDS=100000; /** * 调用webservice * @param url webserviceURL * @pa ...
- Ubuntu下MySql配置
Ubuntu下MySql配置 安装MySQL 命令: sudo apt-get install mysql-server MySQL初始配置及管理 启动MySQL mysql start : mysq ...
- Windows redis集群搭建
一.Windows下Redis安装 下载地址https://github.com/dmajkic/redis/downloads,下载到的Redis支持32bit和64bit.根据自己实际情况选择,本 ...
- ASP.NET问题处理---“数据请求超时错误“”
数据请求超时,一般有2中解决方式: 1.页面AJAX处理数据时延长时间: 2.后台数据库连接取数据时延长时间. 由于我的后台数据库连接取数据为循环读取数据,所以不存在超时问题,这里具体说说如何修改AJ ...
- SetTimer的使用
SetTimer函数用于创建一个计时器,KillTimer函数用于销毁一个计时器.计时器属于系统资源,使用完应及时销毁. SetTimer的函数原型如下:UINT_PTR SetTimer( HWND ...
- NSArray 常用的一些方法
- (NSUInteger) count; 返回数组中元素个数 - (id)objectAtIndex:(NSUInteger)index; 返回一个id类型的数组指定位置元素 - (id)lastO ...