За последние 24 часа нас посетили 91618 программистов и 5849 роботов. Сейчас ищут 3108 программистов ...

ReCAPTCHA setting v2

Тема в разделе "PHP для новичков", создана пользователем r136a8, 25 мар 2016.

  1. r136a8

    r136a8 Новичок

    С нами с:
    25 мар 2016
    Сообщения:
    4
    Симпатии:
    0
    Добрый день нужна помощь с настройкой 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):
    1. <?php
    2. $email;$comment;$captcha;
    3.         if(isset($_POST['email'])){
    4.           $email=$_POST['email'];
    5.         }if(isset($_POST['comment'])){
    6.           $email=$_POST['comment'];
    7.         }if(isset($_POST['g-recaptcha-response'])){
    8.           $captcha=$_POST['g-recaptcha-response'];
    9.         }
    10.         if(!$captcha){
    11.           echo '<h2>Please check the the captcha form.</h2>';
    12.           exit;
    13.         }
    14.         $secretKey = "******************";
    15.         $ip = $_SERVER['REMOTE_ADDR'];
    16.         $response=file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=".$secretKey."&response=".$captcha."&remoteip=".$ip);
    17.         $responseKeys = json_decode($response,true);
    18.         if(intval($responseKeys["success"]) !== 1) {
    19.           echo '<h2>You are spammer ! Get the @$%K out</h2>';
    20.         } else {
    21.           echo '<h2>Thanks for posting comment.</h2>';
    22.         } 
    Помогите пож.

    Подсказка от модератора:
    Любой код или текст конфигурации пишите между тегом [code=php] и [/code].
    Используйте отступы в коде для форматирования текста.
    Это помогает быстрее понять вас, увеличивает шанс на получение ответа.
    Что выделять? Например: PHP, HTML, CSS, JavaScript, SQL, XML, .htaccess, ini, регулярные выражения, код шаблонизаторов, результаты array/object dump и т. д.
     
  2. mr.akv

    mr.akv Активный пользователь

    С нами с:
    31 мар 2015
    Сообщения:
    1.599
    Симпатии:
    206
    1. Отправляй форму аяксом.
    или
    2. С помощью JavaScript проверяй установку галочки в форме
     
  3. r136a8

    r136a8 Новичок

    С нами с:
    25 мар 2016
    Сообщения:
    4
    Симпатии:
    0
    спасибо большое, но к сажалению я совсем не знаком с этим,. Можете мне с самим кодом помочь.
     
  4. Period

    Period Новичок

    С нами с:
    29 дек 2014
    Сообщения:
    148
    Симпатии:
    1
    А зачем на таком сайте вообще капчей пользоваться? Сгенерируйте форму яваскриптом или даже атрибут action у формы из яваскрипта заполните, это защитит от всех роботов. Робота специально для этого сайта никто писать не станет.
     
  5. r136a8

    r136a8 Новичок

    С нами с:
    25 мар 2016
    Сообщения:
    4
    Симпатии:
    0
    Я думал что робот для всех а не конкретно для определенного сайта! Но все же я хотел бы закончить именно с этой формой.
     
  6. r136a8

    r136a8 Новичок

    С нами с:
    25 мар 2016
    Сообщения:
    4
    Симпатии:
    0
    Вот мой php обработчик:
    Код (PHP):
    1. <?php
    2. $email;$comment;$captcha;
    3.         if(isset($_POST['email'])){
    4.           $email=$_POST['email'];
    5.         }if(isset($_POST['comment'])){
    6.           $email=$_POST['comment'];
    7.         }if(isset($_POST['g-recaptcha-response'])){
    8.           $captcha=$_POST['g-recaptcha-response'];
    9.         }
    10.         if(!$captcha){
    11.           echo '<h2>Please check the the captcha form.</h2>';
    12.           exit;
    13.         }
    14.         $secretKey = "********************";
    15.         $ip = $_SERVER['REMOTE_ADDR'];
    16.         $response=file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=".$secretKey."&response=".$captcha."&remoteip=".$ip);
    17.         $responseKeys = json_decode($response,true);
    18.         if(intval($responseKeys["success"]) !== 1) {
    19.           echo '<h2>You are spammer ! Get the @$%K out</h2>';
    20.         } else {
    21.           echo '<h2>Thanks for posting comment.</h2>';
    22.         } 
    Сама форма:
    Код (PHP):
    1. <form class="contact_form" action="mail.php" method="post" name="contact_form">
    2. <ul>
    3.    <li>
    4.       <input name="name" type="text"  placeholder="Name" required />
    5.       <input name="e_mail" type="text" placeholder="Phone" required />
    6.     </li>
    7.     <li>
    8.          <textarea name="text" cols="40" rows="6" placeholder= "Text..." required ></textarea>
    9. </li>
    10. <li>
    11. <div class="g-recaptcha" data-sitekey="**********"></div>
    12.  </li>        
    13. <li>
    14.         <button class="submit" type="submit">Send</button>
    15.     </li>
    16. </ul>
    17. </form> 
    Подсказка от модератора:
    Любой код или текст конфигурации пишите между тегом [code=php] и [/code].
    Используйте отступы в коде для форматирования текста.
    Это помогает быстрее понять вас, увеличивает шанс на получение ответа.
    Что выделять? Например: PHP, HTML, CSS, JavaScript, SQL, XML, .htaccess, ini, регулярные выражения, код шаблонизаторов, любая другая разметка, результаты array/object dump и т. д.