• 网站认证
  • 教程:5,345|
  • 话题:4392|
  • 评论:45|
  • 会员:177|
  • 注册
  • 查看作者
  • DEDECMS修改验证码为数字和小写字母组合

    输入字母验证码,俺觉得特烦,非凡还要输入大写字母。于是找到文件并修改成数字验证码。 

    修改文件 验证码文件地位 

    include alidateimg.php 

    找到 

    for($i=0;$i<4;$i++) 

    $rndstring .= chr(mt_rand(65,90)); 

    改成 

    for($i=0;$i<4;$i++) 

    $rndstring .= chr(mt_rand(48,57)); 

    这个函数是产生随机字符,看见里面的数字没有,它就是要产生字符键盘码的范畴,原来的是 

    mt_rand(65,90),这个65到90是大写字母A到Z的键盘码。 

    现在修改为(48,57) 表示0到9的键盘码:mt_rand(48,57)。 

    按照这个理论,估计能产生中文吧。 

    还有这个文件里面的 

    $bgcolor = ImageColorAllocate($im, 248,212,20); 

    $black = ImageColorAllocate($im, 0,0,0); 

    是设定生成图片的背景颜色和文字颜色的。三个数字表示 颜色的 红,绿,蓝色值。范畴为0到255, 

    比如 

    0,0,0 表示 黑色, 

    255,0,0 表示纯红, 

    0,255,0 表示纯绿, 

    0,0,255 表示纯蓝。 

    255.255.255 表示白。 

    修改成统一字体 

    for($i=0;$i<$rndcodelen;$i++) 

    imagestring($im, mt_rand(2,5), $i*10+6, mt_rand(2,5), $rndstring[$i], $black); 

    改成 

    for($i=0;$i<$rndcodelen;$i++) 

    imagestring($im, 3, $i*10+6, mt_rand(2,5), $rndstring[$i], $black); 

    也就是 imagestring里面第二个参数,修改它为1到5之间的固定数字,这里我觉得修改成3比较漂亮。 

    参数说明: 

    int imagestring ( resource image, int font, int x, int y, string s, int col) 

    imagestring() 用 col 颜色将字符串 s 画到 image 所代表的图像的 x,y 座标处(图像的左上角为 0, 0)。假如 font 是 1,2,3,4 或 5,则使用内置字体。 

    假如不想让他上下参差,就把坐标y改成固定值3就行了,也就是把 mt_rand(2,5)改成3 

    验证码为数字加小写字母组合方式的实现 

    //获取随机字符 

    $rndstring = ""; 

    for($i=0;$i<2;$i++){ 

    $rndstring .= chr(mt_rand(48,57)); 

    $rndstring .= chr(mt_rand(97,122)); 

    这样就可以实现数字+小写字母了

  • 0
  • 0
  • 0
  • 42
  • 请登录之后再进行评论

    登录
  • 做任务
  • 实时动态
  • 偏好设置
  • 自定义-1
  • 单栏布局 侧栏位置: