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之第二天
Oct 09 PHP
初学CAKEPHP 基础教程
Nov 02 PHP
php表单转换textarea换行符的方法
Sep 10 PHP
php流量统计功能的实现代码
Sep 29 PHP
PHP在不同页面间传递Json数据示例代码
Jun 08 PHP
php多个文件及图片上传实例详解
Nov 10 PHP
解决php的“It is not safe to rely on the system’s timezone settings”问题
Oct 08 PHP
Symfony2中被遗弃的getRequest()方法分析
Mar 17 PHP
PHP根据session与cookie用户登录状态操作类的代码
May 13 PHP
golang与PHP输出excel示例
Jul 22 PHP
微信公众平台开发教程③ PHP实现微信公众号支付功能图文详解
Apr 10 PHP
laravel框架学习笔记之组件化开发实现方法
Feb 01 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判断图片格式的七种方法小结
2013/06/03 PHP
PHP调用JAVA的WebService简单实例
2014/03/11 PHP
PHP使用JSON和将json还原成数组
2015/02/12 PHP
document.all与WEB标准
2020/05/13 Javascript
写给想学习Javascript的朋友一点学习经验小结
2010/11/23 Javascript
sencha touch 模仿tabpanel导航栏TabBar的实例代码
2013/10/24 Javascript
解析jquery中的ajax缓存问题
2013/12/19 Javascript
JQuery判断radio是否选中并获取选中值的示例代码
2014/10/17 Javascript
jquery中EasyUI实现异步树
2015/03/01 Javascript
jQuery实现Tab选项卡切换效果简单演示
2015/11/23 Javascript
JQuery为元素添加样式的实现方法
2016/07/20 Javascript
Node.js 利用cheerio制作简单的网页爬虫示例
2018/03/01 Javascript
React Hooks 实现和由来以及解决的问题详解
2020/01/17 Javascript
如何解决vue在ios微信&quot;复制链接&quot;功能问题
2020/03/26 Javascript
three.js着色器材质的内置变量示例详解
2020/08/16 Javascript
微信小程序弹窗禁止页面滚动的实现代码
2020/12/30 Javascript
[01:06] DOTA2英雄背景故事第三期之秩序法则光之守卫
2020/07/07 DOTA
matplotlib中legend位置调整解析
2017/12/19 Python
python微信公众号开发简单流程
2018/03/23 Python
解决Django生产环境无法加载静态文件问题的解决
2019/04/23 Python
PyQt5基本控件使用详解:单选按钮、复选框、下拉框
2019/08/05 Python
python 提取文件指定列的方法示例
2019/08/07 Python
django删除表重建的实现方法
2019/08/28 Python
python连接mongodb集群方法详解
2020/02/13 Python
基于Python实现2种反转链表方法代码实例
2020/07/06 Python
Mistine官方海外旗舰店:泰国国民彩妆品牌
2016/12/28 全球购物
Bibloo荷兰:女士、男士和儿童的服装、鞋子和配饰
2019/02/25 全球购物
中国专业的音频分享平台:喜马拉雅
2019/05/24 全球购物
请描述一下”is a”关系和”has a”关系
2015/02/03 面试题
出口公司经理求职简历中的自我评价
2013/10/13 职场文书
总经理助理岗位职责
2013/11/08 职场文书
酒店管理求职信范文
2014/04/06 职场文书
房务中心文员岗位职责
2014/04/16 职场文书
会计工作岗位职责
2015/02/03 职场文书
毕业生自荐信范文
2015/03/05 职场文书
2016年党员创先争优承诺书
2016/03/25 职场文书