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的宝库目录--PEAR
Oct 09 PHP
数据库的日期格式转换
Oct 09 PHP
PHP配置心得包含MYSQL5乱码解决
Nov 20 PHP
php数据库配置文件一般做法分享
Jul 07 PHP
制作安全性高的PHP网站的几个实用要点
Dec 30 PHP
PHP实现的增强性mhash函数
May 27 PHP
PHP入门教程之操作符与控制结构流程详解
Sep 09 PHP
PHP实现的策略模式简单示例
Aug 25 PHP
PHP-X系列教程之内置函数的使用示例
Oct 16 PHP
php原生数据库分页的代码实例
Feb 18 PHP
php利用array_search与array_column实现二维数组查找
Jul 08 PHP
laravel 框架执行流程与原理简单分析
Feb 01 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
eAccelerator的安装与使用详解
2013/06/13 PHP
深入PHP magic quotes的详解
2013/06/17 PHP
php5.3 注意事项说明
2013/07/01 PHP
Discuz批量替换帖子内容的方法(使用SQL更新数据库)
2014/06/23 PHP
PHP异常处理Exception类
2015/12/11 PHP
PHP中SERIALIZE和JSON的序列化与反序列化操作区别分析
2016/10/11 PHP
php制作基于xml的RSS订阅源功能示例
2017/02/08 PHP
php基于ob_start(ob_gzhandler)实现网页压缩功能的方法
2017/02/18 PHP
针对thinkPHP5框架存储过程bug重写的存储过程扩展类完整实例
2018/06/16 PHP
Yii 框架控制器创建使用及控制器响应操作示例
2019/10/14 PHP
关于IE BUG与字符串截取substr的解决办法
2013/04/10 Javascript
jquery获取自定义属性(attr和prop)实例介绍
2013/04/21 Javascript
如何用javascript计算文本框还能输入多少个字符
2015/07/29 Javascript
JS验证邮件地址格式方法小结
2015/12/01 Javascript
JavaScript 数组中最大最小值
2016/06/05 Javascript
json与jsonp知识小结(推荐)
2016/08/16 Javascript
浅析BootStrap中Modal(模态框)使用心得
2016/12/24 Javascript
js仿QQ邮箱收件人选择与搜索功能
2017/02/10 Javascript
JavaScript使用享元模式实现文件上传优化操作示例
2018/08/07 Javascript
浅谈React Event实现原理
2018/09/20 Javascript
JS中注入eval, Function等系统函数截获动态代码
2019/04/03 Javascript
Vue函数式组件-你值得拥有
2019/05/09 Javascript
Vue通过Blob对象实现导出Excel功能示例代码
2020/07/31 Javascript
Python XML RPC服务器端和客户端实例
2014/11/22 Python
在Python的Flask框架中实现全文搜索功能
2015/04/20 Python
谈谈对css属性box-sizing的了解
2017/01/04 HTML / CSS
领导干部对照检查材料
2014/08/24 职场文书
2014年销售部工作总结
2014/12/01 职场文书
和谐家庭事迹材料
2014/12/20 职场文书
学生犯错保证书
2015/05/09 职场文书
2015年学校党建工作总结
2015/05/19 职场文书
新入职员工工作总结
2015/10/15 职场文书
2019年农民幸福观调查的实践感悟
2019/12/19 职场文书
电脑无法安装Windows 11怎么办?无法安装Win11的解决方法
2021/11/21 数码科技
python 离散点图画法的实现
2022/04/01 Python
在容器中使用nginx搭建上传下载服务器
2022/05/11 Servers