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 Mysql日期和时间函数集合
Nov 16 PHP
PHP 采集心得技巧
May 15 PHP
php 服务器调试 Zend Debugger 的安装教程
Sep 25 PHP
php实现首页链接查询 友情链接检查的代码
Jan 05 PHP
php echo()和print()、require()和include()函数区别说明
Mar 27 PHP
php自动获取字符串编码函数mb_detect_encoding
May 31 PHP
百度工程师讲PHP函数的实现原理及性能分析(二)
May 13 PHP
PHP网络操作函数汇总
May 18 PHP
Json_decode 解析json字符串为NULL的解决方法(必看)
Feb 17 PHP
深入理解PHP中mt_rand()随机数的安全
Oct 12 PHP
详解php中生成标准uuid(guid)的方法
Apr 28 PHP
解决Laravel5.5下的toArray问题
Oct 15 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脚本数据库功能详解(上)
2006/10/09 PHP
解析PHP跨站刷票的实现代码
2013/06/18 PHP
简单谈谈php中ob_flush和flush的区别
2014/11/27 PHP
解决jQuery插件tipswindown与hintbox冲突
2010/11/05 Javascript
JS保存、读取、换行、转Json报错处理方法
2013/06/14 Javascript
浅析JavaScript函数的调用模式
2016/08/10 Javascript
JavaScript中定时控制Throttle、Debounce和Immediate详解
2016/11/17 Javascript
Vue表单验证插件的制作过程
2017/04/01 Javascript
利用node.js实现反向代理的方法详解
2017/07/24 Javascript
weui框架实现上传、预览和删除图片功能代码
2017/08/24 Javascript
Vue中util的工具函数实例详解
2019/07/08 Javascript
基于js实现逐步显示文字输出代码实例
2020/04/02 Javascript
详解Vue 数据更新了但页面没有更新的 7 种情况汇总及延伸总结
2020/05/28 Javascript
vue实现公共方法抽离
2020/07/31 Javascript
[04:32]DOTA2著名解说配音敌法师 现场专访海涛怒切假腿
2013/12/20 DOTA
Python读取键盘输入的2种方法
2015/06/16 Python
举例讲解如何在Python编程中进行迭代和遍历
2016/01/19 Python
详解python运行三种方式
2019/05/13 Python
Python实现带下标索引的遍历操作示例
2019/05/30 Python
python flask web服务实现更换默认端口和IP的方法
2019/07/26 Python
Python如何调用外部系统命令
2019/08/07 Python
Python PyInstaller安装和使用教程详解
2020/01/08 Python
Pycharm 如何一键加引号的方法步骤
2021/02/05 Python
canvas实现按住鼠标移动绘制出轨迹的示例代码
2018/02/05 HTML / CSS
大专生自荐信
2013/10/04 职场文书
专营店会计助理岗位职责
2013/11/29 职场文书
《盘古开天地》教学反思
2014/02/28 职场文书
同学聚会主持词
2014/03/18 职场文书
机关党员公开承诺书
2014/08/30 职场文书
韩语专业职业生涯规划范文:成功之路就在我们脚下
2014/09/11 职场文书
党的群众路线教育实践活动督导组工作情况汇报
2014/10/28 职场文书
2016年三八红旗手先进事迹材料
2016/02/26 职场文书
详解Vue的sync修饰符
2021/05/15 Vue.js
mysql的数据压缩性能对比详情
2021/11/07 MySQL
用Python实现屏幕截图详解
2022/01/22 Python
Grafana可视化监控系统结合SpringBoot使用
2022/04/19 Redis