阻止phpBB被恶意注册

我的phpBB论坛每天都收到来自不同IP的恶意注册,并发一些垃圾贴子。感觉是注册机所为。
为此在注册页面增加了一个一道数学题字段:)

1. 修改ucp_register.html
阻止phpBB被恶意注册

相应的源代码如下,需将其添加到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>

2.修改includes\ucp\ucp_register.php
2.1 在main方法最前面开启session
session_start();

2.2 校验运算公式
在confirm_code校验下方(大约在259行),添加如下代码
//ADDED BY ALLEN
$random_num = $_SESSION['random_num'];
if ($random_num <> request_var('random_num', '')) {
  $error[] = '您输入的运算结果不正确';
}


2.3 输出运算公式到注册页
在$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'],
  ......

你可能感兴趣的:(html,PHP)