Обратился ко мне как-то заказчик, с просьбой установить reCapthca от Google к нему на сайт.
У него самописный сайт на чистом php
Инфы в сети хватает о том, как ее установить, но он говорил что у него не получалось.
Решил ему помочь, а вам опишу процесс установки, возможно кому-то пригодится 😉
Как установить reCapthca от Google
Если вы дошли до того, что вам на сайт нужна reCaptha, то я думаю вы уже понимаете что это такое, и зачем она нужна, а значит я не буду тут вам расписывать что и для чего, а сразу перейду к тому, как ее установить на сайт.
Для начала вам нужно перейте по ссылке и там получить ключи.

Нажимаем получить reCaptha

Заполняем форму на сайте
После того как вы заполните форму на сайте, и нажмете «Регистрация» вас перекинет на страницу с ключами и другими данными, которые понадобяться для добавления reCaptha на сайт.

Пример страницы с данными
Теперь, когда у нас есть все данные, мы переходим к основной части, и будем внедрять reCaptha уже на сайт.
Вам наужно на своем сайте, перед закрывающим тэгом </head>
подключаем скрипт
1 |
<script src='https://www.google.com/recaptcha/api.js'></script> |
Дальше, переходим в нужную вам форму и перед submit/button вставляем код:
1 |
<div class="g-recaptcha" data-sitekey="0000000000000000000000"></div> |
Вместо нулей нужно вставить ключ из поля «Ключ» на странице Google.

Ключи reCAPTCHA
Теперь когда вы это сделали, сама капча уже должна появиться форме, но нам нужно еще настроить обработчик формы.
Там мы после открывающего тега <?php
добавляем код:
1 2 3 4 5 6 7 |
if(isset($_POST['g-recaptcha-response']) && $_POST['g-recaptcha-response']) { $secret = '0000000000000000000000'; $ip = $_SERVER['REMOTE_ADDR']; $response = $_POST['g-recaptcha-response']; $rsp = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=$secret&response=$response&remoteip=$ip"); $arr = json_decode($rsp, TRUE); if($arr['success']){ |
где $secret
— это секретный ключ из поля «Секретный ключ»
После строки if($arr['success']){
вы можете вставить проверку самой формы. Будет выглядеть примерно так :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
<script src='https://www.google.com/recaptcha/api.js'></script> <?php //-------------ПРОВЕРКА КАПЧИ--------------- if(isset($_POST['g-recaptcha-response']) && $_POST['g-recaptcha-response']) { $secret = '0000000000000000000000'; $ip = $_SERVER['REMOTE_ADDR']; $response = $_POST['g-recaptcha-response']; $rsp = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=$secret&response=$response&remoteip=$ip"); //var_dump($rsp); $arr = json_decode($rsp, TRUE); if($arr['success']){ //-----------ПРОВЕРКА И ОТПРАВКА ФОРМЫ--------------- if (isset($_POST['name'])) {$name = $_POST['name'];} if (isset($_POST['email'])) {$email = $_POST['email'];} if (isset($_POST['tel'])) {$tel = $_POST['tel'];} if (isset($_POST['comment'])) {$comment = $_POST['comment'];} $mail_header = "MIME-Version: 1.0\r\n"; $mail_header.= "Content-type: text/html; charset=UTF-8\r\n"; $mail_header.= "From: Any people \r\n"; $mail_header.= "Reply-to: Reply to Name \r\n"; $recipient= 'адрес, кому отправлять'; $subject = 'Тема письма'; $message = 'Поступила заявка на звонок '; if (isset($_POST['name'])){ $message.= ' Имя:' . htmlspecialchars($name) . '<br />'; } if (isset($_POST['email'])){ $message.= ' Почта:' . htmlspecialchars($email) . '<br />'; } if (isset($_POST['tel'])){ $message.= ' Телефон:' . htmlspecialchars($tel) . '<br />'; } if (isset($_POST['comment'])){ $message.= ' О проекте: ' . htmlspecialchars($comment) . '<br />'; } if (mail($recipient, $subject, $message, $mail_header)) echo 'Письмо отправлено'; else echo 'Письмо не отправлено'; } else { echo 'Нет'; } } ?> |
Проверка формы не моя, где-то нашел в интернете 😉 т.к. не хотел вставлять код заказчика, а писать новый — лень.
Вот и вся установка reCAPTCHA, занимает примерно минут 5-10.
Желаю вам удачи и по меньше спамеров.
Не забудьте подписаться на нас в соц. сети и на наш канал в telegram
Заметила на моем блоге подозрительную активность в комментариях — спам боты создают серьезную нагрузку. Хотелось бы выбрать надежный простой вариант рекапчи на русском, который сможет отличать человека от робота
Google reCAPTCHA — один из лучших вариантов!