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 相关文章推荐
PHP5中MVC结构学习
Oct 09 PHP
如何使用PHP中的字符串函数
Oct 09 PHP
如何使用Linux的Crontab定时执行PHP脚本的方法
Dec 19 PHP
PHP 伪静态技术原理以及突破原理实现介绍
Jul 12 PHP
PHP无限分类(树形类)
Sep 28 PHP
php不使用插件导出excel的简单方法
Mar 04 PHP
phpmailer在服务器上不能正常发送邮件的解决办法
Jul 08 PHP
zend framework框架中url大小写问题解决方法
Aug 19 PHP
php查询mysql大量数据造成内存不足的解决方法
Mar 04 PHP
Symfony实现行为和模板中取得request参数的方法
Mar 17 PHP
PHP中的密码加密的解决方案总结
Oct 26 PHP
PHP命令Command模式用法实例分析
Aug 08 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中的生成XML文件的4种方法分享
2012/10/06 PHP
PHP+JS实现大规模数据提交的方法
2015/07/02 PHP
为你总结一些php系统类函数
2015/10/21 PHP
JAVASCRIPT对象及属性
2007/02/13 Javascript
JavaScript this 深入理解
2009/07/30 Javascript
轻松创建nodejs服务器(5):事件处理程序
2014/12/18 NodeJs
JavaScript Math.round() 方法
2015/12/18 Javascript
10分钟掌握XML、JSON及其解析
2020/12/06 Javascript
js实现登录验证码
2016/12/22 Javascript
ES2015 Symbol 一种绝不重复的值
2016/12/25 Javascript
react实现pure render时bind(this)隐患需注意!
2017/03/09 Javascript
Javascript刷新页面的实例
2017/09/23 Javascript
Ionic学习日记实现验证码倒计时
2018/02/08 Javascript
vue使用pdfjs显示PDF可复制的实现方法
2018/12/14 Javascript
js获取 gif 的帧数的代码实例
2019/09/10 Javascript
jQuery实现聊天对话框
2020/02/08 jQuery
vuex(vue状态管理)的特殊应用案例分享
2020/03/03 Javascript
[05:05]DOTA2亚洲邀请赛 战队出场仪式
2015/02/07 DOTA
django_orm查询性能优化方法
2018/08/20 Python
python中的itertools的使用详解
2020/01/13 Python
Python使用requests xpath 并开启多线程爬取西刺代理ip实例
2020/03/06 Python
python爬虫中url管理器去重操作实例
2020/11/30 Python
阿联酋航空假期:Emirates Holidays
2018/03/20 全球购物
世界上最大的皮肤科医生拥有和经营的美容网站:LovelySkin
2021/01/03 全球购物
C++面试题目
2013/06/25 面试题
MIS软件工程师的面试题
2016/04/22 面试题
JDBC操作数据库的基本流程是什么
2014/10/28 面试题
美术专业学生个人自我评价
2013/09/19 职场文书
校园奶茶店创业计划书
2014/01/23 职场文书
学校关爱留守儿童活动方案
2014/08/27 职场文书
老兵退伍标语
2014/10/07 职场文书
公民授权委托书
2014/10/15 职场文书
车队安全员岗位职责
2015/02/15 职场文书
中学后勤工作总结2015
2015/07/22 职场文书
同乡会致辞
2015/07/30 职场文书
《秦兵马俑》教学反思
2016/02/24 职场文书