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及Zend Engine的线程安全模型分析
Nov 10 PHP
教你如何快捷的使用cmd访问mysql小技巧
May 26 PHP
ThinkPHP缓存方法S()概述
Jun 13 PHP
JavaScript实现滚动栏效果的方法
Apr 27 PHP
php基于session实现数据库交互的类实例
Aug 03 PHP
Session 失效的原因汇总及解决丢失办法
Sep 30 PHP
编写PHP脚本来实现WordPress中评论分页的功能
Dec 10 PHP
php模仿qq空间或朋友圈发布动态、评论动态、回复评论、删除动态或评论的功能(中)
Jun 11 PHP
CI框架实现创建自定义类库的方法
Dec 25 PHP
laravel Model 执行事务的实现
Oct 10 PHP
php 多个变量指向同一个引用($b = &amp;$a)用法分析
Nov 13 PHP
PHP cookie与session会话基本用法实例分析
Nov 18 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编码转换函数 自动转换字符集支持数组转换
2012/12/16 PHP
php中的mongodb select常用操作代码示例
2014/09/06 PHP
给大家分享几个常用的PHP函数
2017/01/15 PHP
PHP区块查询实现方法分析
2018/05/12 PHP
ThinkPHP 3.2.3实现加减乘除图片验证码
2018/12/05 PHP
PHP中十六进制颜色与RGB颜色值互转的方法
2019/03/18 PHP
PHP实现无限极分类的两种方式示例【递归和引用方式】
2019/03/25 PHP
解决php用mysql方式连接数据库出现Deprecated报错问题
2019/12/25 PHP
PHP number_format函数原理及实例解析
2020/07/14 PHP
MSN消息提示类
2006/09/05 Javascript
jQuery学习笔记之jQuery动画效果
2013/09/09 Javascript
详解JavaScript编程中正则表达式的使用
2015/10/25 Javascript
JS实现左右无缝轮播图代码
2016/05/01 Javascript
js获取上传文件的绝对路径实现方法
2016/08/02 Javascript
利用jquery实现瀑布流3种案例
2016/09/18 Javascript
node.js连接MongoDB数据库的2种方法教程
2017/05/17 Javascript
laydate如何根据开始时间或者结束时间限制范围
2018/11/15 Javascript
JavaScript JMap类定义与使用方法示例
2019/01/22 Javascript
vue如何在项目中调用腾讯云的滑动验证码
2020/07/15 Javascript
[12:36]《DOTA2》国服注册与激活指南全攻略
2013/04/28 DOTA
用python实现批量重命名文件的代码
2012/05/25 Python
Python多线程学习资料
2012/12/19 Python
python完成FizzBuzzWhizz问题(拉勾网面试题)示例
2014/05/05 Python
Python采用raw_input读取输入值的方法
2014/08/18 Python
Python Django 封装分页成通用的模块详解
2019/08/21 Python
python requests模拟登陆github的实现方法
2019/12/26 Python
详解python tcp编程
2020/08/24 Python
python对 MySQL 数据库进行增删改查的脚本
2020/10/22 Python
Clarks西班牙官方在线商店:clarks鞋
2019/05/03 全球购物
校园演讲稿汇总
2014/05/21 职场文书
社区维稳工作方案
2014/06/06 职场文书
运动会广播稿200米(5篇)
2014/10/15 职场文书
技能培训通讯稿
2015/07/18 职场文书
教你怎么用Python处理excel实现自动化办公
2021/04/30 Python
Python实现学生管理系统并生成exe可执行文件详解流程
2022/01/22 Python
浅谈Node的内存泄露问题
2022/05/06 NodeJs