1.php端生成验证码函数

public function verify(){
// 验证码
import("@.Util.Image");
Image::buildImageVerify(,,'png',,,'verify');
}
 /**
* 生成图像验证码
* @static
* @access public
* @param string $length 位数
* @param string $mode 类型
* @param string $type 图像格式
* @param string $width 宽度
* @param string $height 高度
* @return string
*/
static function buildImageVerify($length=, $mode=, $type='png', $width=, $height=, $verifyName='verify') {
import('ORG.Util.String');
$randval = String::randString($length, $mode);
session($verifyName, md5($randval));
$width = ($length * + ) > $width ? $length * + : $width;
if ($type != 'gif' && function_exists('imagecreatetruecolor')) {
$im = imagecreatetruecolor($width, $height);
} else {
$im = imagecreate($width, $height);
}
$r = Array(, , , );
$g = Array(, , , );
$b = Array(, , , );
$key = mt_rand(, ); $backColor = imagecolorallocate($im, $r[$key], $g[$key], $b[$key]); //背景色(随机)
$borderColor = imagecolorallocate($im, , , ); //边框色
imagefilledrectangle($im, , , $width - , $height - , $backColor);
imagerectangle($im, , , $width - , $height - , $borderColor);
$stringColor = imagecolorallocate($im, mt_rand(, ), mt_rand(, ), mt_rand(, ));
// 干扰
for ($i = ; $i < ; $i++) {
imagearc($im, mt_rand(-, $width), mt_rand(-, $height), mt_rand(, ), mt_rand(, ), , , $stringColor);
}
for ($i = ; $i < ; $i++) {
imagesetpixel($im, mt_rand(, $width), mt_rand(, $height), $stringColor);
}
for ($i = ; $i < $length; $i++) {
imagestring($im, , $i * + , mt_rand(, ), $randval{$i}, $stringColor);
}
Image::output($im, $type);
}

生成图片的同时,传入到session中。

2.页面端

<img id="verifyImg" src="{sh::U('Agent/Login/verify')}" onClick="changeVerify()" title="点击刷新验证码" /></div>

直接src中调用。

点击触发改变。

function changeVerify(){
verifyURL = "{sh::U('Agent/Login/verify')}";
$("#verifyImg").attr("src",verifyURL);
return false;
}

3.后台验证,对比post字段与session中的验证码是否一致。

if($_SESSION['verify'] != md5($_POST['verify'])) {
$this->error('验证码错误!');
}

thinkphp中的验证码的实现的更多相关文章

  1. ThinkPHP中处理验证码的问题

    Think\Verify类可以支持验证码的生成和验证功能. 生成验证码的最简单的代码如下: public function verify(){        $Verify = new \Think\ ...

  2. ThinkPHP中处理验证码不显示问题

    在调用验证码之前加上 ob_clean(); 不显示验证码的代码: public function verify(){               $Verify = new \Think\Verif ...

  3. ThinkPHP中的验证码不出现的解决办法

    出现这种问题的原因可能是因为代码写的不规范,出现了其他的输出:解决办法: 原代码:     public function captchaAction()    {        $verify = ...

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

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

  5. ThinkPHP简单的验证码实现

    ThinkPHP简单的验证码实现 写一个最简单的TP验证码. 写Controller 首先在Controller/IndexController.class.php(简称Index)文件中编辑: &l ...

  6. thinkphp 中模型究竟是什么用?

    thinkphp 中模型究竟是什么用? 问题 似乎所有的操作都能在控制器中就能完成,模型除了几种验证之外,究竟是干什么用的,这个问题一直没理解透 解答 解答一 要明白这个问题,必须了解 MVC 历史. ...

  7. [转]ThinkPHP中实例化对象M()和D()的区别,select和find的区别

    1.ThinkPHP中实例化对象M()和D()的区别 在实例化的过程中,经常使用D方法和M方法,这两个方法的区别在于M方法实例化模型无需用户为每个数据表定义模型类,如果D方法没有找到定义的模型类,则会 ...

  8. 在IIS下部署Thinkphp项目,验证码不能显示的解决办法

    由于公司租用的是虚拟空间,而且用的是IIS服务器,所以部署PHP的时候就出现很多问题:比如昨天就碰到这个问题:在IIS下部署Thinkphp项目,验证码不能显示 这是生成验证码的方法: // 制作专门 ...

  9. ThinkPHP中疑难笔记

    不但要记住核心的东西, 还要记住 相关的 东西: 如php cli的版本是 5.6.14 bulit: sep 30, 2015 tp中, 通常说的系统就是框架; 项目就是 "应用程序&qu ...

随机推荐

  1. Tomcat中HTTP与AJP区别

    Tomcat: HTTP与AJP区别 Tomcat服务器通过Connector连接器组件与客户程序建立连接,Connector组件负责接收客户的请求,以及把Tomcat服务器的响应结果发送给客户. 默 ...

  2. 地图Legend控件的使用

    http://support.esrichina-bj.cn/2011/0318/1150.html

  3. 第一章 Burp Suite 安装和环境配置

    Burp Suite是一个集成化的渗透测试工具,它集合了多种渗透测试组件,使我们自动化地或手工地能更好的完成对web应用的渗透测试和攻击.在渗透测试中,我们使用Burp Suite将使得测试工作变得更 ...

  4. Django进阶Model篇007 - 聚集查询和分组查询

    接着前面的例子,举例聚集查询和分组查询例子如下: 1.查询人民邮电出版社出了多少本书 >>> Book.objects.filter(publisher__name='人民邮电出版社 ...

  5. DOCKER实战案例

    操作系统:[root@yz6205 ~]# docker search busyboxNAME DESCRIPTION STARS OFFICIAL AUTOMATEDbusybox Busybox ...

  6. uboot配置过程详解1

    x210_sd_config : unconfig @$(MKCONFIG) $(@:_config=) arm s5pc11x x210 samsung s5pc110 @echo "TE ...

  7. 理解 EventLoop

    链接 链接 node 浏览器 执行顺序有差异 macrotask microtask 一个线程会有 堆 栈 消息队列;  栈函数执行是用的, 堆用了存放定义的对象, 消息队列来处理异步的操作 a() ...

  8. Java加载jar文件并调用jar文件当中有参数和返回值的方法

    在工作当中经常遇到反编译后的jar文件,并要传入参数了解其中的某些方法的输出,想到Java里面的反射可以实现加载jar文件并调用其中的方法来达到自己的目的.就写了个Demo代码. 以下的类可以编译生成 ...

  9. pip国内镜像(清华大学镜像)

    网上搜到的pip国内镜像大部分是豆瓣的 http://pypi.douban.com/simple/ 但是根本不全,很多包没有 所以推荐清华大学的 https://pypi.tuna.tsinghua ...

  10. 哥伦比亚大学 Columbia University Image Library (COIL-20) 数据集

    转自:http://blog.csdn.net/garfielder007/article/details/51480820,这个人博客里面有不错的 数据集,http://blog.csdn.net/ ...