На сьогоднішній день існують десятки способів захисту форм від спаму. Кожен вибирає під себе потрібний йому варіант. На дуже багатьох проектах ми використовуємо "псевдо-каптчу".
Наприклад візьмемо просту функцію створення каптчі:
function CaptchaGeneratorImage($length=3)
{
$pattern = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
for($i=0; $i<$length; $i++){
$string .= $pattern{rand(0,61)};
header("Content-type: image/png");
$im = @imagecreate(100, 50)
or die("Cannot Initialize new GD image stream");
$background_color = imagecolorallocate($im, 255, 255, 255);
$text_color = imagecolorallocate($im, 0, 0, 0);
imagestring($im, 10, 5, 5, $string, $text_color);
imagepng($im);
imagedestroy($im);
}
CaptchaGeneratorImage();
echo = '<img src="/captcha.php?rand='.time().'" alt="Створення сайтів Львів">';
Одержимо зображення з нанесеними цифрами обраними випадковим чином. А тепер за допомогою CSS зверху цієї картинки накладемо шар з абсолютно іншим текстом і полем введення. Після цього якщо в поле каптч буде якийсь текст - це бот, а якщо він ще й співпаде з нашої картинкою (тобто бот розпізнав каптчу) можна сміливо заносити його в бан-лист.
Звичайно ідеальне рішення для користувача взагалі не заповнювати ніяких каптч. Є багато перевірених засобів вирішуються за допомогою CSS або JS, які можуть допомогти з відсіювання ботів. І краще користуватися саме ними.