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 csv操作类代码
Dec 14 PHP
PHP几个数学计算的内部函数学习整理
Aug 06 PHP
解析php 版获取重定向后的地址(代码)
Jun 26 PHP
linux系统下php安装mbstring扩展的二种方法
Jan 20 PHP
Java和PHP在Web开发方面对比分析
Mar 01 PHP
php类的定义与继承用法实例
Jul 07 PHP
详解PHP的Yii框架的运行机制及其路由功能
Mar 17 PHP
PHP处理CSV表格文件的常用操作方法总结
Jul 01 PHP
php操作路径的经典方法(必看篇)
Oct 04 PHP
Laravel中的Auth模块详解
Aug 17 PHP
PHP基于curl post实现发送url及相关中文乱码问题解决方法
Nov 25 PHP
实例分析10个PHP常见安全问题
Jul 09 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/11/19 PHP
获取当前网页document.url location.href区别总结
2008/05/10 Javascript
ExtJS Grid使用SimpleStore、多选框的方法
2009/11/20 Javascript
jQuery 版元素拖拽原型代码
2011/04/25 Javascript
Struts2的s:radio标签使用及用jquery添加change事件
2013/04/08 Javascript
在服务端(Page.Write)调用自定义的JS方法详解
2013/08/09 Javascript
JavaScript中DOM详解
2015/04/13 Javascript
深入解析JavaScript框架Backbone.js中的事件机制
2016/02/14 Javascript
Bootstrap每天必学之级联下拉菜单
2016/03/27 Javascript
AngularJs html compiler详解及示例代码
2016/09/01 Javascript
jQuery实现的卷帘门滑入滑出效果【案例】
2019/02/18 jQuery
使用react context 实现vue插槽slot功能
2019/07/18 Javascript
小程序实现可拖动的悬浮按钮
2020/09/07 Javascript
[02:27]刀塔重生降临
2015/10/14 DOTA
Python编码爬坑指南(必看)
2016/06/10 Python
Python线程下使用锁的技巧分享
2018/09/13 Python
python正向最大匹配分词和逆向最大匹配分词的实例
2018/11/14 Python
pandas DataFrame索引行列的实现
2019/06/04 Python
Puritan’s Pride(普丽普莱)官方网站:美国最大最全的保健品公司之一
2016/10/23 全球购物
泰坦健身器材:Titan Fitness
2018/02/13 全球购物
DJI美国:消费类无人机领域的领导者
2018/04/27 全球购物
KELLER SPORTS荷兰:在线订购最好的运动产品
2020/10/13 全球购物
JAVA中的关键字有什么特点
2014/03/07 面试题
武汉瑞得软件笔试题
2015/10/27 面试题
客服端调用EJB对象的几个基本步骤
2012/01/15 面试题
岳父生日宴会答谢词
2014/01/13 职场文书
幼师求职信
2014/06/23 职场文书
效能风暴心得体会
2014/09/04 职场文书
2014年社团工作总结范文
2014/11/27 职场文书
教师创先争优承诺书
2015/04/27 职场文书
初中班干部工作总结
2015/08/10 职场文书
2019年最新证婚词精选集!
2019/06/28 职场文书
python爬取豆瓣电影TOP250数据
2021/05/23 Python
新手入门Mysql--概念
2021/06/18 MySQL
JavaScript 对象创建的3种方法
2021/11/17 Javascript
MySQL详细讲解变量variables的用法
2022/06/21 MySQL