侯体宗的博客
  • 首页
  • Hyperf版
  • beego仿版
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

thinkPHP中验证码的简单实现方法

ThinkPHP  /  管理员 发布于 8年前   188

本文实例讲述了thinkPHP中验证码的简单实现方法。分享给大家供大家参考,具体如下:

运行效果图如下:

1.php端生成验证码函数

public function verify(){    // 验证码    import("@.Util.Image");    Image::buildImageVerify(4,1,'png',40,20,'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=4, $mode=1, $type='png', $width=48, $height=22, $verifyName='verify') {    import('ORG.Util.String');    $randval = String::randString($length, $mode);    session($verifyName, md5($randval));    $width = ($length * 10 + 10) > $width ? $length * 10 + 10 : $width;    if ($type != 'gif' && function_exists('imagecreatetruecolor')) {      $im = imagecreatetruecolor($width, $height);    } else {      $im = imagecreate($width, $height);    }    $r = Array(225, 255, 255, 223);    $g = Array(225, 236, 237, 255);    $b = Array(225, 236, 166, 125);    $key = mt_rand(0, 3);    $backColor = imagecolorallocate($im, $r[$key], $g[$key], $b[$key]);  //背景色(随机)    $borderColor = imagecolorallocate($im, 100, 100, 100); //边框色    imagefilledrectangle($im, 0, 0, $width - 1, $height - 1, $backColor);    imagerectangle($im, 0, 0, $width - 1, $height - 1, $borderColor);    $stringColor = imagecolorallocate($im, mt_rand(0, 200), mt_rand(0, 120), mt_rand(0, 120));    // 干扰    for ($i = 0; $i < 10; $i++) {      imagearc($im, mt_rand(-10, $width), mt_rand(-10, $height), mt_rand(30, 300), mt_rand(20, 200), 55, 44, $stringColor);    }    for ($i = 0; $i < 25; $i++) {      imagesetpixel($im, mt_rand(0, $width), mt_rand(0, $height), $stringColor);    }    for ($i = 0; $i < $length; $i++) {      imagestring($im, 5, $i * 10 + 5, mt_rand(1, 8), $randval{$i}, $stringColor);    }    Image::output($im, $type);}

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

2.页面端

直接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相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《Zend FrameWork框架入门教程》、《smarty模板入门基础教程》及《PHP模板技术总结》。

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

您可能感兴趣的文章:

  • thinkphp5.1验证码及验证码验证功能的实现详解
  • tp5(thinkPHP5框架)captcha验证码配置及验证操作示例
  • ThinkPHP5.0框架验证码功能实现方法【基于第三方扩展包】
  • thinkPHP5.0框架验证码调用及点击图片刷新简单实现方法
  • thinkPHP实现的验证码登录功能示例
  • thinkphp3.2实现在线留言提交验证码功能
  • ThinkPHP实现生成和校验验证码功能
  • Thinkphp3.2实用篇之计算型验证码示例
  • ThinkPHP5&5.1实现验证码的生成、使用及点击刷新功能示例


  • 上一条:
    thinkPHP js文件中U方法不被解析问题的解决方法
    下一条:
    thinkphp实现分页显示功能
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • thinkphp + mongodb项目中数据加载慢问题分析及解决(0个评论)
    • thinkphp6框架中封装redis操作类(0个评论)
    • thinkphp6框架中实现定时任务功能流程步骤(0个评论)
    • Thinkphp5.1框架中实现Session+Redis会话共享流程步骤(0个评论)
    • TP5框架版本5.0.10安全漏洞根据官方补丁修复,也是本站安全漏洞修复(0个评论)
    • 近期文章
    • 在go+gin中使用"github.com/skip2/go-qrcode"实现url转二维码功能(0个评论)
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(0个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 欧盟关于强迫劳动的规定的官方举报渠道及官方举报网站(0个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf文件功能(0个评论)
    • Laravel从Accel获得5700万美元A轮融资(0个评论)
    • 在go + gin中gorm实现指定搜索/区间搜索分页列表功能接口实例(0个评论)
    • 在go语言中实现IP/CIDR的ip和netmask互转及IP段形式互转及ip是否存在IP/CIDR(0个评论)
    • PHP 8.4 Alpha 1现已发布!(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2016-10
    • 2017-07
    • 2017-08
    • 2017-09
    • 2017-10
    • 2017-12
    • 2018-01
    • 2018-02
    • 2020-03
    • 2021-07
    • 2021-12
    • 2022-05
    • 2022-06
    • 2022-09
    • 2023-01
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客