За последние 24 часа нас посетили 52507 программистов и 1794 робота. Сейчас ищут 826 программистов ...

reCaptcha v2

Тема в разделе "PHP для новичков", создана пользователем Dewill, 3 мар 2018.

  1. Dewill

    Dewill Новичок

    С нами с:
    22 фев 2018
    Сообщения:
    5
    Симпатии:
    0
    и так суть проблемы:
    Notice: Undefined index: g-recaptcha-response in C:\Site\post.php on line 4

    Кусок кода из html:

    HTML:
    1. <script src='https://www.google.com/recaptcha/api.js'></script>
    2.  
    3. <form id="sendForm" action="post.php" method="post">
    4.                         <input type="text" value="First Name" onfocus="this.value = '';" onblur="if (this.value == '') {this.value = 'First Name';}" name="uname" />
    5.                         <input type="text" value="Second Name" onfocus="this.value = '';" onblur="if (this.value == '') {this.value = 'Second Name';}" name="uphone" />
    6.                         <input type="text" value="Email Id" onfocus="this.value = '';" onblur="if (this.value == '') {this.value = 'Email Id';}" name="umail" />
    7.                     </div>
    8.                     <div class="contact-textarea">
    9.                         <textarea value="Message:" onfocus="this.value = '';" onblur="if (this.value == '') {this.value = 'Message';}" name="utext" >Message.. </textarea>
    10.                     </div>
    11.                     <script>
    12.                      document.getElementById('sendForm').onsubmit = function () {
    13.                       if (!grecaptcha.getResponse()) {
    14.                            alert('Вы не заполнили поле Я не робот!');
    15.                             return false; // возвращаем false и предотвращаем отправку формы
    16.                            }
    17.                          }
    18.                      </script>
    19.                     <div class="g-recaptcha" data-sitekey="*******************************************"></div>
    20.                     <div class="contact-but">
    21.                         <input type="submit" name="submit" />
    22.                    
    И сам post.php

    PHP:
    1. if(isset($_POST)){      
    2.     $captcha=$_POST['g-recaptcha-response'];
    3.     $ip = $_SERVER['REMOTE_ADDR'];
    4.     $secretkey = "*********************************************";                  
    5.     $response=file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=".$secretkey."&response=".$captcha."&remoteip=".$ip);
    6.     $responseKeys = json_decode($response,true);        
    7.  
    8.     if(intval($responseKeys["success"]) !== 1) {
    9.         print "<script language='Javascript' type='text/javascript'>
    10.        <!--
    11.        alert ('Проверка человек/робот не пройдена!');
    12.      
    13.        -->
    14.        </script>";
    15.     } else { ............................

    Как я понял он не может найти значение g-recaptcha-response, мол Post не передаёт его, хотя до встраивания каптчи тестировал отправку мыла и всё прекрасно работало!
    Буду очень благодарен за советы и решения!
     
  2. Dewill

    Dewill Новичок

    С нами с:
    22 фев 2018
    Сообщения:
    5
    Симпатии:
    0
    Окей проверил содержание массива $_post иии
    Array ( [uname] => First Name [uphone] => Second Name [umail] => Email Id [utext] => Message.. [submit] => Отправить )
    Нету g-recaptcha-response.
    Вопрос! Почему?