Intereting Posts
Солить мои хэши с PHP и MySQL Отображать динамические диапазоны из таблицы базы данных и подсчитывать строки в каждом диапазоне php случайный порядок от foreach Сортировка массива с помощью кнопок недели недели по будням MYSQL PHP Нет выбранной базы данных – не удается найти ошибку jquery select2: ошибка в получении данных из php-mysql Отправить кнопку не будет показывать результат одним щелчком мыши, это покажет его вторым кликом Не работает функция php xampp mail () проблема создания сигнатуры oAuth с PHP (отправка фотосет в Tumblr) Заполнение всех сеансов сервера в PHP PHP – SQL, как выбрать идентификаторы из таблицы и вставить в другую таблицу? Узнайте наиболее популярные слова в MySQL / PHP Написание подготовленного оператора для извлечения данных из таблицы (фатальная ошибка) Можно ли создавать статические переменные во время выполнения в PHP? Как редактировать файлы HTML напрямую?

Новый Google ReCaptcha не отправляет / не получает «g-recaptcha-response»

Я пытаюсь реализовать Googles новый «NoCaptcha» на моем сайте. Пока у меня виджет выглядит нормально, но он не проверяется на моей странице PHP.

Мой код настроен как таковой:

В <head>

 <script src='https://www.google.com/recaptcha/api.js'></script> 

Сторона клиента:

 <form id="contactform" action="bookingverify.php" method="POST"> <input type="text" name="name" size="41"> <!--OTHER FORM INPUTS--> <div class="g-recaptcha" data-sitekey="mypublickey"></div> </form> 

Серверная сторона (bookingverify.php)

  $captcha; if(isset($_POST['g-recaptcha-response'])){ $captcha=$_POST['g-recaptcha-response']; } if(!$captcha){ echo '<h2>Please check the the captcha form.</h2>'; exit; } $response=file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=myprivatekey&response=".$captcha."&remoteip=".$_SERVER['REMOTE_ADDR']); if($response.success==false){ echo '<h2>You are spammer</h2>'; } else{ //SEND MAIL } ,  $captcha; if(isset($_POST['g-recaptcha-response'])){ $captcha=$_POST['g-recaptcha-response']; } if(!$captcha){ echo '<h2>Please check the the captcha form.</h2>'; exit; } $response=file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=myprivatekey&response=".$captcha."&remoteip=".$_SERVER['REMOTE_ADDR']); if($response.success==false){ echo '<h2>You are spammer</h2>'; } else{ //SEND MAIL } ,  $captcha; if(isset($_POST['g-recaptcha-response'])){ $captcha=$_POST['g-recaptcha-response']; } if(!$captcha){ echo '<h2>Please check the the captcha form.</h2>'; exit; } $response=file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=myprivatekey&response=".$captcha."&remoteip=".$_SERVER['REMOTE_ADDR']); if($response.success==false){ echo '<h2>You are spammer</h2>'; } else{ //SEND MAIL } ,  $captcha; if(isset($_POST['g-recaptcha-response'])){ $captcha=$_POST['g-recaptcha-response']; } if(!$captcha){ echo '<h2>Please check the the captcha form.</h2>'; exit; } $response=file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=myprivatekey&response=".$captcha."&remoteip=".$_SERVER['REMOTE_ADDR']); if($response.success==false){ echo '<h2>You are spammer</h2>'; } else{ //SEND MAIL } ,  $captcha; if(isset($_POST['g-recaptcha-response'])){ $captcha=$_POST['g-recaptcha-response']; } if(!$captcha){ echo '<h2>Please check the the captcha form.</h2>'; exit; } $response=file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=myprivatekey&response=".$captcha."&remoteip=".$_SERVER['REMOTE_ADDR']); if($response.success==false){ echo '<h2>You are spammer</h2>'; } else{ //SEND MAIL } 

Я пробовал повторять $_POST['g-recaptcha-response'] но он кажется пустым. Это похоже на то, что переменная не отправляется на php.

Кто-нибудь знает, что я делаю неправильно здесь?

Ваш код работал нормально на моем тестовом сервере с помощью моего личного / открытого ключа. Это кажется тривиальным, но единственное, что я должен был добавить – у вас есть кнопка отправки в ваших других входных формах? Это то, что фактически помещает данные в ваш PHP-скрипт.

 <input type="submit"> </form> 

В противном случае добавьте var_dump($_POST['g-recaptcha-response']); на ваш bookingverify.php и посмотреть, что он выводит.

ОК, я не знаю, почему, но я удалил exit; во втором заявлении IF, и это сработало. Weird.

У меня была аналогичная проблема. Очевидно, если вы не установите флажок, то $ _POST ['g-recaptcha-response'] будет пустым. поэтому просто убедитесь, что вы нажмете его при тестировании