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+APACHE实现用户论证的方法
Oct 09 PHP
WindowsXP中快速配置Apache+PHP5+Mysql
Jun 05 PHP
PHP mail 通过Windows的SMTP发送邮件失败的解决方案
May 27 PHP
PHP项目开发中最常用的自定义函数整理
Dec 02 PHP
PHP学习笔记 用户注册模块用户类以及验证码类
Sep 20 PHP
一个不易被发现的PHP后门代码解析
Jul 05 PHP
Symfony2开发之控制器用法实例分析
Feb 05 PHP
php简单统计在线人数的方法
May 10 PHP
PHP单例模式详解及实例代码
Dec 21 PHP
PHP给前端返回一个JSON对象的实例讲解
May 31 PHP
PHP按一定比例压缩图片的方法
Oct 12 PHP
php实现自动生成验证码的实例讲解
Nov 17 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
PHP版微信公众平台红包API
2015/04/02 PHP
Yii2框架使用计划任务的方法
2016/05/25 PHP
php 生成签名及验证签名详解
2016/10/26 PHP
网站导致浏览器崩溃的原因总结(多款浏览器) 推荐
2010/04/15 Javascript
JavaScript表达式:URL 协议介绍
2013/03/10 Javascript
利用cookie记住背景颜色示例代码
2013/11/04 Javascript
JQuery与JS里submit()的区别示例介绍
2014/02/17 Javascript
详解JavaScript中Date.UTC()方法的使用
2015/06/12 Javascript
创建你的第一个AngularJS应用的方法
2015/06/16 Javascript
js实现千分符和保留几位小数的简单实例
2016/08/01 Javascript
javascript基于原型链的继承及call和apply函数用法分析
2016/12/15 Javascript
javascript实现根据函数名称字符串动态执行函数的方法示例
2016/12/28 Javascript
js实现消息滚动效果
2017/01/18 Javascript
使用JavaScript实现在页面中显示距离2017年中秋节的天数
2017/09/26 Javascript
JS简单实现数组去重的方法分析
2017/10/14 Javascript
JS实现同一DOM元素上onClick事件与onDblClick事件并存的解决方法
2018/06/07 Javascript
小程序如何构建骨架屏
2019/05/29 Javascript
vue源码nextTick使用及原理解析
2019/08/13 Javascript
html-webpack-plugin修改页面的title的方法
2020/06/18 Javascript
python发腾讯微博代码分享
2014/01/10 Python
举例讲解Python中的Null模式与桥接模式编程
2016/02/02 Python
Python中optparser库用法实例详解
2018/01/26 Python
TensorFlow实现卷积神经网络CNN
2018/03/09 Python
详解python读取和输出到txt
2019/03/29 Python
在Django admin中编辑ManyToManyField的实现方法
2019/08/09 Python
python3实现弹弹球小游戏
2019/11/25 Python
Python urlopen()和urlretrieve()用法解析
2020/01/07 Python
CSS3 translate导致字体模糊的实例代码
2019/08/30 HTML / CSS
HTML5自定义视频播放器源码
2020/01/06 HTML / CSS
美国一家主营日韩美妆护肤品的在线商店:iMomoko
2016/09/11 全球购物
村优秀党员事迹材料
2014/01/15 职场文书
七夕情人节促销方案
2014/06/07 职场文书
村委会贫困证明范文
2014/09/21 职场文书
酒店管理专业毕业生自我鉴定
2014/09/29 职场文书
创业计划书之服装
2019/10/07 职场文书
mybatis中注解与xml配置的对应关系和对比分析
2021/08/04 Java/Android