评论对象: 东方不败 | 2008/9/18 15:20:51
评论言论: 论坛一直受到疯狂的垃圾广告的骚扰,我采取了一些限制的方法,但都不令人满意。这次下决心处理这个问题,就检索网络,得到如下的处理方法。经过修改采用和观察检验,觉得很有效,让人开心和欣慰。
以前,每天都会有50来个、有时候甚至更多的恶意注册的用户名;采取如下限制措施以后,就明显、有效地解决了问题,将注册机器人挡在了门外。因而,它们恶意注册以后自动发烂广告的现象,也就不会出现了。
下面是我编辑过的处理方法和代码:
实现的原理是:加一个必填当前日期+2的注册项。
第一步:在论坛后台的“风格界面模板总管理/分页面模板(page_login)/界面风格/template.html(13)”里面的适当位置,加入限制代码(红色部分为增加的代码):
<INPUT maxLength=50 size=30 name=e_mail>
<input type=button value='检测帐号' name=Button onclick="gopreview1()"></TD>
</TR>
<!--防止恶意注册-->
<TR>
<TD class=tablebody1><B>今天日期+2</B>:<BR>
限制恶意注册发垃圾广告 <font color=red><b>填写的日期范围:3-33</b></font></TD>
<TD class=tablebody1><INPUT type=text size=2 name=jintiandate maxlength=2>
<SCRIPT LANGUAGE=VBScript>
document.write "<font color=red> 今天是:"
document.write date()
document.write " (比如今天如果是2008-3-8,就填写10)</font>"
</script>
</TD>
</TR>
</table>
<!--结束-->
{$difference}
</table>
第二步:在reg.asp文件如下的相对位置,加入判断代码(红色部分):
If Request.form("quesion")="" Then
ErrCodes=ErrCodes+"<li>"+template.Strings(11)
Else
quesion=Request.form("quesion")
End If
<!--防止恶意注册-->
If cint(Request.form("jintiandate"))<>datepart("d",date)+2 Then ErrCodes=ErrCodes+"<li>"+"请填写加2以后的日期!"
End If
<!--防止恶意注册结束-->
If Request.form("answer")="" Then
ErrCodes=ErrCodes+"<li>"+template.Strings(11)