php登录个性验证码,打造PHPCMS的个性验证码(修改攻略)

以phpcms2008sp2为例,主要是修改根目录下的checkcode.php文件。

下面提到的行数是相对官方原版的checkcode.php文件,如你已改过该文件,请搜索对应代码修改即可。

1、修改验证码背景图片的大小:找到第31、32行$imageX = strlen($radomstring)*8;  //验证码图片的宽度,修改成你需要的值$imageY = 20;  //验证码图片的高度,修改成你需要的值

2、修改验证码背景图片的背景色:

找到第46行:imagefill($im, 0, 0, imagecolorallocate($im, 250, 253, 254));

修改第二个()里的三个数字为你需要的背景颜色(色彩三原色,其值从0至255)。

3、修改验证码的位数:

以修改为5位为例(默认是4位),找到第48-51行

imagettftext($im, 12, rand(30, -30), 5, rand(14, 16), $foregroundArr[rand(0,3)], PHPCMS_ROOT.'include/fonts/ALGER.TTF', $string[0]);imagettftext($im, 12, rand(50, -50), 20, rand(14, 16), $foregroundArr[rand(0,3)], PHPCMS_ROOT.'include/fonts/ARIALNI.TTF', $string[1]);imagettftext($im, 12, rand(50, -50), 35, rand(14, 16), $foregroundArr[rand(0,3)], PHPCMS_ROOT.'include/fonts/ALGER.TTF', $string[2]);imagettftext($im, 12, rand(30, -30), 50, rand(14, 16), $foregroundArr[rand(0,3)], PHPCMS_ROOT.'include/fonts/arial.ttf', $string[3]);

(1)增加一行,并将相关变量数值增加imagettftext($im, 12, rand(30, -30), 5, rand(14, 16), $foregroundArr[rand(0,4)], PHPCMS_ROOT.'include/fonts/ALGER.TTF', $string[0]);imagettftext($im, 12, rand(50, -50), 20, rand(14, 16), $foregroundArr[rand(0,4)], PHPCMS_ROOT.'include/fonts/ARIALNI.TTF', $string[1]);imagettftext($im, 12, rand(50, -50), 35, rand(14, 16), $foregroundArr[rand(0,4)], PHPCMS_ROOT.'include/fonts/ALGER.TTF', $string[2]);imagettftext($im, 12, rand(30, -30), 50, rand(14, 16), $foregroundArr[rand(0,4)], PHPCMS_ROOT.'include/fonts/arial.ttf', $string[3]);imagettftext($im, 12, rand(30, -30), 65, rand(14, 16), $foregroundArr[rand(0,4)], PHPCMS_ROOT.'include/fonts/arial.ttf', $string[4]);

(2)修改第29行$_SESSION['checkcode'] = $string = substr($radomstring,0,4); //only display 4 str

为$_SESSION['checkcode'] = $string = substr($radomstring,0,5); //only display 5 str(3)修改第28行$radomstring = $const[0] . $vow[0] .$const[2] . $const[1] . $vow[1] . $const[3] . $vow[3] . $const[4];

为$radomstring = $const[0] . $vow[0] .$const[2] . $const[1] . $vow[1] . $const[3] . $vow[3] . $const[4]. $const[5];

通过以上三步即可修改验证码的位数,以此类推可将验证码修改成6、7、8等多位。注:验证码位数过多时,可能只显示前几位,这时要把验证码背景图片的宽度设宽点。

4、修改验证码字体大小和样式:

找到第48-51行,每一行控制一个验证码字符的样式(以第48行为例,即第一个验证码字符):imagettftext($im, 12, rand(30, -30), 5, rand(14, 16), $foregroundArr[rand(0,3)], PHPCMS_ROOT.'include/fonts/ALGER.TTF', $string[0]);

说明:修改验证码字体大小和样式时,可能显示不全,这时需要综合调整下述几点的参数及验证码背景图片的宽度和高度等。

(1)修改验证码字体大小:

第48行imagettftext($im, 12,中的“12”即为字体大小,数值越大字体越大

(2)修改验证码字符的左右倾斜度:第48行imagettftext($im, 12, rand(30, -30),中的“rand(30, -30)”为验证码字符的左右倾斜度,调整括号里面的数字可改变字符向左和向右的倾斜程度。

(3)修改验证码字符间的距离:

第48行imagettftext($im, 12, rand(30, -30), 5,中的“5”为每个验证码字符离左侧的距离,通过改变数值看调整每个验证码间的距离。

(4)修改验证码字符的上下漂移度:第48行imagettftext($im, 12, rand(30, -30), 5, rand(14, 16),中的“rand(14, 16)”为验证码字符的上下漂移度,调整括号里面的数字可改变字符向上和向下的漂移程度。

(5)修改验证码的字体:

第48行PHPCMS_ROOT.'include/fonts/ALGER.TTF',中的“ALGER.TTF”为每个验证码字符的字体,存放在include/fonts文件夹中,把你喜欢的字体文件放在该文件夹,然后修改对应的行即可。

5、修改验证码图片边框颜色:找到第55行:$border = imagecolorallocate($im, 133, 153, 193);修改()里的三个数字为你需要的边框颜色

6、修改上的小点的颜色:

找到第59行:$pointcol = imagecolorallocate($im, rand(0,255), rand(0,255), rand(0,255));修改()里的数字为你需要的小点颜色范围

7、其他修改:

以上讲到的六点是比较实用的,至于其他的修改(如:验证码字母和数字内容、图像分配颜色、随机显示的线段和椭圆等)这里就不一一累述。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值