验证码的形式越来越多,但用js验证码总是不方便,所以我们学会了PHP实现验证码。嗯,其实什么都没有做,但不想浪费时间,所以我学会
执行PHP验证码的。正所谓,技术不压身。此外,它也可以被封装成一个
函数,这也方便以后使用时,当然它不是包装。
你先附上一张效果图。
因为
注册码
经常被用来防止机器的恶意注册。这里我发布了PNG图像验证码的基本
图片,很简单但很清晰。
1。制作PNG图片
2。
设置图片的
背景色
三.设置
字体的颜色和样式
4。产生4位数字的随机验证码。
5、
调整每个字符和
位置的旋转角度,生成PNG图像。
6、对原始配准线进行噪声和干扰分析,防止图像的恶意配准。
7。输出图片
8,释放画面的记忆。
Authcode.php
文件 代码
< PHP
session_start();
头('content-type:图像/格式);
创建图片
我=画面欣赏美元($ X = 130,Y元= 45);
BG = imagecolorallocate美元(合我,伦德(50200)、(0155)、兰特兰特(0155)); / /叫imagecolorallocate第一时间()将基于图像填充背景色
字体颜色= imagecolorallocate美元(合我,255, 255, 255); / /字体颜色
$字体样式=摇滚。TTF '; / /字体样式,可以
发现在C: Windows 字体文件夹,我把它放在同一
目录下,authcode.php文件,这里可以
替换其他字体样式
随机字符
($ i = 0;$ i < 4;$ + +){
randasciinumarray美元=阵列(RAND(48,57)、伦德(65,90));
randasciinum美元=美元randasciinumarray {兰德(0, 1)};
randstr美元= CHR($ randasciinum);
imagettftext(合我,30,伦德(20)-兰德(0.25),5 + $我* 30、伦德(30、35美元美元),字体颜色,字体样式,randstr美元);
为验证码= $ randstr;
}
_session美元{ 'authcode} = $ randfourstr; / /
用户和用户
输入验证码的比较
线路干扰
($ i = 0;$ i < 8;$ + +){
颜色= imagecolorallocate美元(合我,兰德(0255)、(0255)、兰特兰特(0255));
imageline(合我,伦德(0,X),0兰特(0,X),Y元,美元的颜色);
}
干扰
($ i = 0;$ i < 250;$ + +){
imagesetpixel(合我,伦德(0,X),伦德(0,Y元美元),字体颜色);
}
imagepng(为我);
销毁一图像(为我);
>
以上是php验证码生成原理及实现的相关知识,希望能对您有所帮助。