我的phpBB论坛每天都收到来自不同IP的恶意注册,并发一些垃圾贴子。感觉是注册机所为。
为此在注册页面增加了一个一道数学题字段:)
[size=medium][color=darkred][b]1. 修改ucp_register.html[/b][/color][/size]
[img]http://dl.iteye.com/upload/attachment/157545/f01d478c-6de9-3171-91e0-46cefeb0fd48.gif[/img]
相应的源代码如下,需将其添加到ucp_register.html的confirm_code字段的下方:
[size=medium][color=darkred][b]2.修改includes\ucp\ucp_register.php[/b][/color][/size]
[b]2.1 在main方法最前面开启session[/b]
session_start();
[b]2.2 校验运算公式[/b]
在confirm_code校验下方(大约在259行),添加如下代码
[b]2.3 输出运算公式到注册页[/b]
在$template->assign_vars上方增加代码
然后为$template->assign_vars()增加一个条目RANDOM_FORMULA
为此在注册页面增加了一个一道数学题字段:)
[size=medium][color=darkred][b]1. 修改ucp_register.html[/b][/color][/size]
[img]http://dl.iteye.com/upload/attachment/157545/f01d478c-6de9-3171-91e0-46cefeb0fd48.gif[/img]
相应的源代码如下,需将其添加到ucp_register.html的confirm_code字段的下方:
<dl>
<dt><label for="formula">标识数字:</label><br/>请在文本框中输入框右边算式的结果</dt>
<dd><input type="text" name="random_num" id="random_num" size="8" maxlength="8" class="inputbox narrow"/>
<span style="font-size:12pt;color:red">{RANDOM_FORMULA}</span>
</dd>
</dl>
[size=medium][color=darkred][b]2.修改includes\ucp\ucp_register.php[/b][/color][/size]
[b]2.1 在main方法最前面开启session[/b]
session_start();
[b]2.2 校验运算公式[/b]
在confirm_code校验下方(大约在259行),添加如下代码
//ADDED BY ALLEN
$random_num = $_SESSION['random_num'];
if ($random_num <> request_var('random_num', '')) {
$error[] = '您输入的运算结果不正确';
}
[b]2.3 输出运算公式到注册页[/b]
在$template->assign_vars上方增加代码
$a = rand(1,100);
$b = rand(1,100);
$_SESSION['random_num'] = $a+$b;
然后为$template->assign_vars()增加一个条目RANDOM_FORMULA
$template->assign_vars(array(
'RANDOM_FORMULA' => $a . ' + ' . $b, //新增的条目
'ERROR' => (sizeof($error)) ? implode('<br />', $error) : '',
'USERNAME' => $data['username'],
......