您的位置 首页 php

PHP验证码原理及代码实现例子

验证码

验证码原理

Captcha:Completely Automated Public Turing Test to Tell Computers and Humans Apart (全自动区分计算机和人类的 图灵测试 )

验证码的意义:防止网站被别人恶意攻击

原理:人能够从图片中识别图片里面的内容,而电脑做不到。

验证码:将一系列随机产生的字符写入到对应的图片当中,然后将图片发送给浏览器,然后用户通过输入图片上的随机字符,最后发送给服务器进行比对。

图片处理

PHP本身不具备图片处理能力,但是可以通过扩展GD扩展来实现对图片的处理。

加载GD扩展:在安装ecshop的时候已经加载了GD扩展

1.找打破php. ini 中的gd2. dll 扩展,并去掉分号

2.重启 Apache 即可

3.查看gd扩展

php操作gd库

gd库如何实现以上流程?

1. 准备画布

resource imagecreatetruecolor(宽,高):创建一张真彩图片画布

2 画内容:往图片上写入文字(字符)

bool imagestring(资源,字体(大小),x坐标,y坐标,目标 字符串 ,颜色)

在操作图片的过程中,如果要给某个内容上色,必须要先保证已经给当前图片分配好该颜色。

int imagecolorallocate(资源,红,绿,蓝);

3. 保存图片

imagepng(资源,路径):

1. 如果没有第二个参数,表示输出图片

2. 如果有第二个参数,表示保存图片

a) 输出图片:声明输出的类型

b) 将图片资源里的内容取出来当做图片输出

制作验证码图片

需求:

1. 图片的宽为200,高为50

2. 图片的背景颜色能够随机改变

填充背景色

imagefill(资源,x坐标,y坐标,颜色)

3. 字符串也是随机得到(字体颜色也是随机)

中文验证码

中文验证码跟普通字母验证码的唯一区别就是因为字符集的区别。

使用imagestring来写中文的话,出现的是乱码。

将中文写入到图片需要使用imagettftext函数

imagettftext(资源,字体大小,旋转角度,x坐标,y坐标,颜色,字体文件,字符)

文章来源:智云一二三科技

文章标题:PHP验证码原理及代码实现例子

文章地址:https://www.zhihuclub.com/150086.shtml

关于作者: 智云科技

热门文章

网站地图