Пример контактной формы не работает с reCAPTCHA

77
10

Кто-нибудь сможет мне помочь в этой электронной почте? Я абсолютно не знаю, что я делаю с этим, и я никогда не делал ничего подобного раньше.

Я работаю с этим примером https://css-tricks.com/examples/NiceSimpleContactForm2/

Я привел пример на http://www.techagesite.com/contact/index.php

Я не уверен, что мне нужно сделать, чтобы заставить reCAPTCHA работать. На самом деле он даже не появляется в версии авторов онлайн.

Я не знаю, должен ли им размещать код для всех включенных php файлов, или если вы можете его обработать из самого примера zip.

спросил(а) 2021-01-26T16:33:14+03:00 4 месяца, 4 недели назад
1
Решение
63

Проверьте эту страницу, где это бесстыдно взято из:

Из ваших примеров кода кажется, что вы пытаетесь создать recaptcaha в <iframe>. Это не сработает очень легко - точка captcha заключается в том, что вы должны отправить форму с дополнительным значением, которое ваш код должен проверять на стороне сервера.

Просто создайте нормальную HTML-форму (избавьтесь от раздела iframe), а затем отбросьте свой php-код, который создает часть recaptacha, например, в форме (contact_form.php):

  <form method="post" action="verify.php">
<?php
require_once('recaptchalib.php');
$publickey = "your_public_key"; // you got this from the signup page
echo recaptcha_get_html($publickey);
?>
<input type="submit" />
</form>

Php заменяется на javascript при визуализации страницы. Когда пользователь отправляет свою форму, она будет размещена на URL в action выше, что код на стороне сервера, который проверяет входную capatcha (verify.php):

<?php
require_once('recaptchalib.php');
$privatekey = "your_private_key";
$resp = recaptcha_check_answer ($privatekey,
$_SERVER["REMOTE_ADDR"],
$_POST["recaptcha_challenge_field"],
$_POST["recaptcha_response_field"]);

if (!$resp->is_valid) {
// What happens when the CAPTCHA was entered incorrectly
die ("The reCAPTCHA wasn't entered correctly. Go back and try it again." .
"(reCAPTCHA said: " . $resp->error . ")");
} else {
// Your code here to handle a successful verification
}
?>

Это.

ответил(а) 2021-01-26T16:33:14+03:00 4 месяца, 4 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема