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 相关文章推荐
攻克CakePHP系列三 表单数据增删改
Oct 22 PHP
php discuz 主题表和回帖表的设计
Mar 13 PHP
php/js获取客户端mac地址的实现代码
Jul 08 PHP
PHP判断指定时间段的2个方法
Mar 14 PHP
PHP实现的简单mock json脚本分享
Feb 10 PHP
PHP中的事务使用实例
May 26 PHP
使用URL传输SESSION信息
Jul 14 PHP
PHP安全下载文件的方法
Apr 07 PHP
解决php 处理 form 表单提交多个 name 属性值相同的 input 标签问题
May 11 PHP
SCP远程VPS快速搬家和WDCP升级php5.3安装memcached和eaccelerator教程
Jul 27 PHP
PHP实现求连续子数组最大和问题2种解决方法
Dec 26 PHP
一文掌握PHP Xdebug 本地与远程调试(小结)
Apr 23 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的排列组合(如输入a,b,c 输出他们的全部组合)
2017/03/14 PHP
php 处理png图片白色背景色改为透明色的实例代码
2018/12/10 PHP
Open and Print a Word Document
2007/06/15 Javascript
Convert Seconds To Hours
2007/06/16 Javascript
jQuery chili图片远处放大插件
2009/11/30 Javascript
不依赖Flash和任何JS库实现文本复制与剪切附源码下载
2015/10/09 Javascript
js实现完美兼容各大浏览器的人民币大小写相互转换
2015/10/29 Javascript
Position属性之relative用法
2015/12/14 Javascript
JS实现的二叉树算法完整实例
2017/04/06 Javascript
webpack构建vue项目的详细教程(配置篇)
2017/07/17 Javascript
vue mint-ui学习笔记之picker的使用
2017/10/11 Javascript
javascript原生封装一个淡入淡出效果的函数测试实例代码
2018/03/19 Javascript
javascript中的数据类型检测方法详解
2019/08/07 Javascript
[46:49]完美世界DOTA2联赛PWL S3 access vs Rebirth 第二场 12.19
2020/12/24 DOTA
python处理cookie详解
2014/02/07 Python
python利用beautifulSoup实现爬虫
2014/09/29 Python
python pycurl验证basic和digest认证的方法
2018/05/02 Python
Python使用min、max函数查找二维数据矩阵中最小、最大值的方法
2018/05/15 Python
使用Python进行QQ批量登录的实例代码
2018/06/11 Python
Python WSGI的深入理解
2018/08/01 Python
Python创建字典的八种方式
2019/02/27 Python
python 列表输出重复值以及对应的角标方法
2019/06/11 Python
Python中利用LSTM模型进行时间序列预测分析的实现
2019/07/26 Python
python怎么对数字进行过滤
2020/07/05 Python
Python matplotlib模块及柱状图用法解析
2020/08/10 Python
HTML5 实战PHP之Web页面表单设计
2011/10/09 HTML / CSS
俄罗斯最大的消费电子连锁零售商:Mvideo
2017/06/25 全球购物
大学生自我鉴定
2013/12/08 职场文书
安全检查与奖惩制度
2014/01/23 职场文书
机械机修工岗位职责
2014/08/03 职场文书
甜品店创业计划书
2014/09/21 职场文书
代领学位证书毕业证书委托书
2014/09/30 职场文书
检举信的写法
2019/04/10 职场文书
创业计划书之酒厂
2019/10/14 职场文书
复制别人的成功真的会成功吗?
2019/10/17 职场文书
Python中的datetime包与time包包和模块详情
2022/02/28 Python