Я уже писал, что спам-боты нагло спамили мой сайт www.warhammer40k.com.ua практически все время моего отсутствия, и даже пытались это сделать после моего приезда… Но теперь их выходками на сайте с вахой пришёл конец - я переписал систему вывода капчи.
Раньше капча представляла из себя простой текст нанесённый на изображение с прямой решёткой, размеры которой никогда не менялись… думаю с первого взгляда понятно, что это защита только против молодых спам-ботов.
Пошарив инет, я нашел несколько способов избавления от спам ботов, но не один из них не менял капчу. Это были джава скрипты, который каким то методом определяли спам-бота и не давали ему постить комменты. Был даже вариант вручную вносить в .htaccess запрет на заход с определённого ip
Так что единственным нормальным способом было создание своей капчи. Первым делом надо было повернуть каждую букву, что б хоть как то усложнить жизнь FineReader’у ))
$r=rand(10000,99999); //выбираем 5-значное число)
for($i=0;$i < 5;$i++)//разбиваем наш код на массив чисел
$arr[$i]=substr($r,$i,1);
Терь поворачиваем каждую букву на рэндомный угол:
$a=0;
for($i=0;$i < 5;$i++)
{
$color=imagecolorallocate($im,rand(0,255),rand(0,255),rand(0,255));
imagettftext($im, 17, rand(-30,30), $a+=rand(10,15),rand(20,30), $color, $font, $arr[$i]);
}
Что б еще усложнить им жизнь, над добавить шума на изображение. Это можно сделать и средствами php, но мне было влом, поэтому был открыть Photoshop и создано более-ли менее шумное изображение, которое и стало фоном капчи.
Дальше мне влом писать, а вам, думаю, читать, так что размещаю код капчи одним файлом (+arial.ttf, если вы решите импользовать этот шрифт). Если вы юзаете Joomla и com_akocomment, то забрасываем эти файлы в /каталог с index.php/components/com_akocomment/ . Также не забываем создать шумный фон, бросить его в эту папку, и вставить название фона в строку $im=imagecreatefrompng(”_фон.png_”); в файле img.php.

Вроде все. Пишите в комментах про траблы, если будет желание - помогу.

