Простая защита в виде математической капчи В файл functions.php вашего шаблона, в самый низ добавьте
function themeInit($comment)
{
$comment = spam_protection_pre($comment, $post, $result);
}
function spam_protection_math()
{
$num1 = rand(1, 49);
$num2 = rand(1, 49);
echo "<p class=\"control\"><span class=\"maptcha_block\"><label for=\"math\"><code>$num1</code>+<code>$num2</code></label></span></p>\n";
echo "<p class=\"control\"><input type=\"text\" name=\"sum\" class=\"input\" value=\"\" size=\"25\" tabindex=\"4\" style=\"width:218px\" placeholder=\"Ответ\"></p>\n";
echo "<input type=\"hidden\" name=\"num1\" value=\"$num1\">\n";
echo "<input type=\"hidden\" name=\"num2\" value=\"$num2\">";
}
function spam_protection_pre($comment, $post, $result)
{
$sum = $_POST['sum'];
switch ($sum) {
case $_POST['num1'] + $_POST['num2']:
break;
case null:
throw new Typecho_Widget_Exception(_t('Пожалуйста, введите проверочный код <a href="javascript:history.back(-1)">назад</a>', 'Ошибка комментирования'));
break;
default:
throw new Typecho_Widget_Exception(_t('Неверно введен проверочный код <a href="javascript:history.back(-1)">назад</a>', 'Ошибка комментирования'));
}
return $comment;
}
0 Comments