Избавится от автоматического поста и не напрягать посетителя с вводом
графического кода позволит следующий алгоритм:# Антиробот - против автопостов #
function antibot($text)
{
$text = substr($text, 1, -4);
$sear = array("'1'i","'2'i","'3'i","'4'i","'5'i","'6'i","'7'i","'8'i","'9'i","'0'i");
$repl = array("a","b","c","d","e","f","g","h","i","j");
$text = preg_replace ($sear, $repl, $text);
return $text;
}
/*
// вставляем анти-робоспам
$antitime = time();
$antiname = antibot($antitime);
echo '<input name="'.$antiname.'" type="hidden" value="'.$antitime.'">';
#----------
// проверяем анти-робоспам
$ver1time = time();
$ver2time = time()-'9999';
$ver1name = antibot($ver1time);
$ver2name = antibot($ver2time);
if ((strip_tags($_POST[$ver1name])<$ver1time and strip_tags($_POST[$ver1name])>$ver2time) or
(strip_tags($_POST[$ver2name])<$ver1time and strip_tags($_POST[$ver2name])>$ver2time))
{
$antibot = '1'; // антибот даёт добро на post
} else {
$antibot = '-1'; // антибот запрещает этот post
}
*/
PS: в функции "замена цифры на буквы" обязательно замените a-j на что-нибудь своё.
PPS: Код успешно работает около двух лет на нескольких сайтах.
URL:
Обсуждается: http://www.opennet.dev/tips/info/1056.shtml