http://www.52souji.net/set-the-anti-spam-of-fluxbb-forum.html
fluxbb论坛防垃圾注册设置
最近用fluxbb开了一个论坛,域名是http://cms.52souji.net/。
之所以选择fluxbb,主要是考虑到它比较简洁。但很快就被垃圾机器人给盯上了。五一小长假回来,发现竟然注册了上百个垃圾账号,还发了不少垃圾帖子。
先通过用户搜索功能,把五一期间注册的账号及相关帖子全部删除。但这毕竟不是终极解决方案,因为机器人很快就会重新注册。事实上,在我开始寻找解决方案的时候,已经被注册了好几个垃圾账号。
通过谷歌也可以搜索到一些解决方案,具体能不能用倒不一定,但我觉得都比较麻烦,于是决定自己通过修改代码来解决这个问题。
思路:在用户注册时,要求输入论坛的域名(或其他任何指定信息)。在用户提交注册信息时,首先检测用户是否输入了正确的信息,如果正确,就通过注册;如果不正确,就输出错误信息。
与注册相关的文件只有register.php,所以只需要对register.php进行适当修改就可以了。修改应该包括两个方面:
1. 增加验证码输入框
在“注册”按钮上面添加验证码输入框,具体到register.php文件,查找代码
<p class="buttons">
在其前面添加下面的代码:
<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>
2. 对用户输入的验证码信息进行检测
在register.php文件中查找代码
// Check that someone from this IP
在其前面添加下面的代码:
// Check if the validation code is correct.
if (trim($_POST['code_validation']) != "cms.52souji.net")
message($lang_register['Wrong validation code']);
3. 为相关信息添加语言翻译
在lang\English目录下找到register.php文件,并在适当位置添加如下信息:
'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.',
在lang\Simplified_Chinese目录下找到register.php文件,并在适当位置添加如下信息:
'Code validation' => '输入验证码',
'Code validation info' => '请输入本论坛域名 cms.52souji.net ,证明你不是机器人。',
'Wrong validation code' => '验证码输入错误,请检查后重新注册。',
这样,在刷新注册页面后,就会看到下面的验证码界面:
Code validation
如果用户在注册时,没有输入正确的验证码,就会提示下面的信息:
Code validation
虽然具体使用效果如何,还有待验证,但从理论上说,机器人是很难突破的。
离线