将织梦CMS的验证码改为数字

有时我感觉要输入字母验证码的话有点麻烦,如果是数学验证码,要方便些,因为我们的数学小键盘,于是我就想把织梦的验证码改成数字验证码。

有时我感觉要输入字母验证码的话有点麻烦,如果是数学验证码,要方便些,因为我们的数学小键盘,于是我就想把织梦的验证码改成数字验证码。

首先,我们要找到系统的这个验证码文件,经过一番寻找,我发现验证码文件在include\validateimg.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));
}

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

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

DEDECMS利用strftime()函数格式化时间的所有参数详解,包括年份日期进制、小时格式等,大家收藏吧,呵. 日期时间格式 (利用strftime()函数格式化时间)0 dedecms首页时间标签: 1、12-27 样式 ([field:pubdate function=strftime(%m-%d,@me)/]) 2、May 15, 2
织梦Dede后台验证码不显示解决方法 ,很多时候dedecms网站后台的验证码不显示,验证码不显示网站后台就没法登陆,常见的验证码后台不显示的情况有以下三种: Dede后台验证码不显示情况一 Dede后台验证码不显示情况二 Dede后台验证码不显示情况三 那么以上三
今天刚把网站从虚拟空间换到了朋友的服务器上,速度那没话说!可是在配置好所有的数据后,后台登录和前台注册的验证码全部显示不了了,网上搜寻了各种方法 ,更改php配置文件、
使用织梦Dedecms自定义表单的时候,即使你做了字段的验证,也很有可能被人刷很多垃圾的内容,更加安全的一个方法是为自定义表单添加上验证码功能。今天我就来为大家分享一下怎样给自定义表单添加验证码!
这篇文章主要介绍了织梦DEDECMS后台验证码错误不能正常验证的3种可能原因和解决方法,需要的朋友可以参考下
方法1:取消掉验证码,具体方法如下: 打开后台管理目录下的login.php 文件,在里面找到下面这句代码: if($validate==” || $validate != $svali) 将其替换为: if( false ) 然后,在模板dede/templets/login.htm里去掉以下验证码的具体HTML代码: lispan验