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 相关文章推荐
第十一节 重载 [11]
Oct 09 PHP
用PHP函数解决SQL injection
Dec 09 PHP
php.ini中的php-5.2.0配置指令详解
Mar 27 PHP
超小PHP小马小结(方便查找后门的朋友)
May 05 PHP
php设计模式之观察者模式的应用详解
May 21 PHP
php定义数组和使用示例(php数组的定义方法)
Mar 29 PHP
php实现将任意进制数转换成10进制的方法
Apr 17 PHP
thinkphp中多表查询中防止数据重复的sql语句(必看)
Sep 22 PHP
php注册系统和使用Xajax即时验证用户名是否被占用
Aug 31 PHP
PHP中Session ID的实现原理实例分析
Aug 17 PHP
Yii框架where查询用法实例分析
Oct 22 PHP
PHP 计算至少是其他数字两倍的最大数的实现代码
May 26 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乱码问题,UTF-8乱码常见问题小结
2012/04/09 PHP
php中读写文件与读写数据库的效率比较分享
2013/10/19 PHP
ThinkPHP模板范围判断输出In标签与Range标签用法详解
2014/06/30 PHP
PHP基于imap获取邮件实例
2014/11/11 PHP
PHP递归实现文件夹的复制、删除、查看大小操作示例
2017/08/11 PHP
extjs表格文本启用选择复制功能具体实现
2013/10/11 Javascript
javascript实现label标签跳出循环操作
2016/03/06 Javascript
Angular中封装fancyBox(图片预览)遇到问题小结
2017/09/01 Javascript
基于dataset的使用和图片延时加载的实现方法
2017/12/11 Javascript
响应式框架Bootstrap栅格系统的实例
2017/12/19 Javascript
angularJS实现动态添加,删除div方法
2018/02/27 Javascript
vue中如何实现后台管理系统的权限控制的方法步骤
2019/09/05 Javascript
关于angular引入ng-zorro的问题浅析
2020/09/09 Javascript
vue 避免变量赋值后双向绑定的操作
2020/11/07 Javascript
[01:01:31]2018DOTA2亚洲邀请赛3月29日小组赛B组 Mineski VS paiN
2018/03/30 DOTA
python益智游戏计算汉诺塔问题示例
2014/03/05 Python
Python中用于转换字母为小写的lower()方法使用简介
2015/05/19 Python
详解JavaScript编程中的window与window.screen对象
2015/10/26 Python
Python3 适合初学者学习的银行账户登录系统实例
2017/08/08 Python
Python画图高斯分布的示例
2019/07/10 Python
Python 、Pycharm、Anaconda三者的区别与联系、安装过程及注意事项
2019/10/11 Python
Python银行系统实战源码
2019/10/25 Python
Python json模块与jsonpath模块区别详解
2020/03/05 Python
Python 数据分析之逐块读取文本的实现
2020/12/14 Python
Orvis官网:自1856年以来,优质服装、飞钓装备等
2018/12/17 全球购物
一套英文Java笔试题面试题
2016/04/21 面试题
材料物理专业个人求职信
2013/12/15 职场文书
优秀社区干部事迹材料
2014/02/03 职场文书
元宵节晚会主持人串词
2014/03/25 职场文书
石油工程专业毕业生求职信
2014/04/13 职场文书
迎国庆演讲稿
2014/09/05 职场文书
副检察长四风问题对照检查材料思想汇报
2014/10/07 职场文书
大学生迟到检讨书500字
2014/10/17 职场文书
监考失职检讨书
2015/01/26 职场文书
2015初一年级组工作总结
2015/07/24 职场文书
python3 实现mysql数据库连接池的示例代码
2021/04/17 Python