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代码
Dec 06 PHP
php中文字母数字验证码实现代码
Apr 25 PHP
Php Mssql操作简单封装支持存储过程
Dec 11 PHP
php获取mysql数据库中的所有表名的代码
Apr 23 PHP
php smarty截取中文字符乱码问题?gb2312/utf-8
Nov 07 PHP
PHP输出缓存ob系列函数详解
Mar 11 PHP
php使用codebase生成随机数
Mar 25 PHP
php+ajax制作无刷新留言板
Oct 27 PHP
PHP实现的DES加密解密封装类完整实例
Apr 29 PHP
浅析PHP中的闭包和匿名函数
Dec 25 PHP
浅谈PHP SHA1withRSA加密生成签名及验签
Mar 18 PHP
PHP For循环字母A-Z当超过26个字母时输出AA,AB,AC
Feb 16 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/09/14 PHP
Laravel框架中Blade模板的用法示例
2017/08/30 PHP
深入理解JavaScript是如何实现继承的
2013/12/12 Javascript
Flow之一个新的Javascript静态类型检查器
2015/12/21 Javascript
浅析BootStrap Treeview的简单使用
2016/10/12 Javascript
jQuery简单实现遍历单选框的方法
2017/03/06 Javascript
vue实现点击图片放大效果
2017/08/15 Javascript
javaScript字符串工具类StringUtils详解
2017/12/08 Javascript
Vue 应用中结合vux使用微信 jssdk的方法
2018/08/28 Javascript
微信小程序wx:for循环的实例详解
2018/10/07 Javascript
layui form表单提交后实现自动刷新
2019/10/25 Javascript
小程序实现点击tab切换左右滑动
2020/11/16 Javascript
python添加模块搜索路径方法
2017/09/11 Python
Python应用库大全总结
2018/05/30 Python
Python使用pyautogui模块实现自动化鼠标和键盘操作示例
2018/09/04 Python
利用python3 的pygame模块实现塔防游戏
2019/12/30 Python
python实现斗地主分牌洗牌
2020/06/22 Python
python使用QQ邮箱实现自动发送邮件
2020/06/22 Python
阿波罗盒子:Apollo Box
2017/08/14 全球购物
struct与class的区别
2014/02/03 面试题
C#笔试题和英文面试题
2013/02/07 面试题
工艺工程师工作职责
2013/11/23 职场文书
教学器材管理制度
2014/01/26 职场文书
技校学生个人职业生涯规划范文
2014/03/03 职场文书
核心价值观演讲稿
2014/05/13 职场文书
群众路线班子对照检查材料
2014/09/25 职场文书
2014党的群众路线教育实践活动学习心得体会
2014/10/31 职场文书
写给领导的感谢信
2015/01/22 职场文书
初三语文教学计划
2015/01/22 职场文书
中考百日冲刺决心书
2015/09/22 职场文书
创业计划书之家政服务
2019/09/18 职场文书
超外差式晶体管收音机的组装与统调
2021/04/22 无线电
python保存大型 .mat 数据文件报错超出 IO 限制的操作
2021/05/10 Python
Python实现照片卡通化
2021/12/06 Python
悬疑名作《朋友游戏》动画无字ED宣传片 新角色公开
2022/04/13 日漫
Java 死锁解决方案
2022/05/11 Java/Android