Добрый день нужна помощь с настройкой reCaptcha v2: У меня есть форма http://sergiykravchuk.com/contacts.html с google reCaptcha v2 но в моем коде когда человек не ставит галочку на иконке "I'm not a robot" recaptha code отправляет человека на пустую страницу с словами "Please check the the captcha form." Мне же нужно чтоб человек оставался на этой же странице с предупреждением о не заполнении каптчи и набранным сообщением в форме. Вот пример с самого сайта Google https://www.google.com/recaptcha/api2/demo Вот мой php обработчик: Код (PHP): <?php $email;$comment;$captcha; if(isset($_POST['email'])){ $email=$_POST['email']; }if(isset($_POST['comment'])){ $email=$_POST['comment']; }if(isset($_POST['g-recaptcha-response'])){ $captcha=$_POST['g-recaptcha-response']; } if(!$captcha){ echo '<h2>Please check the the captcha form.</h2>'; exit; } $secretKey = "******************"; $ip = $_SERVER['REMOTE_ADDR']; $response=file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=".$secretKey."&response=".$captcha."&remoteip=".$ip); $responseKeys = json_decode($response,true); if(intval($responseKeys["success"]) !== 1) { echo '<h2>You are spammer ! Get the @$%K out</h2>'; } else { echo '<h2>Thanks for posting comment.</h2>'; } Помогите пож. Подсказка от модератора: Любой код или текст конфигурации пишите между тегом [code=php] и [/code]. Используйте отступы в коде для форматирования текста. Это помогает быстрее понять вас, увеличивает шанс на получение ответа. Что выделять? Например: PHP, HTML, CSS, JavaScript, SQL, XML, .htaccess, ini, регулярные выражения, код шаблонизаторов, результаты array/object dump и т. д.
А зачем на таком сайте вообще капчей пользоваться? Сгенерируйте форму яваскриптом или даже атрибут action у формы из яваскрипта заполните, это защитит от всех роботов. Робота специально для этого сайта никто писать не станет.
Я думал что робот для всех а не конкретно для определенного сайта! Но все же я хотел бы закончить именно с этой формой.
Вот мой php обработчик: Код (PHP): <?php $email;$comment;$captcha; if(isset($_POST['email'])){ $email=$_POST['email']; }if(isset($_POST['comment'])){ $email=$_POST['comment']; }if(isset($_POST['g-recaptcha-response'])){ $captcha=$_POST['g-recaptcha-response']; } if(!$captcha){ echo '<h2>Please check the the captcha form.</h2>'; exit; } $secretKey = "********************"; $ip = $_SERVER['REMOTE_ADDR']; $response=file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=".$secretKey."&response=".$captcha."&remoteip=".$ip); $responseKeys = json_decode($response,true); if(intval($responseKeys["success"]) !== 1) { echo '<h2>You are spammer ! Get the @$%K out</h2>'; } else { echo '<h2>Thanks for posting comment.</h2>'; } Сама форма: Код (PHP): <form class="contact_form" action="mail.php" method="post" name="contact_form"> <ul> <li> <input name="name" type="text" placeholder="Name" required /> <input name="e_mail" type="text" placeholder="Phone" required /> </li> <li> <textarea name="text" cols="40" rows="6" placeholder= "Text..." required ></textarea> </li> <li> <div class="g-recaptcha" data-sitekey="**********"></div> </li> <li> <button class="submit" type="submit">Send</button> </li> </ul> </form> Подсказка от модератора: Любой код или текст конфигурации пишите между тегом [code=php] и [/code]. Используйте отступы в коде для форматирования текста. Это помогает быстрее понять вас, увеличивает шанс на получение ответа. Что выделять? Например: PHP, HTML, CSS, JavaScript, SQL, XML, .htaccess, ini, регулярные выражения, код шаблонизаторов, любая другая разметка, результаты array/object dump и т. д.