织梦升级6位或6位以上的数字+字母验证码的方法
操作方法
- 01
你的织梦网站是否经常遭受到注册机的恶意注册?那么我们怎样才能防止这样的事情发生呢?首先我们应该升级织梦网站的验证码,当然四位数的验证码已经阻止不了注册机了。我们只能升级6位或6位以上的验证码。如何才能实现呢?大家可以到我的南方女性网www.gzpoling.com注册试用一下效果 找到网站目录下includedimgck.php文件 一、升级纯大写字母的6位数验证码。 找到这段代码 //获取随机字符 $rndstring = ''; for($i=0; $i<3;$i++) $rndstring .= chr(mt_rand(65,90)); 将其更改为: $rndstring = ''; for($i=0; $i<6;$i++) $rndstring .= chr(mt_rand(65,90)); 更改完这段代码后,在你的网站验证码区域是看不到我们后面的那两个字母,那么我们还要更改一下的代码。 找到这段代码: //创建图片,并设置背景色 $im = imagecreate(55,20); //50为方框的宽度、20为高度 ImageColorAllocate($im, 255,255,255); 将其更改为: //创建图片,并设置背景色 $im = imagecreate(67,22); ImageColorAllocate($im, 255,255,255); 找到这段代码: //背景线 $lineColor1 = ImageColorAllocate($im,240,220,180); $lineColor2 =ImageColorAllocate($im,250,250,170); for($j=3;$j<=18;$j=$j+3) { imageline($im,2,$j,65,$j,$lineColor1); } for($j=2;$j<49;$j=$j+(mt_rand(3,6))) { imageline($im,$j,2,$j-6,18,$lineColor2); } //画边框 $bordercolor = ImageColorAllocate($im,0x99,0x99,0x99); imagerectangle($im, 0, 0, 54, 19,$bordercolor); 更改为: //背景线 $lineColor1 =ImageColorAllocate($im,240,220,180); $lineColor2 =ImageColorAllocate($im,250,250,170); for($j=3;$j<=18;$j=$j+3) { imageline($im,2,$j,65,$j,$lineColor1); } for($j=2;$j<62;$j=$j+(mt_rand(3,6))) { imageline($im,$j,2,$j-6,18,$lineColor2); } //画边框 $bordercolor = ImageColorAllocate($im,0x99,0x99,0x99); imagerectangle($im, 0, 0, 66, 19,$bordercolor); 二、将验证码改为6位包含数字和字母的方法: 找到这段代码: //获取随机字符 $rndstring = ''; for($i=0; $i<3;$i++) $rndstring .= chr(mt_rand(65,90)); 更改为://获取随机字符 //获取随机字符 $rndstring = ''; for($i=0; $i<3;$i++){ $rndstring .=chr(mt_rand(65,90)); $rndstring .=chr(mt_rand(48,57)); } Dedecms在默认情况下是当你刷新验证码之后在5秒过后才能重新生成新的验证码!如果你想当每一次点击更生成新的验证码如何实现呢? 找到这段代码: if(empty($_SESSION['dd_ckstr_last'])|| empty($_SESSION['dd_ckstr']) || ($ntime - $_SESSION['dd_ckstr_last'] >5)) 更改为: if(empty($_SESSION['dd_ckstr_last'])|| empty($_SESSION['dd_ckstr']) || ($ntime - $_SESSION['dd_ckstr_last'] >1)) 就是将这里的5 dd_ckstr_last']>5 更改为1或者更小。我的南方女性网是更改为1的。