phpwind后台添加防自动注册机验证码:
最近我的论坛老有注册机恶意注册,并且发布广告信息,搞的很烦,所在想了些办法来防止恶意注册。下面是一些方法: 方法1:更改注册表单NAME(最有效,但是要有一些PHP和MYSQL方面的知识才行。) 改动注册表单填入内容的NAME,这需要和数据表相配合,MYSQL表单关键字也得改。 方法2:输入网站注册问题的答案 改两个文件,一个是register.htm,另一个是register.php 第一步,打开论坛template/wind/下的register.htm,当然,这是默认的风格模板,如果你模板改了,那就到你改动后的模板的名字下找这个文件。 先找个地方,建议放在这个上面: 编辑―查找 <tr class="f_one"><td width="35%"> 用户名<font color="red"> 在这句上面加以下几句:是出个问题,当然,问题的具体内容可以自己修改 <tr> <td class="f_one" width="21%">防恶意注册问题:<br><font color="#000000">你老妈去年49岁,今年几岁?</font> </td> <td class="f_one"><input type="text" name="manianling" size="4" maxlength="4">请把那数字填在左边空格内</td> </tr> 保存,上传到空间替换原文件 第二步:打开论坛主目录下的register.php 编辑-查找 $db->update("INSERT INTO pw_members (username, password,email,publicmail,groupid,memberid,icon,gender,regdate,signature,introduce,oicq,icq,site,location,bday,receivemail,yz,signchange) VALUES 在这句话的上面添加几句:是检测看回答问题的答案是否正确,具体答案自己根据自己的问题指定 if($manianling != 50) { Showmsg("老妈几岁都不关心的人,去死吧!!","javascript:history.back()"); } 保存,上传上传到空间替换原文件. 方法3:更改register.php的名字 就是改动注册页面的文件名,比如说把register.php改成r.php什么的。但有一点得注意,所有链接的register.php的页面都必须改成r.php,否则会变成白板的哟。 这是没有办法的办法,修改多,影响升级和论坛的当前运行,但是绝对有效 先把register.php改成你自己想要的名字 修改开始: 查register.php换成你改的名字如:welcome.php login.php global.php 2处 然后到template/wind(所有的模板只要有下面的文件,都要修改)8处修改! faq.htm login.htm lang_email.php lang_other.php register.htm 3处simple_index.htm simple_read.htm simple_thread.htm 中查找 register.php 更换为你修改后的register.php名字。比如welcome.php 此方法不需要设置什么附加信息! 方法4:输入今日日期 1、修改register.php(register.php就在主目录下) 找到: $db->update("INSERT INTO pw_members (username, password, email,publicmail,groupid,memberid,icon,gender,regdate,signature,introduce,oicq,icq,site,location,bday,receivemail,yz,signchange) VALUES 上面加上(中文自己修改): if($nowday != $nowday1) { Showmsg("日期没输正确.你不会忘了今天是几号了吧?","javascript:history.back()"); } 找到: @include_once(D_P.'data/bbscache/inv_config.php'); 下面加上: $nowday1 = gmdate("d", $timestamp + $timeoffset * 3600); $nowday2 = gmdate("m月d日", $timestamp + $timeoffset * 3600); 2、修改register.htm(register.htm就在目录/template/wind/register.htm或其它风格目录) 找到: <tr><td colspan="2" class="head" height="25">必填信息</td></tr> 下面添加(中文自己修改): <tr> <td class="f_one" width="21%">防恶意注册问题:今天的日期是几号?<br><font color="blue"> 如果今天日 期是12月04日就填04 </font> </td> <td class="f_one"><input type="text" name="nowday" size="4" maxlength="4"> 提示:请填入<font color="#FF0000">$nowday1</font> 快把它输入到左边文本框吧(忽略凌晨时差问题)</td> </tr> 友情提醒:请删除以前机器人注册的id,有好多机器人都是以前注册了不发帖,然后到规定日期狂发的,如果发现类似的ID,如利剑*等,请删除吧,留着就是隐患。 方法5:后台添加防自动注册机验证码 1. 打开template/admin/settings.htm 查找 <tr class=b> <td>注册时初始{$db_moneyname}:(建议设置为0.)</td> <td><input size=35 name="reg[regmoney]" value="$rg_regmoney"></td> </tr> 在后面添加 <tr class=b> <td><font color=red>防自动注册机验证码:</font>例如“phpwinnd”(设置为空,则代表关闭)</td>(特别说明:修改完成后一定要到后台设置好您自己想要的验证码,留空则不启用这个功能) <td><input size=35 name="reg[autoreg]" value="$rg_autoreg"></td> </tr> 2. 打开admin/settings.php 查找 if ($reg['regmaxname']>15){ adminmsg('illegal_username'); } 在后面添加 $reg['autoreg']=str_replace(" ","",trim($reg['autoreg'])); 3. 打开template/wind/register.htm 查找 <tr> <td class='f_one'> 确认密码<font color=red>*</font></td> <td class='f_one'> <input type=password size=20 maxlength=75 name='regpwdrepeat'></td></tr> 在后面添加 <!-- EOT; if($rg_autoreg!=""){ print <<<EOT --> <tr> <td class='f_one'> 防自动注册机验证码<font color=red>*</font> <font color=red><b>$rg_autoreg</b></font></td> <td class='f_one'> <input type=text size=20 maxlength=75 name='autoreg'></td></tr> <!-- EOT; } print <<<EOT --> 4. 打开register.php文件 查找 if(!$rg_rglower){ for ($asc=65;$asc<=90;$asc++){ if (strpos($regname,chr($asc))!==false){ Showmsg('username_limit'); } } } 在后面添加 if($rg_autoreg!="" && $autoreg!=$rg_autoreg){ showmsg('对不起,防自动注册机验证未通过!'); } 完成