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如何透过ODBC来存取数据库
Oct 09 PHP
树型结构列出指定目录里所有文件的PHP类
Oct 09 PHP
IIS7.X配置PHP运行环境小结
Jun 09 PHP
PHP缓存技术的多种方法小结
Aug 14 PHP
php gzip压缩输出的实现方法
Apr 27 PHP
php过滤敏感词的示例
Mar 31 PHP
ThinkPHP CURD方法之table方法详解
Jun 18 PHP
微信开发之php表单微信中自动提交两次问题解决办法
Jan 08 PHP
Laravel中使用Queue的最基本操作教程
Dec 27 PHP
Laravel框架实现利用中间件进行操作日志记录功能
Jun 06 PHP
laravel model 两表联查示例
Oct 24 PHP
php中pcntl_fork详解
Apr 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
php将fileterms函数返回的结果变成可读的形式
2011/04/21 PHP
PHP通过session id 实现session共享和登录验证的代码
2012/06/03 PHP
php实现将数组转换为XML的方法
2015/03/09 PHP
YII框架http缓存操作示例
2019/04/29 PHP
ExtJS下grid的一些属性说明
2009/12/13 Javascript
JS遮罩层效果 兼容ie firefox jQuery遮罩层
2010/07/26 Javascript
javascript图像处理—仿射变换深度理解
2013/01/16 Javascript
javascript获取元素CSS样式代码示例
2013/11/28 Javascript
基于JavaScript实现购物网站商品放大镜效果
2016/09/06 Javascript
详解tween.js 中文使用指南
2018/01/05 Javascript
vue-cli监听组件加载完成的方法
2018/09/07 Javascript
Vue源码学习之关于对Array的数据侦听实现
2019/04/23 Javascript
vue 中 命名视图的用法实例详解
2019/08/14 Javascript
微信小程序实现蒙版弹出窗功能
2019/09/17 Javascript
原生js实现移动小球(碰撞检测)
2020/12/17 Javascript
[47:06]DOTA2上海特级锦标赛主赛事日 - 4 败者组第五轮 MVP.Phx VS EG第一局
2016/03/05 DOTA
[04:19]DOTA2完美大师赛第四天精彩集锦
2017/11/26 DOTA
[42:32]完美世界DOTA2联赛PWL S2 LBZS vs FTD.C 第二场 11.27
2020/12/01 DOTA
在Python程序中操作文件之flush()方法的使用教程
2015/05/24 Python
python绘制简单折线图代码示例
2017/12/19 Python
Python编写Windows Service服务程序
2018/01/04 Python
Python实现的HMacMD5加密算法示例
2018/04/03 Python
Python3实现转换Image图片格式
2018/06/21 Python
实例分析python3实现并发访问水平切分表
2018/09/29 Python
详解python3安装pillow后报错没有pillow模块以及没有PIL模块问题解决
2019/04/17 Python
运用PyTorch动手搭建一个共享单车预测器
2019/08/06 Python
解决pyecharts运行后产生的html文件用浏览器打开空白
2020/03/11 Python
Python能做什么
2020/06/02 Python
CSS3支持IE6, 7, and 8的边框border属性
2012/12/28 HTML / CSS
大学生入党积极分子自我评价
2014/09/20 职场文书
学校党的群众路线教育实践活动总结材料
2014/10/30 职场文书
2014年工商所工作总结
2014/12/09 职场文书
导游词之江南周庄
2019/12/06 职场文书
创业计划书之都市休闲农庄
2019/12/28 职场文书
Python中requests做接口测试的方法
2021/05/30 Python
python全面解析接口返回数据
2022/02/12 Python