php编程每天必学之验证码


Posted in PHP onMarch 03, 2016

本文为大家分享了php图片验证码的实现代码,分享给大家供大家参考,具体内容如下

1.验证码图片生成
captcha.php

//1.生成100*30大小的图片,默认为黑色
$image = imagecreatetruecolor(100,30);
//创建白色底图
$bgcolor = imagecolorallocate($image,255,255,255);
//用白色填充黑色
imagefill ($image,0,0,$bgcolor);

//2.随机显示数字或字母
$captch_code = "";
for($i=0;$i<4;$i++){
 $fontsize=6;
 $fontcolor=imagecolorallocate($image,rand(0,120),rand(0,120),rand(0,120));
 $data = "abcdefghijkmnpqrstuvwxy3456789";
 $fontcontent =substr($data,rand(0,strlen($data)),1);
 $captch_code .=$fontcontent;
 $x = ($i*100/4)+rand(5,10);
 $y = rand(5,10);

 imagestring($image, $fontsize, $x, $y, $fontcontent,$fontcolor);
}
$_SESSION["authcode"] = $captch_code;

//3.增加干扰
//干扰点
for($i=0;$i<100;$i++){
 $pointcolor=imagecolorallocate($image,rand(50,200),rand(50,200),rand(50,200));
 imagesetpixel($image,rand(1,99),rand(1,29),$pointcolor);
}

//干扰线
for($i=0;$i<2;$i++){
 $linecolor=imagecolorallocate($image,rand(80,220),rand(80,220),rand(80,220));
 imageline($image,rand(1,99),rand(1,29),rand(1,99),rand(1,29),$linecolor);
}


header("content-type:image/png");
imagepng($image);

2.页面实现验证码功能
form.php

<?php
if(isset($_POST["authcode"])){
 session_start();
 if(strtolower($_POST["authcode"])==$_SESSION["authcode"]){
  echo "OK";
 }else{
  echo "NO";
 }
}

?>


<!doctype html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Document</title>
</head>
<body>
<form action="form.php" method="post">
 <p>验证码图片: <img id="img" border="1" src="captcha.php?r=<?php echo rand()?>" alt="">
 <a href="javascript:void(0)" onclick="document.getElementById('img').src='captcha.php?r'+Math.random() ">换一个</a>
 </p>
 <p><input type="text" name="authcode"></p>
 <p><input type="submit" value="提交"></p>

</form>
</body>
</html>

以上就是本文的全部内容,帮助大家轻松实现php图片验证码。

PHP 相关文章推荐
PHP insert语法详解
Jun 07 PHP
PHP 危险函数解释 分析
Apr 22 PHP
PHP 输出缓存详解
Jun 20 PHP
使用PHP获取网络文件的实现代码
Jan 01 PHP
PHP 巧用数组降低程序的时间复杂度
Jan 01 PHP
php生成EAN_13标准条形码实例
Nov 13 PHP
你应该知道PHP浮点数知识
May 13 PHP
PHP实现恶意DDOS攻击避免带宽占用问题方法
May 27 PHP
最新最全PHP生成制作验证码代码详解(推荐)
Jun 12 PHP
PHP获取redis里不存在的6位随机数应用示例【设置24小时过时】
Jun 07 PHP
PHP attributes()函数讲解
Feb 03 PHP
php传值和传引用的区别点总结
Nov 19 PHP
简单介绍PHP非阻塞模式
Mar 03 #PHP
浅析php设计模式之数据对象映射模式
Mar 03 #PHP
Yii中CArrayDataProvider和CActiveDataProvider区别实例分析
Mar 02 #PHP
PHP MVC框架路由学习笔记
Mar 02 #PHP
深入浅析用PHP实现MVC
Mar 02 #PHP
解析WordPress中控制用户登陆和判断用户登陆的PHP函数
Mar 01 #PHP
编写PHP脚本清除WordPress头部冗余代码的方法讲解
Mar 01 #PHP
You might like
详细介绍PHP应用提速面面观
2006/10/09 PHP
php 文件夹删除、php清除缓存程序
2009/08/25 PHP
destoon利用Rewrite规则设置网站安全
2014/06/21 PHP
php文件夹的创建与删除方法
2015/01/24 PHP
在PHP程序中使用Rust扩展的方法
2015/07/03 PHP
php array_walk 对数组中的每个元素应用用户自定义函数详解
2016/11/18 PHP
一些常用的JS功能函数代码
2009/06/23 Javascript
jQuery中on()方法用法实例详解
2015/02/06 Javascript
cookie的secure属性详解
2015/04/08 Javascript
javascript将中国数字格式转换成欧式数字格式的简单实例
2016/08/02 Javascript
AngularJS中table表格基本操作示例
2017/10/10 Javascript
JS实现运动缓冲效果的封装函数示例
2018/02/18 Javascript
使用Vue如何写一个双向数据绑定(面试常见)
2018/04/20 Javascript
利用Blob进行文件上传的完整步骤
2018/08/02 Javascript
js实现轮播图的完整代码
2020/10/26 Javascript
vue 自定义组件的写法与用法详解
2020/03/04 Javascript
[01:25:09]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS DT第二场
2014/05/24 DOTA
[15:57]教你分分钟做大人:斧王
2014/10/30 DOTA
如何运行Python程序的方法
2013/04/21 Python
Python3.2模拟实现webqq登录
2016/02/15 Python
利用TensorFlow训练简单的二分类神经网络模型的方法
2018/03/05 Python
python基础教程项目四之新闻聚合
2018/04/02 Python
wxpython布局的实现方法
2019/11/01 Python
基于PyQT实现区分左键双击和单击
2020/05/19 Python
Docker如何部署Python项目的实现详解
2020/10/26 Python
Pycharm如何自动生成头文件注释
2020/11/14 Python
详解Css3新特性应用之过渡与动画
2017/01/10 HTML / CSS
html特殊符号示例 html特殊字符编码对照表
2014/01/14 HTML / CSS
HTML5未来发展趋势
2016/02/01 HTML / CSS
日本最大的眼镜购物网站:Oh My Glasses
2016/11/13 全球购物
英国著名药妆店:Superdrug
2021/02/13 全球购物
班队活动设计方案
2014/01/30 职场文书
马智宇结婚主持词
2014/04/01 职场文书
2015年世界卫生日活动总结
2015/02/09 职场文书
主持人大赛开场白
2015/05/29 职场文书
Kubernetes关键组件与结构组成介绍
2022/03/31 Servers