PHP制做数字、字母型验证码及其工做原理剖析

 

准备:

    使用PHP生成验证码图片,须要PHP的GD模块,GD扩展库用于处理图像。因此先去检查你的服务器使用的PHP版本是否开启GD模块,你可使用PHP内置函数phpinfo()去检查,至于如何去作就不在这里说了,相信每一个PHPer都懂的。php

    开启或关闭GD模块:打开PHP配置文件php.ini,找到extension=php_gd2.dll(我当前PHP版本是5.5.12,因此用的是gd2),在extension加个分号(;)表明关闭,去掉分号表明开启。浏览器

思路:

        一、        生成底图(能够加上干扰点、干扰线…)服务器

        二、        生成验证码的内容(随机的,注意调整好坐标哦)session

        三、        保存验证码内容在服务端(经过使用session会话)函数

        四、        验证用户输入的验证码是否与在服务端一致spa

步骤:

    (一)下面新建一个PHP文件captcha.php,就开始敲代码吧!!orm

    一、生成底图使用到的关键函数有imagecreatetruecolor(); Imagecolorallocate(); imagefill()图片

    实现代码:ip

    二、生成验证码内容使用的关键函数有imagecolorallocate(); imagestring();string

    实现代码:

    三、生成干扰点代码以下:函数-> imagecolorallocate(); imagesetpixel();

    四、生成干扰线段代码以下:函数-> imagecolorallocate(); Imageline();

    五、收尾工做:

    六、执行captcha.php,当你在浏览器上看到这样一张图片,说明你已经成功生成了验证码。

    为了让大伙更加真实、直观地了解验证码的完整工做原理,下面咱们一块儿动手来体验一把噻!!

(二)新建一个PHP文件form.php,添加一些HTML五、CSS三、JavaScript代码,最终呈现给用户,以下:

    执行form.php,浏览器显示以下:

    (三)新建一个存放逻辑处理代码的PHP文件check.php: