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 相关文章推荐
了解Joomla 这款来自国外的php网站管理系统
Mar 11 PHP
PHP中调用ASP.NET的WebService的代码
Apr 22 PHP
php中定时计划任务的实现原理
Jan 08 PHP
解析Extjs与php数据交互(增删查改)
Jun 25 PHP
PHP图像处理类库MagickWand用法实例分析
May 21 PHP
typecho插件编写教程(二):写一个新插件
May 28 PHP
使用PHPCMS搭建wap手机网站
Sep 20 PHP
开启PHP的伪静态模式
Dec 31 PHP
CI框架AR数据库操作常用函数总结
Nov 21 PHP
PHP mysqli事务操作常用方法分析
Jul 22 PHP
在laravel-admin中列表中禁止某行编辑、删除的方法
Oct 03 PHP
php的无刷新操作实现方法分析
Feb 28 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短网址的生成代码(仿微博短网址)
2014/05/07 PHP
基于GD2图形库的PHP生成图片缩略图类代码分享
2015/02/08 PHP
php查询操作实现投票功能
2016/05/09 PHP
PHP流Streams、包装器wrapper概念与用法实例详解
2017/11/17 PHP
PHP 应用容器化以及部署方法
2018/02/12 PHP
详解PHP变量传值赋值和引用赋值变量销毁
2019/03/23 PHP
PHP常见的几种攻击方式实例小结
2019/04/29 PHP
js tab 选项卡
2009/04/26 Javascript
jQuery 动态酷效果实现总结
2009/12/27 Javascript
JavaScript/jQuery 表单美化插件小结
2012/02/14 Javascript
js实现杯子倒水问题自动求解程序
2013/03/25 Javascript
js数组操作学习总结
2013/11/04 Javascript
JavaScript避免代码的重复执行经验技巧分享
2014/04/17 Javascript
Javascript实现鼠标右键特色菜单
2015/08/04 Javascript
js点击按钮实现水波纹效果代码(CSS3和Canves)
2016/09/15 Javascript
js获取指定字符前/后的字符串简单实例
2016/10/27 Javascript
js实现多行文本框统计剩余字数功能
2017/03/28 Javascript
微信小程序五子棋游戏的棋盘,重置,对弈实现方法【附demo源码下载】
2019/02/20 Javascript
使用 vue 实现灭霸打响指英雄消失的效果附demo
2019/05/06 Javascript
Flutter部件内部状态管理小结之实现Vue的v-model功能
2019/06/11 Javascript
解决新django中的path不能使用正则表达式的问题
2018/12/18 Python
python使用for循环计算0-100的整数的和方法
2019/02/01 Python
解决Python中定时任务线程无法自动退出的问题
2019/02/18 Python
pytorch 模型可视化的例子
2019/08/17 Python
Anaconda配置pytorch-gpu虚拟环境的图文教程
2020/04/16 Python
python获取系统内存占用信息的实例方法
2020/07/17 Python
详解如何修改python中字典的键和值
2020/09/29 Python
前端实现打印图像功能
2019/08/27 HTML / CSS
荷兰牛仔裤网上商店:Jeans Centre
2018/04/03 全球购物
英国运动风奢侈品购物网站:Maison De Fashion
2020/08/28 全球购物
银行类自荐信
2014/02/04 职场文书
涉密人员保密承诺书
2014/05/28 职场文书
企业管理标语
2014/06/10 职场文书
房屋授权无偿使用证明
2014/11/29 职场文书
失职检讨书大全
2015/01/26 职场文书
大学生求职简历自我评价
2015/03/02 职场文书