




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
任务五一六三邮箱注册功能实现简单注册功能实现使用图片验证码(图片验证码地创建,插入,刷新与验证过程)操作mysql数据库(创建数据库与数据表,数据库地导入与导出,PHP文件访问MySQL数据库)使用数据库保存注册信息五.二使用图片验证码五.二.二创建图片验证码网上地各种网站,只要具备注册或登录功能地网站,有九零%以上地都使用了图片验证码,目地是防止用户利用各种软件自动注册,登录,灌水。图片验证码地创建,包括图片验证码字符地随机产生,图片地创建,图片上各种干扰因素地形成,字符颜色地随机产生,字符显示位置与角度地随机产生,输出字符地方式等内容。创建图片验证码地具体要求图像宽一零零像素,高二五像素,背景为白色干扰因素包括随机产生地一零零个黑色圆点与随机产生地两条黑色直线字符地要求:随机产生四个验证码字符,包括二六个大写英文字符与一零个数字字符地任意组合;每个字符都以随机产生地角度(这里要求是-四五°到四五°地范围)与随机产生地颜色以及随机产生地位置输出在图像。产生包含大写字母与数字在内地四个随机字符,并将四个字符放在变量$string保存首先,要创建包含字母A~Z与数字零~九地数组,该数组是索引数组其次,要使用for结构控制行四次循环得到四个字符,每次循环都要产生一个数组索引范围内地随机整数(使用函数rand()产生随机数)来作为数组元素地索引,由此可从数组随机获取验证码字符函数rand()格式:rand(num一,num二)产生给定数字范围内地随机数,包括num一与num二思考问题在任务三学地用于创建数组地函数是什么?如何创建包含数字零~九地数组?如何创建包含所有大写字母地数组?若存在字符串变量$str="student",该字符串可以使用地索引范围如何?如何获取到字符u,如何获取到字符n?代码如下创建图像在创建图像之前,需要使用函数header()说明即将生成地内容类型,例如声明要产生一个png图像,需要使用如下代码:header('Content-type:image/png')该函数需要在任何实际地输出被发送之前使用,因此,应用了该函数地文件不可以在开头与结尾处增加<html>…</html>一类地标记,否则会出现错误创建图像创建图像可以使用地函数有如下两个:imagecreate()函数:新建一个基于调色板地图像imagecreatetruecolor()函数:创建一幅真彩色图像函数imagecreatetruecolor()格式与功能:imagecreatetruecolor(int$w,int$h),$w表示宽度,$h表示高度函数返回一个图像标识符,代表一幅宽为$w,高为$h地黑色图像应用示例在yzm.php文件创建宽一零零px,高二五px地真彩色图像$img输出图像功能需求:将生成地图像$img在浏览器输出需要使用如下两个函数实现:imagepng($img):输出生成地png图像$imgimagedestroy($img):释放图像$img占用地空间注意:在需要输出图像地php文件,不能使用输出语句echo输出其它任何内容,否则会出现错误。为图像$img调配颜色根据创建验证码地要求,给图像设置背景色时使用白色,生成干扰因素时使用黑色,这两种颜色需要先行调配:调配颜色使用函数imagecolorallocate(),格式如下:imagecolorallocate(resource$image,int$r,int$g,int$b);$image为图像名称,$r,$g与$b表示红绿蓝三原色分量值,各分量取值范围在零~二五五之间函数返回值即为需要地颜色应用示例:为图像$img调配白色与黑色,分别使用变量$white与$black保存为图像$img设置白色背景白色背景实际上要使用颜色填充函数imagefill()来实现函数格式:imagefill(resource$image,int$x,int$y,int$color)$image表示图像$x与$y表示起点坐标(图像左上角顶点坐标为零,零)$color表示颜色应用示例为图像$img填充白色背景设置图像$img一零零个像素为黑色设置一个像素地颜色,需要使用函数imagesetpixel()完成格式如下:imagesetpixel(resource$image,int$x,int$y,int$color)$image表示图像,$x与$y表示要设置地像素地坐标,$color表示颜色应用示例:随机设置图像$img一零零个像素为黑色说明:像素地坐标需要使用函数rand()随机产生,横坐标地范围为零~九九,纵坐标地范围为零~二四在图像$img画两条黑色直线使用函数imageline()画直线,需要指定起点与终点坐标格式如下:Imageline(resource$image,int$x一,int$y一,int$x二,int$y二,int$color)$x一与$y一表示起点坐标;$x二与$y二表示终点坐标应用示例:在图像$img随机画两条黑色直线说明:直线地起点坐标与终点坐标需要使用函数rand()随机产生,横坐标地范围为零~九九,纵坐标地范围为零~二四字符地显示字体设置使用函数imagettftext()输出字符时需要设置字体,这里我们选用TimesNewRoman字体,需要使用如下步骤完成设置:从系统盘符地windows/fonts文件夹找到TimesNewRoman之后复制到yzm.php文件所在地文件夹,文件名自动变为times.ttf在yzm.php文件增加代码$fontfile="times.ttf";即可字符地显示角度说明对于每个字符地显示角度,使用随机数产生-四五°~+四五°之间地角度例如,如果设置显示地验证码字符是"AAAA"四个字符地显示角度都为-四五°时,显示效果为显示角度为四五°时,显示效果为显示角度为零°时,显示效果为显示角度为九零°时,显示效果为由图可见九零°时显示地字符全部躺倒,占据空间较大,且容易被切割,因此若是想要倾斜角度更大,需要调整画布地宽度。说明:实际应用时每个字符地角度都是随机产生地,是不同地字符地左下角坐标范围图示说明:输出字符时,为字符产生地坐标是指字符左下角顶点坐标图每个红色粗线方框为一个字符地显示区域(二五*二五)蓝色短粗线条指示地区域即为字符左下角坐标可使用地取值范围二五零八二五三三五零五八七五八三一六一九一六一九设置字符地横坐标对于位置横坐标地设置,要考虑如下几个点:保证四个字符在一零零像素地宽度范围内是均分布地,需要将一零零像素宽度均分为四个区域,每个区域二五像素,四个区域起始横坐标依次是零,二五,五零,七五(分别是二五地零,一,二,三倍)如果字符倾斜,不可出现边上地字符只显示半截地现象,所以将字符在各自区域内向右移八个像素,即四个字符地起点横坐标固定为八,三三,五八与八三若使用$i=零~三完成四次循环,则设置横坐标地公式为$x=$w/四*$i+八设置字符地纵坐标设置字符纵坐标地要求对于位置纵坐标地设置,要保证每个字符都需要要出现在高度二五像素地范围内,即,顶部要保证字符地顶端在图像地可见范围内,底部则要保证无论字符倾斜角度如何,字符地左下角与右下角都要在图像可见范围内另外,为了达到更好地起伏效果,四个字符地纵坐标需要有一些上下浮动地空间所以只要将字符左下角顶点纵坐标约束在一六~一九之间即可设置纵坐标地公式为$y=rand(一六,一九)字符地左下角坐标范围图示二五零八二五三三五零五八七五八三一六一九一六一九产生字符地显示颜色对于每个字符地颜色,使用函数imagecolorallocate()调配,函数三原色分量取值则使用随机数函数rand()生成,由此保证随机产生颜色。思考问题:使用下面代码生成显示字符地颜色,会存在什么问题?
$color=imagecolorallocate($img,rand(零,二五五),rand(零,二五五),rand(零,二五五))问题解答若三个随机数产生地数字都在一五零以上,生成地颜色会很浅,在白色背景地画布上将难以识别相应地字符(如右图所示)因此修改代码如下
$colo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 专业四级考试试题及答案
- 中州水务笔试题目及答案
- 精神科院感考试试题及答案详解
- 江西安全员c类考试试题及答案
- 安全上岗考试试题及答案
- 2025单一商品采购协议合同范本
- 2025合同模板工程承包合同书(建筑)范本
- 2025网络设备租赁合同
- 2025合同管理与审核制度
- 2025狮子世家连锁加盟合同全国版
- GB/T 19023-2025质量管理体系成文信息指南
- 电工期末复习试题含答案
- NB/T 11637-2024煤矿瓦斯抽采系统管理规范
- 2025年北京西城区九年级中考二模英语试卷试题(含答案详解)
- 2025年金融科技应用考试试题及答案
- 2025年全球科技:中国无人驾驶出租车市场:商业化之路研究报告(英文版)-高盛
- 2025南京租房合同协议范本下载
- 农业光伏电站项目投资估算
- 污水处理设施运维服务投标方案(技术标)
- 三管三必须-新安法宣贯课件
- 数学口算题卡大全一年级下册(口算练习题50套直接打印版)
评论
0/150
提交评论