全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

PHP验证码类文件及调用方式代码详解

代码如下所示:

//验证码类
class ValidateCode {
 private $charset = 'abcdefghkmnprstuvwxyzABCDEFGHKMNPRSTUVWXYZ23456789';//随机因子
 private $code;//验证码
 private $codelen = 4;//验证码长度
 private $width = 130;//宽度
 private $height = 50;//高度
 private $img;//图形资源句柄
 private $font;//指定的字体
 private $fontsize = 20;//指定字体大小
 private $fontcolor;//指定字体颜色
 //构造方法初始化
 public function __construct() {
 $this->font = dirname(__FILE__).'/font/elephant.ttf';//注意字体路径要写对,否则显示不了图片
 }
 //生成随机码
 private function createCode() {
 $_len = strlen($this->charset)-1;
 for ($i=0;$i<$this->codelen;$i++) {
 $this->code .= $this->charset[mt_rand(0,$_len)];
 }
 }
 //生成背景
 private function createBg() {
 $this->img = imagecreatetruecolor($this->width, $this->height);
 $color = imagecolorallocate($this->img, mt_rand(157,255), mt_rand(157,255), mt_rand(157,255));
 imagefilledrectangle($this->img,0,$this->height,$this->width,0,$color);
 }
 //生成文字
 private function createFont() {
 $_x = $this->width / $this->codelen;
 for ($i=0;$i<$this->codelen;$i++) {
 $this->fontcolor = imagecolorallocate($this->img,mt_rand(0,156),mt_rand(0,156),mt_rand(0,156));
 imagettftext($this->img,$this->fontsize,mt_rand(-30,30),$_x*$i+mt_rand(1,5),$this->height / 1.4,$this->fontcolor,$this->font,$this->code[$i]);
 }
 }
 //生成线条、雪花
 private function createLine() {
 //线条
 for ($i=0;$i<6;$i++) {
 $color = imagecolorallocate($this->img,mt_rand(0,156),mt_rand(0,156),mt_rand(0,156));
 imageline($this->img,mt_rand(0,$this->width),mt_rand(0,$this->height),mt_rand(0,$this->width),mt_rand(0,$this->height),$color);
 }
 //雪花
 for ($i=0;$i<100;$i++) {
 $color = imagecolorallocate($this->img,mt_rand(200,255),mt_rand(200,255),mt_rand(200,255));
 imagestring($this->img,mt_rand(1,5),mt_rand(0,$this->width),mt_rand(0,$this->height),'*',$color);
 }
 }
 //输出
 private function outPut() {
 header('Content-type:image/png');
 imagepng($this->img);
 imagedestroy($this->img);
 }
 //对外生成
 public function doimg() {
 $this->createBg();
 $this->createCode();
 $this->createLine();
 $this->createFont();
 $this->outPut();
 }
 //获取验证码
 public function getCode() {
 return strtolower($this->code);
 }
}

使用方法:

1、先把验证码类保存为一个名为 ValidateCode.class.php 的文件;

2、新建一个名为 captcha.php 的文件进行调用该类;

captcha.php

3、引用到页面中,代码如下:

4、一个完整的验证页面,代码如下:

<?php
session_start();
//在页首先要开启session,
//error_reporting(2047);
session_destroy();
//将session去掉,以每次都能取新的session值;
//用seesion 效果不错,也很方便
?>
<html>
<head>
<title>session 图片验证实例</title>
<style type="text/css">
#login p{
margin-top: 15px;
line-height: 20px;
font-size: 14px;
font-weight: bold;
}
#login img{
cursor:pointer;
}
form{
margin-left:20px;
}
</style>
</head> 
<body>
<form id="login" action="" method="post">
<p>此例为session验证实例</p>
<p>
<span>验证码:</span>
<input type="text" name="validate" value="" size=10> 
<img title="点击刷新" src="./captcha.php" align="absbottom" onclick="this.src='captcha.php?'+Math.random();"></img>
</p>
<p>
<input type="submit">
</p>
</form>
<?php
//打印上一个session;
//echo "上一个session:<b>".$_SESSION["authnum_session"]."</b><br>";
$validate="";
if(isset($_POST["validate"])){
$validate=$_POST["validate"];
echo "您刚才输入的是:".$_POST["validate"]."<br>状态:";
if($validate!=$_SESSION["authnum_session"]){
//判断session值与用户输入的验证码是否一致;
echo "<font color=red>输入有误</font>"; 
}else{
echo "<font color=green>通过验证</font>"; 
}
} 
?>

总结

以上所述是小编给大家介绍的PHP验证码类文件及调用方式代码详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


# php  # 验证码类文件  # 验证码  # PHP图像处理技术实例总结【绘图、水印、验证码、图像压缩】  # php实现算术验证码功能  # PHP封装的验证码工具类定义与用法示例  # PHP实现随机数字、字母的验证码功能  # php生成复杂验证码(倾斜  # 正弦干扰线  # 黏贴  # 旋转)  # PHP使用GD库制作验证码的方法(点击验证码或看不清会刷新验证码)  # 一个漂亮的php验证码类(分享)  # PHP生成图片验证码、点击切换实例  # 如何打开php的gd2库  # 基于GD2图形库的PHP生成图片缩略图类代码分享  # PHP基于GD2函数库实现验证码功能示例  # 小编  # 的是  # 在此  # 句柄  # 都能  # 也很  # 给大家  # 所示  # 先把  # 所述  # 给我留言  # 要写  # 感谢大家  # 保存为  # 新建一个  # 页首  # 疑问请  # 有任何  # 此例 


相关文章: 专业制作网站的公司哪家好,建立一个公司网站的费用.有哪些部分,分别要多少钱?  如何使用Golang table-driven基准测试_多组数据测量函数效率  打鱼网站制作软件,波克捕鱼官方号怎么注册?  建站之星后台搭建步骤解析:模板选择与产品管理实操指南  大连网站设计制作招聘信息,大连投诉网站有哪些?  微信小程序 五星评分(包括半颗星评分)实例代码  平台云上自助建站如何快速打造专业网站?  如何在阿里云香港服务器快速搭建网站?  道歉网站制作流程,世纪佳缘致歉小吴事件,相亲网站身份信息伪造该如何稽查?  广州网站设计制作一条龙,广州巨网网络科技有限公司是干什么的?  建站主机服务器选购指南:轻量应用与VPS配置解析  上海网站制作网页,上海本地的生活网站有哪些?最好包括生活的各个方面的?  专业的网站制作设计是什么,如何制作一个企业网站,建设网站的基本步骤有哪些?  b2c电商网站制作流程,b2c水平综合的电商平台?  深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?  网站制作说明怎么写,简述网页设计的流程并说明原因?  建站为何优先选择香港服务器?  网站制作公司排行榜,抖音怎样做个人官方网站  如何在建站宝盒中设置产品搜索功能?  如何自定义建站之星网站的导航菜单样式?  视频网站app制作软件,有什么好的视频聊天网站或者软件?  如何快速使用云服务器搭建个人网站?  建站之星如何实现五合一智能建站与营销推广?  高防服务器租用如何选择配置与防御等级?  音乐网站服务器如何优化API响应速度?  江苏网站制作公司有哪些,江苏书法考级官方网站?  建站IDE高效指南:快速搭建+SEO优化+自适应模板全解析  c++怎么用jemalloc c++替换默认内存分配器【性能】  建站主机核心功能解析:服务器选择与网站搭建流程指南  如何用wdcp快速搭建高效网站?  建站主机选哪种环境更利于SEO优化?  实现点击下箭头变上箭头来回切换的两种方法【推荐】  网站设计制作公司地址,网站建设比较好的公司都有哪些?  定制建站哪家更专业可靠?推荐榜单揭晓  Swift中循环语句中的转移语句 break 和 continue  如何通过网站建站时间优化SEO与用户体验?  股票网站制作软件,网上股票怎么开户?  网站海报制作教学视频教程,有什么免费的高清可商用图片网站,用于海报设计?  邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?  大连 网站制作,大连天途有线官网?  北京专业网站制作设计师招聘,北京白云观官方网站?  建站主机如何安装配置?新手必看操作指南  如何选择CMS系统实现快速建站与SEO优化?  建站之星下载版如何获取与安装?  台州网站建设制作公司,浙江手机无犯罪记录证明怎么开?  已有域名如何快速搭建专属网站?  武汉网站如何制作,黄黄高铁武穴北站途经哪些村庄?  实惠建站价格推荐:2025年高性价比自助建站套餐解析  建站主机无法访问?如何排查域名与服务器问题  Thinkphp 中 distinct 的用法解析 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。