最近我的论坛老有注册恶意注册,并且发布广告信息,搞的很烦,所在想了些办法来防止恶意注册。下面是一些方法

方法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('对不起,防自动注册机验证未通过!');
}

完成

希望对大家有些帮助。