Captcha своїми руками або код підтвердження на php

Author wmas | Category PHP

Спам річ ​​своєрідна, чи не так? Хоч скільки пихкаючи, а він (спам) все одно просочується. Як то кажуть: «на всяку хитрість, знайдеться своя хитрість» - і розумний бот, зі складним алгоритмом, підсуне вам щось хрюкає, з п'ятки. Але і залишати двері навстіж теж не кращий варіант. Одним з поширених методів захисту вхідного трафіку від спаму є механізм підтвердження коду зображеного на картинці, так звана «captcha». Зазначу, що я не зможу запропонувати Вам щось складне. Наведений нижче приклад, швидше за навчальний варіант, ніж робоча версія. Хоча, можливо і таке знадобиться. Від слів до справи.

Принцип дії

Все працює на основі сесії (session), яка зберігає код, що генерується при зверненні до скрипту за замовчуванням, і виводиться на зображенні captcha.php? A = image. Ну, а якщо клікнути по кнопці Go йде відповідна перевірка і обробка даних. Весь процес я спробував відобразити на наступній картинці:

Сподіваюся, що суть Ви уловили не дивлячись на не дуже літературний жанр моєї творчості. Все досить просто і якщо вам буде цікаво можете завантажити, ну хоча б для наочності, архівчік з моїм прикладом (див. Посилання в кінці замітки).

Форма з кодом підтвердження

За замовчуванням скрипт генерує сесію $ _SESSION [ 'code'] і виводить тестову форму де і присутній captcha. Сюди (в форму) Ви можете додати і інші поля і городи. При цьому, варто звернути увагу на поле code. малюночок captcha.php? a = image ну і як побічний продукт, hidden змінну a. яка має значення submit. що дозволяє перейти до перевірки вхідних даних використовуючи один і той же скрипт.

Зображення з кодом

Результат праці

При кліці по кнопці Go ми переходимо до третьої частини скрипта captcha.php? A = submit де можна дописати обробку отриманих з форми даних. Сам же код перевіряється на його наявність і відповідність коду в сесії.

підводимо підсумки

Все вище згадане, вже давно не новина для спамерів і є багато розумних алгоритмів, але хоч якийсь замочок на вашій формі вже буде, що погодьтеся, не так мало як може здатися. У будь-якому випадку, маючи бажання і терпіння можна зробити більш вселяють речі, головне почати. Дякуємо за увагу.

Схожі статті