PHP实现登录验证码校验功能


Posted in PHP onMay 17, 2018

验证码的校验是利用PHP中的 SESSION功能来实现。

在最顶端声明函数 session_start(); 告诉服务器我们要用这个函数的功能。

session_start();

接下来我们用到的就是验证码实现的代码。这里用英文数字的代码为例。

$image = imagecreatetruecolor(100, 30); //创建一个100×30的画布
$white = imagecolorallocate($image,255,255,255);//白色
imagefill($image,0,0,$white);//覆盖黑色画布

然后在验证码实现之前声明一个空变量,用来存放验证码。

$session = ""; //空变量 ,存放验证码
for($i=0;$i<4;$i++){
 $size = 6;
 $x = $i*25+mt_rand(5,10);
 $y = mt_rand(5,10);
 $sizi_color = imagecolorallocate($image,mt_rand(80,220),mt_rand(80,220),mt_rand(80,220));
 $char = join("",array_merge(range('a','z'),range('A','Z'),range(0,9)));
 $char = str_shuffle($char);
 $char = substr($char,0,1);
 imagestring($image,$size,$x,$y,$char,$sizi_color);
 $session .= $char ; //把验证码的每一个值赋值给变量
}
 $_SESSION['session'] = $session; //这个变量的值与用户输入的值相等

for($k=0;$k<200;$k++){
 $rand_color = imagecolorallocate($image,mt_rand(50,200),mt_rand(50,200),mt_rand(50,200));
 imagesetpixel($image,mt_rand(1,99),mt_rand(1,29),$rand_color);
}
for($n=0;$n<5;$n++){
 $line_color = imagecolorallocate($image,mt_rand(80,220),mt_rand(80,220),mt_rand(80,220));
 imageline($image,mt_rand(1,99),mt_rand(1,29),mt_rand(1,99),mt_rand(1,29),$line_color);
}
header('content-type:image/png');//设置文件输出格式
imagepng( $image ); //以png格式输出$image图像
imagedestroy( $image ); //销毁图像

用 POST 方式来接收验证码。 strtolower 函数是让服务器不区分大小写。这样可以有效减少用户的输错率。

if(isset($_POST['session'])){
 session_start();
 if(strtolower($_POST['session'])==strtolower($_SESSION['session'])){
  echo'<font color="#0000CC">输入正确</form>';
 }else{
  echo '<font color="#CC0000"><b>输入错误</b></font>';
 }
 exit();
}

下面是HTML的页面代码。

<!DOCTYPE html>
<html>
<head>
 <meta charset="utf-8"/>
 <title>确认验证码</title>
</head>
<body>
 <form method="post" action="./tushu.php">
 <p>验证码图片:<img id="img" border="1" src="http://localhost//xxx.php" width="100" height="30"></p>
 <a href="javascript:void(0)" rel="external nofollow"  onclick="document.getElementById('img').src='http://localhost//xxx.php'">看不清?换一个</a>
 <p>请输入图片中的验证码:<input type="text" name="session" value=""/></p>
 <p><input type="submit" value="提交" style="padding:6px 10px;"></p>
 </form>
</body>
</html>

总结

以上所述是小编给大家介绍的PHP实现登录验证码校验功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

PHP 相关文章推荐
php中数据的批量导入(csv文件)
Oct 09 PHP
PHP 面向对象实现代码
Nov 11 PHP
PHP漏洞全解(详细介绍)
Nov 13 PHP
Thinkphp实现MySQL读写分离操作示例
Jun 25 PHP
C/S和B/S两种架构区别与优缺点分析
Oct 23 PHP
thinkphp3.2.2前后台公用类架构问题分析
Nov 25 PHP
php根据某字段对多维数组进行排序的方法
Mar 07 PHP
PHP函数nl2br()与自定义函数nl2p()换行用法分析
Apr 02 PHP
php版微信开发Token验证失败或请求URL超时问题的解决方法
Sep 23 PHP
PHP框架自动加载类文件原理详解
Jun 06 PHP
php获取手机端的号码以及ip地址实例代码
Sep 12 PHP
PHP实现chrome表单请求数据转换为接口使用的json数据
Mar 04 PHP
php识别翻转iphone拍摄的颠倒图片
May 17 #PHP
php通过各种函数判断0和空
Jul 04 #PHP
PHP手机短信验证码实现流程详解
May 17 #PHP
PHP实现多图上传和单图上传功能
May 17 #PHP
php实现姓名根据首字母排序的类与方法(实例代码)
May 16 #PHP
PHP多维数组指定多字段排序的示例代码
May 16 #PHP
php strftime函数获取日期时间(switch用法)
May 16 #PHP
You might like
不用mod_rewrite直接用php实现伪静态化页面代码
2008/10/04 PHP
在Ubuntu 14.04上部署 PHP 环境及 WordPress
2014/09/02 PHP
PHP之预定义接口详解
2015/07/29 PHP
微信支付之JSAPI公众号支付详解
2019/05/15 PHP
laravel实现上传图片,并且制作缩略图,按照日期存放的代码
2019/10/16 PHP
基于PHP实现解密或加密Cloudflar邮箱保护
2020/06/24 PHP
Jquery Select操作方法集合脚本之家特别版
2010/05/17 Javascript
一个轻量级的javascript库 pj介绍
2010/12/19 Javascript
读jQuery之十一 添加事件核心方法
2011/07/31 Javascript
使用JavaScript修改浏览器URL地址栏的实现代码
2013/10/21 Javascript
JS上传图片前实现图片预览效果的方法
2015/03/02 Javascript
JavaScript转换二进制编码为ASCII码的方法
2015/04/16 Javascript
jQuery标签编辑插件Tagit使用指南
2015/04/21 Javascript
JavaScript给input的value赋值引发的关于基本类型值和引用类型值问题
2015/12/07 Javascript
vue,angular,avalon这三种MVVM框架优缺点
2016/04/27 Javascript
js关于getImageData跨域问题的解决方法
2016/10/14 Javascript
如何解决vue与传统jquery插件冲突
2017/03/20 Javascript
jQuery实现radio第一次点击选中第二次点击取消功能
2017/05/15 jQuery
详解如何构建Promise队列实现异步函数顺序执行
2018/10/23 Javascript
[05:34]2014DOTA2国际邀请赛中国区预选赛精彩TOPPLAY第二弹
2014/06/25 DOTA
Python Tkinter基础控件用法
2014/09/03 Python
python监控文件或目录变化
2016/06/07 Python
python读取csv文件并把文件放入一个list中的实例讲解
2018/04/27 Python
浅谈Python编程中3个常用的数据结构和算法
2019/04/30 Python
Django中使用haystack+whoosh实现搜索功能
2019/10/08 Python
Python requests模块安装及使用教程图解
2020/06/30 Python
自荐信的禁忌和要点
2013/10/15 职场文书
行政助理求职自荐信
2013/10/26 职场文书
中专毕业生自我鉴定
2013/11/21 职场文书
求职信范文英文版
2014/01/05 职场文书
酒店总经理助理岗位职责
2014/02/01 职场文书
毕业生实习证明
2014/09/19 职场文书
2014党员批评和自我批评思想汇报
2014/09/21 职场文书
大学迎新生标语
2014/10/06 职场文书
幼儿园大班教学反思
2016/03/02 职场文书
MySQL导致索引失效的几种情况
2022/06/25 MySQL