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 相关文章推荐
Discuz!5的PHP代码高亮显示插件(黑暗中的舞者更新)
Jan 29 PHP
用PHP生成静态HTML速度快类库
Mar 18 PHP
PHP开发环境配置(MySQL数据库安装图文教程)
Apr 28 PHP
PHP $_FILES函数详解
Mar 09 PHP
ThinkPHP中的系统常量和预定义常量集合
Jul 01 PHP
PHP代码实现表单数据验证类
Jul 28 PHP
浅谈PHP中的
Apr 23 PHP
php使用get_class_methods()函数获取分类的方法
Jul 20 PHP
php实现的网页版剪刀石头布游戏示例
Nov 25 PHP
关于php几种字符串连接的效率比较(详解)
Feb 22 PHP
Laravel学习教程之request validation的编写
Oct 25 PHP
laravel框架数据库操作、查询构建器、Eloquent ORM操作实例分析
Dec 20 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 5.0创建图形的巧妙方法
2010/10/12 PHP
用PHP+MySQL搭建聊天室功能实例代码
2012/08/20 PHP
Zend Framework教程之模型Model用法简单实例
2016/03/04 PHP
tp5框架使用composer实现日志记录功能示例
2019/01/10 PHP
Laravel基础-关于引入公共文件的两种方式
2019/10/18 PHP
浅析JavaScript中的类型和对象
2013/11/29 Javascript
快速解决jquery之get缓存问题的最简单方法介绍
2013/12/19 Javascript
JS+CSS实现自动改变切换方向图片幻灯切换效果的方法
2015/03/02 Javascript
基于bootstrap插件实现autocomplete自动完成表单
2016/05/07 Javascript
AngularJS 单元测试(一)详解
2016/09/21 Javascript
JS ES6多行字符串与连接字符串的表示方法
2017/04/26 Javascript
详解Vue使用命令行搭建单页面应用
2017/05/24 Javascript
详解微信小程序中的页面代码中的模板的封装
2017/10/12 Javascript
解决angularjs中同步执行http请求的方法
2018/08/13 Javascript
微信小程序使用字体图标的方法
2019/05/23 Javascript
JavaScript判断浏览器版本的方法
2019/11/03 Javascript
在vue中实现嵌套页面(iframe)
2020/07/30 Javascript
[48:51]完美世界DOTA2联赛PWL S2 Magma vs InkIce 第一场 11.28
2020/12/02 DOTA
Python使用htpasswd实现基本认证授权的例子
2014/06/10 Python
python中xrange用法分析
2015/04/15 Python
Python从MP3文件获取id3的方法
2015/06/15 Python
python使用wmi模块获取windows下的系统信息 监控系统
2015/10/27 Python
pandas DataFrame 交集并集补集的实现
2019/06/24 Python
python字典的常用方法总结
2019/07/31 Python
python Django里CSRF 对应策略详解
2019/08/05 Python
Python flask框架端口失效解决方案
2020/06/04 Python
Python实现自动签到脚本功能
2020/08/20 Python
Python 带星号(* 或 **)的函数参数详解
2021/02/23 Python
Turnbull & Asser官网:英国皇室御用的顶级定制衬衫
2019/01/31 全球购物
英国户外装备商店:Ultimate Outdoors
2019/05/07 全球购物
美国精油公司:Plant Therapy
2019/05/17 全球购物
业务部主管岗位职责
2014/01/29 职场文书
烹饪自我鉴定
2014/03/01 职场文书
学习教师敬业奉献模范事迹材料思想汇报
2014/09/19 职场文书
Python中itertools库的四个函数介绍
2022/04/06 Python
三种方式清除vue路由跳转router-link的历史记录
2022/04/10 Vue.js