通过上一篇 PHP gd简单画图学习后。这篇将继续探索实现PHP图片验证码的实现。效果图如下

为什么需要验证码?

验证码设计。验证码一使用于用户注册和登录。主要是防止机器批量注册用户或机器频繁测试登录

此处的核心点有两个。第一是图片验证码实现。第二是如果在验证页面检验输入的验证码是否正确

首先我们先实现验证码

新建一个cfv(Verification Code).php文件,为单独生成验证码文件

创建一个150*40px的画布,以及设置需要的颜色等:

$img = imagecreatetruecolor(150,40);

$white = imagecolorallocate($img,240,241,218);

$gray = imagecolorallocate($img,100,233,12);

$orange = imagecolorallocate($img,168,170,19);

imagefill($img,0,0,$white);//填充画布

合并一个从0-9,a-z,A-Z数组,$arr = array_merge(range(0,9),range(a,z),range(A,Z));

打乱数组 shuffle($arr);

从数组里面取出4个,并且以" "空格连接,组成验证码需要的字符串 $str = join(" ",array_slice($arr,0,4));

画验证码文字到画布上 imagettftext($img,20,0,10,30,$gray,"my.TTF",$str);

imagettftext (resource$image ,float$size ,float$angle ,int$x ,int$y ,int$color ,string$fontfile ,   string$text ) $image:画布 $size:字体大小 $angle:字体偏转角度 $x:字体左下x坐标 $y:字体左下y坐标 $color 字体颜色 $fontfile()在C:\Windows\Fonts下任意取一个.TTF文件$text 验证码文字

为了防止机器频繁测试。所以得增加干扰线 。如下增加了30条干扰线

for ($i=0; $i <30 ; $i++) {

imagearc($img, mt_rand(0,150), mt_rand(0,40), mt_rand(0,30), mt_rand(0,30), mt_rand(0,360),                         mt_rand(0,360), $orange);}

最后画出该验证码图像,并且释放资源   imagejpeg($img);imagedestroy($img);

创建表单,这儿随便创建了一个表单。代码直接上图

最后是验证提交的表单验证码信息是否正确

由于我们验证的php和验证码的php文件不同,所以改怎么在验证码图片中获取文字作比较?此处停留思考1分钟^-^

这时候我们需要借助Session,关于Session详细运用,这儿不做深究。只略讲一下这儿的Session运用

开启Session session_start();需要在验证码最上面开启。注意这句代码前不能有输出比如echo......

把验证码字符串存入Session  $_SESSION['vcode']=$str;

在验证的php文件中取出Session $scode = $_SESSION['vcode']

checkrgis.php 里面需要拿到表单传入的验证码,在和Session的验证码做比较。这样即可验证。代码如下

session_start();

$scode = $_SESSION['vcode'];

$pvfc = $_POST['vfc'];

$code = strtolower(str_replace(" ","",$scode));

$fvc = strtolower(str_replace(" ","",$pvfc));

注意:获得的用户输入的验证码和Session的验证码都需要把空格全部消除,在转小写后比较。对应上面4,5句代码

源码下载地址https://pan.baidu.com/s/1k4xn8zdLC9yKvFEGUryN4g  提取码 st8f

PHP登录带图片,PHP登录注册完整图片验证码实现相关推荐

  1. jQuery带背景切换登录注册表单

    jQuery带背景切换登录注册表单 原始HTML+CSS+JS页面设计,这是一个不错的登录网页制作,画面精明,非常适合初学者学习使用. 作品介绍 1.网页作品简介方面 :jQuery带背景切换登录注册 ...

  2. python爬虫token_Python入门:模拟登录(二)或注册之requests处理带token请求

    转自http://blog.csdn.net/foryouslgme/article/details/51822209 首先说一下使用Python模拟登录或注册时,对于带token的页面怎么登录注册模 ...

  3. python 验证码图片 模拟登录_【python】带图片验证码的登录自动化实战

    近期在跟进新项目的时候,整体的业务线非常之长,会一直重复登录退出不同账号的这个流程,所以想从登录开始实现部分的自动化.因为是B/S的架构,所以采用的是selenium的框架来实现.大致实现步骤如下: ...

  4. python 登陆网站图片验证,用python登录带弱图片验证码的网站

    上一篇介绍了使用python模拟登陆网站,但是登陆的网站都是直接输入账号及密码进行登陆,现在很多网站为了加强用户安全性和提高反爬虫机制都会有包括字符.图片.手机验证等等各式各样的验证码.图片验证码就是 ...

  5. 使用C#登录带验证码的网站

    我在上一篇文章中已经讲解了一般网站的登录原来和C#的登录实现,很多人问到对于使用了验证码的网站该怎么办,这里我就讲讲验证码的原理和对应的登录方法. 验证码的由来 几年前,大部分网站.论坛之类的是没有验 ...

  6. 从零开始微信机器人(一):wxpy简介(登录、消息发送、注册回复)

    本文最初发布于简书:从零开始微信机器人(一):wxpy简介(登录.消息发送.注册回复) 本文Github源代码地址:locoda/connector-wechat-bot (代码适用版本为python ...

  7. HTML5期末大作业:个人网站设计——彭于晏明星(15页)带特效 带登录 带轮播 带音乐 HTML+CSS+JavaScript 大学生毕设网页设计源码HTML (1)

    HTML5期末大作业:个人网站设计--彭于晏明星(15页)带特效带登录带轮播带音乐 HTML+CSS+JavaScript 期末作业HTML代码 学生网页课程设计期末作业下载 web网页设计制作成品 ...

  8. HTML5期末大作业:个人网站设计——彭于晏明星(15页)带特效 带登录 带轮播 带音乐 HTML+CSS+JavaScript 大学生毕设网页设计源码HTML

    HTML5期末大作业:个人网站设计--彭于晏明星(15页)带特效带登录带轮播带音乐 HTML+CSS+JavaScript 期末作业HTML代码 学生网页课程设计期末作业下载 web网页设计制作成品 ...

  9. 带你一步一步实现验证码登录和自动登录

    文章目录 1.实现最简单的登录 2.过滤器处理中文乱码 3.编写最简单前端页面 4.编写验证码servlet 5.修改前端页面,添加验证码和自动登录按钮 6.实现自动登录 7.前端脚本编写:读取coo ...

最新文章

  1. select选择框实现跳转
  2. 构建机器学习系统步骤
  3. 部署Dotnet Core应用到Kubernetes(二)
  4. 【C++编程题2】字符串插入空格
  5. tornado学习笔记day08-tornado中的异步
  6. OpenCV文档阅读笔记-brief Creates a window官方解析及实例
  7. centos so查看_等保测评主机安全:CentOS密码修改周期与登录失败处理
  8. jquery load 事件用法
  9. 极兔正式入股百世快递
  10. 安装好grunt,cmd 提示grunt不是内部或外部命令 怎么办?
  11. 使用WMI编程获取主机硬件信息(CPU_ID,硬盘、主板、BIOS序列号,Mac地址)
  12. flash, sparkle, glow, gleam, twinkle, glitter
  13. java 场景面试题_Java面试场景整理收录
  14. CM108AH和DP108/DP108T的区别
  15. Discuz!您当前的访问请求当中含有非法字符,已经被系统拒绝解决办法
  16. 数学定理(1)——正态分布
  17. C语言学会数组就可以做五子棋 - 快来试试吧(包含源码)
  18. 南邮 OJ 2043 有才华的罗老师
  19. 台式计算机激光头,cd机激光头维修论坛-CD机维修,我家台式CD机坏了,进仓后激光头只动动,但是不发红光,懂的朋友来指点。-电气资讯 - 电工屋...
  20. qt入门,最简单的qt程序

热门文章

  1. 查找有权限使用某个T-Code的所有用户列表
  2. 三组关键词,拆解2021年赤子城的中期业绩报告
  3. 春节红包大战7年,BAT的变与不变
  4. matlab曲线拟合法,MATLAB曲线拟合
  5. 超出网络bios会话限制_什么是UEFI,它和BIOS有什么不同?
  6. html5怎么改变submit样式,html5中submit是按钮么
  7. js怎么取到遍历中的特定值_LeetCode 1028 hard 从先序遍历还原二叉树 Python解题记录...
  8. python最低薪资_最低15K,最高50K,Python薪资节节高,小白怎么学?
  9. 传输预编码matlab,基于MATLAB的MIMO系统预编码性能仿真教程.doc
  10. Python模块之间的相互引用问题