fluxbb论坛防垃圾注册设置

最近用fluxbb开了一个论坛,域名是http://cms.52souji.net/。

之所以选择fluxbb,主要是考虑到它比较简洁。但很快就被垃圾机器人给盯上了。五一小长假回来,发现竟然注册了上百个垃圾账号,还发了不少垃圾帖子。

先通过用户搜索功能,把五一期间注册的账号及相关帖子全部删除。但这毕竟不是终极解决方案,因为机器人很快就会重新注册。事实上,在我开始寻找解决方案的时候,已经被注册了好几个垃圾账号。

通过谷歌也可以搜索到一些解决方案,具体能不能用倒不一定,但我觉得都比较麻烦,于是决定自己通过修改代码来解决这个问题。

思路:在用户注册时,要求输入论坛的域名(或其他任何指定信息)。在用户提交注册信息时,首先检测用户是否输入了正确的信息,如果正确,就通过注册;如果不正确,就输出错误信息。

与注册相关的文件只有register.php,所以只需要对register.php进行适当修改就可以了。修改应该包括两个方面:

1. 增加验证码输入框

在“注册”按钮上面添加验证码输入框,具体到register.php文件,查找代码

[source language="html"]
<p class="buttons">
[/source]

在其前面添加下面的代码:

[source language="html"]
<div class="inform">
<fieldset>
<legend><?php echo $lang_register['Code validation'] ?></legend>
<div class="infldset">
<p><?php echo $lang_register['Code validation info'] ?></p>
<label class="required">
<input type="text" name="code_validation" value="" size="40" maxlength="80"></label>
</div>
</fieldset>
</div>
[/source]

2. 对用户输入的验证码信息进行检测

在register.php文件中查找代码

[source language="html"]
// Check that someone from this IP
[/source]

在其前面添加下面的代码:

[source language="html"]
// Check if the validation code is correct.
if (trim($_POST['code_validation']) != "cms.52souji.net")
message($lang_register['Wrong validation code']);
[/source]

3. 为相关信息添加语言翻译

在lang\English目录下找到register.php文件,并在适当位置添加如下信息:

[source language="html"]
'Code validation' => 'Code validation',
'Code validation info' => 'Please input the domain [cms.52souji.net] of this forum to confirm that you are not a robot.',
'Wrong validation code' => 'Wrong validation code! Please check and re-register.',
[/source]

在lang\Simplified_Chinese目录下找到register.php文件,并在适当位置添加如下信息:

[source language="html"]
'Code validation' => '输入验证码',
'Code validation info' => '请输入本论坛域名 cms.52souji.net ,证明你不是机器人。',
'Wrong validation code' => '验证码输入错误,请检查后重新注册。',
[/source]

这样,在刷新注册页面后,就会看到下面的验证码界面:

Code validation

如果用户在注册时,没有输入正确的验证码,就会提示下面的信息:

Code validation

虽然具体使用效果如何,还有待验证,但从理论上说,机器人是很难突破的。

标签: fluxbb

相关文章推荐

添加新评论 (无需注册,可直接评论)

仅有一条评论

  1. 请教

    请教下 这个适合哪个版本?