Від автора: створюючи сайти або веб-додатки, на сторінках яких у публічному доступі є форма відправлення деяких даних, завжди необхідно дбати про захист від небажаних повідомлень, тобто спаму. В даний момент є досить багато всіляких способів блокування спам повідомлень, але самий простий і надійний – це, звичайно ж, каптча, яка відома практично всім користувачам інтернету. При цьому, каптчі бувають різних видів графічні, текстові, математичні, питання-відповідь і т. д. Але в уроці Нова reCaptcha від Google ми поговоримо про каптче від сервісу Google, під назвою reCaptcha, яка реалізує досить хороший бар’єр від спам повідомлень на Вашому сайті. До того ж нещодавно вийшла нова версія даної каптчі, тому давайте подивимося, як з нею працювати.
Установка каптчі reCaptcha
Отже, давайте перейдемо на офіційний сайт каптчі reCaptcha, http://google.com/recaptcha. При, цьому хотів би зауважити, що Вам потрібен обліковий запис сервісу Google, тому зареєструйтесь, якщо у Вас немає облікового запису і виконайте авторизацію.
Далі, переходимо за посиланням Get reCaptcha і реєструємо каптчі для сайту, на якому вона буде використовуватися.
При цьому заповнюємо такі поля:
Назва – в даному полі прописуємо назву сайту.
Домени – вказуємо домен, на якому буде використовуватися каптча. Так само дозволяється вказати кілька доменів, при цьому кожен домен необхідно вводити з нового рядка.
Власники – в даному полі перераховуємо поштові скриньки власників каптчі (по одному в рядку).
Потім для завершення реєстрації клікаємо по кнопці Реєстрація. Після цього сервіс Google згенерує два ключі, які необхідні для роботи каптчі:
Публічний ключ – який необхідний для відображення блоку каптчі.
Секретний ключ, який необхідний для перевірки правильності відправки каптчі. При цьому секретний ключ зберігається тільки на сервері і не повинен бути доступний для загального огляду.
Для відображення каптчі, необхідно підключити бібліотеку reCapthca на сторінці де вона повинна бути відображена:
Потім у місці, де повинна відображатися каптча, додаємо наступний блок:
print_r($_POST);
При цьому на екрані ми побачимо наступне.
Тобто в суперглобальном масиві POST у клітинці g-recaptcha-response, міститься код, який повертає сервіс Google після активації чекбокса каптчі, якщо ж чекбокс не активований то дана клітинка порожня. При цьому код являє собою певну послідовність символів, яку нам ні як не прочитати. Тому далі необхідно відправити POST запит за адресою: https://www.google.com/recaptcha/api/siteverify
І відправити наступні параметри:
secret — секретний ключ, який був згенерований при реєстрації користувача;
response — код, який був отриманий при активації чекбокса каптчі;
remoteip – IP адреса, з якого надсилається форма.
Для відправки запиту, за запитом використовуємо curl – з’єднання:
success) {
echo ‘YES’;
}
else {
exit(‘Error’);
}
}
Виконавши запит, сервіс Google поверне результат у вигляді рядка формату JSON, в якій міститься об’єкт, в структурі якого міститься властивість success. Якщо значення TRUE, значить каптча — активована вірно і повідомлення відправив користувач, а не спам-робот. В іншому ж випадку повідомлення відправив спам-робот.
На цьому даний урок завершено. Всього Вам доброго і вдалого кодування.