当前位置:首页 > 日记 > 正文

PHP实现的封装验证码类详细解决方案

PHP实现的封装验证码类详细解决方案
用PHP编写一个验证代码类并封装它。
课程名称:validationcode.class.php
代码如下:
复制代码代码如下所示:
< PHP
类validationcode {
私人宽度;
私人身高;
画布的大小;
私有$图像;
私人disturbcolornum美元;
私人$码;
功能__construct($宽度= 80美元= 20美元,高度,大小= 4){
$ >宽度=宽度;
$ =高度=高度;
美元->大小= $大小;
美元->码=美元-> createCheckCode();
美元=楼层(宽*高/ 15);

如果($数>240 - $ codeNum){
美元-> disturbcolornum = 240 - $大小;
其他{ }
美元-> disturbcolornum = $号;
}

}
通过这种方法访问/输出图像浏览器。
功能秀-视觉($ fontface = ){
第一步:创建背景图像
美元-> createimage();
第二步:设置/干扰元素
美元-> setdisturbcolor();
第三步:对图像随机绘制文本
美元-> outputText($ fontface);
第四步:输出图像
美元->效果();
}

通过调用方法获得随机创建的验证代码字符串
功能getcheckcode(){
返回这个->码;
}
私有函数createimage(){
创建图像资源
美元->新建一个真彩色图像(图像=美元->美元->宽度、高度);
随机背景色
BackColor = imagecolorallocate美元(美元->图像,兰德(225, 255),伦德(225255),和(225, 255));
提姆填充颜色背景
imagefill(美元0, 0美元->图像,背景色);
设置边框颜色
边境= imagecolorallocate(美元美元->图像,0, 0, 0);
绘制矩形
Imagerectangle(美元->图像,0, 0美元-> width-1,美元->美元height-1,边境);
}
私有函数setdisturbcolor(){
为($我= 0;idisturbcolornum美元美元;i++){
颜色= imagecolorallocate美元(美元->图像,兰德(0, 255),伦德(0, 255),伦德(0, 255));
imagesetpixel(美元->图像,兰特(1美元->宽度2),伦德(1,美元->身高-2),为彩色);
}
($ i = 0;$ i < 10;$ + +){
颜色= imagecolorallocate美元(美元->图像,兰德(200, 255)、(200, 255)、兰特兰特(200, 255));
imagearc(美元->图像,伦德(10,美元->宽度)、伦德(10美元->高度),伦德(30, 300),伦德(20, 200),55, 44美元的颜色);
}
}
私有函数createCheckCode(){
这里主要来自2随机代码的开头,以区分1和l。
为代码=23456789abcdefghijkmnpqrstuvwxyzabcdefghijkmnpqrstuvwxyz ;
$=;
对(我= 0美元美元美元的大小;我;i++){
$字符= $代码{兰特(0,strlen($代码)- 1)};
$字符串= $ char;
}
返回$字符串;
}
私有函数outputText($ fontface = ){
为($我= 0;icodenum美元美元;i++){
字体颜色= imagecolorallocate美元(美元->图像,兰德(0, 128),伦德(0, 128),伦德(0, 128));
如果($ fontface = =){
$字体=兰特(3, 5);
X元=地板(宽度/美元->美元-> codeNum)*我+ 3美元;
Y元=兰特(0美元->平台高:15);
imagechar(美元->图像、字体美元,$ X,Y元,美元->码{我},为字体颜色);
其他{ }
$字体=兰特(12, 16);
X元=地板((($这-> width-8)/美元-> codeNum)*我+ 8美元;
Y元=兰特(合字体+ 5,美元->高度);
imagettftext(美元->图像、字体美元,伦德(30, 30美元),X、Y元,美元美元的字体颜色,fontface,美元->码{我});
}
}
}
私有函数效果(){
如果(imagetypes img_gif()){
页眉(内容类型:图像);
imagepng(美元->图像);
} else if(imagetypes img_jpg()){
页眉(内容类型:图像);
imagepng(美元->图像);
} else if(imagetypes img_png()){
页眉(内容类型:图像);
imagepng(美元->图像);
} else if(imagetypes img_wbmp()){
标题(内容类型:图像/越南盾。WAP。WBMP );
imagepng(美元->图像);
其他{ }
死亡(PHP不支持图像创建);
}
}
功能__destruct(){
销毁一图像(美元->图像);
}
}
使用如下:
测试,调用验证代码类
code.php
复制代码代码如下所示:
< PHP
session_start();
包括validationcode。类。PHP ;
为代码=新validationcode(80, 20, 4);
($代码->秀-视觉); / /输出为注册或登录页面
_session { } =美元美元代码-> getcheckcode(代码); / /保存到服务器的验证码

相关文章

hpzstatn.exe的功能是什么该hpzsta

hpzstatn.exe的功能是什么该hpzsta

查询,功能,过程,电脑软件,hpzstatn,点评:hpzstatn.exe是HP的HP打印机的硬件驱动程序 进程文件:hpzstatn或hpzstatn.exe 进程名称:HP Deskjet任务栏实用 过程类别:安全风险的过程 英文描述: hpzstatn.exe是一个过程,属于HP Deskjet任务栏工具是…

win7鼠标移动到桌面和显示桌面不响

win7鼠标移动到桌面和显示桌面不响

显示桌面,鼠标移动,桌面,响应,电脑软件,点评:win7任务栏最右边的部分,默认情况下,如果你移动鼠标在win7桌面右下方的桌面上,等待大约0.5秒钟的时间,你可以暂时显示桌面。如果您没有出现,请按照以下方法解决。 为什么鼠标移动到显示桌面,没有响应 …

它会移动的移动版!三大平台

它会移动的移动版!三大平台

平台,三大,它会,电脑软件,它是一个经典的音乐播放器,以专注的态度、精湛的技术,简单的界面,赢得了众多的粉丝,但在最近几年有点停滞不前,尤其是在国内市场,除了少量的忠诚,也敌不过那些华丽的XX音乐。 但现在,它已准备好重新开始,开放移动时代,而进…

后装Win8,电脑屏幕模糊,分辨率不能调

后装Win8,电脑屏幕模糊,分辨率不能调

分辨率,调整,模糊,电脑屏幕,电脑软件,问题: 在一小部分用户安装Win8系统,显示屏幕变得模糊。结果发现,屏幕分辨率太低,无法调整分辨率。 答案uff1a 安装Win8的计算机后,上述现象,由于Win8.1系统默认的显卡驱动兼容性差,更新显卡驱动。 Win8更新…

下载速度慢不限于下载速度(解决方案

下载速度慢不限于下载速度(解决方案

下载速度,解决方案,下载,速度慢,电脑软件,问题: 我用诺拉已经两年了,而且曾经很好。现在下载速度很慢,也可以根据Nora论坛提供的解决方案来解决。下载新版本,添加优先级,到官方网站,看电影,网络测试等等。不,不是像Nora一定要打雷,不是VIP会员限制…

PHPjson_decode功能详细分析

PHPjson_decode功能详细分析

功能,详细,电脑软件,PHPjson_decode,1。功能简介 1,这个函数有四个参数,一般在前两个使用中使用,具体参数可以在手册中看到。 2,第一个参数是JSON格式字符串,第二个参数是布尔值(false被转换为对象,真的被转换成数组,默认为false),如果转换失败,返回n…

通过PHP引用地址更改变量值的问题

通过PHP引用地址更改变量值的问题

引用,地址,变量值,电脑软件,PHP,复制代码代码如下所示: $ foo =鲍勃'; / /鲍勃分配给变量$foo $ bar = $; $; 美元=我的名字是$ ; $栏; 还修改了 > 输出: 鲍勃 我叫鲍伯。 我叫鲍伯。 我们看到,在引用和赋值之后,原始值实际上被修改了,但是在赋值…

关掉Fedora8不需要的服务

关掉Fedora8不需要的服务

服务,不需要,电脑软件,注释:单击系统管理服务。如果你不想下次启动服务,在服务前的基。 consolekit fedota的新功能,如果你想使用这个新功能,把它关掉,关掉它。 Anacron ATD crond 这是一些调试程序的后台服务,和一般的桌面用户可以Anacron,一 …

Windows任务管理器的主版本是如何

Windows任务管理器的主版本是如何

任务管理器,本是,主版,电脑软件,Windows,评论:很多新手朋友都被任务管理人员禁止,没有办法对付他们。下面是Windows的家庭版本的一个很好的解决方案。 如果你是一个Windows家庭版,因为没有组策略,可以使用注册表修复,地点:hkey_current_usersoftw…

构建Linux防火墙的概念和使用iptab

构建Linux防火墙的概念和使用iptab

防火墙,电脑软件,Linux,iptables,回顾:目标(目标) 正如我们已经知道的,目标是由规则指定的操作,以及与规则匹配的数据包执行这些操作。除了允许用户定义的目标之外,还有许多可用的目标选项。用于建立高级规则的目标,如日志、重定向、标记、镜像和…

什么过程picsvr过程查询picsvr.exe

什么过程picsvr过程查询picsvr.exe

查询,过程,电脑软件,picsvr,exe,点评:picsvr.exe是篡改程序,篡改IE设置,在桌面创建图标指向其合作伙伴网站 进程文件:picsvr或picsvr.exe 进程名称:adware.delfin项目过程。 过程类别:安全风险的过程 英文描述: picsvr.exe or这意味着它会间歇性…

proflwiz是proflwiz.exe-使用

proflwiz是proflwiz.exe-使用

电脑软件,proflwiz,exe,点评:proflwiz.exe是微软微软Office家族识别转换工具 进程文件:proflwiz或proflwiz.exe 进程名称:微软Office文件传递向导 过程类别:安全风险的过程 英文描述: proflwiz.exe是一个过程,属于产品给办公室文件从一台计算机…