Я не могу вставить Recaptcha в форму электронной почты

Я пытаюсь внедрить recaptcha в форму электронной почты на сайте, над которым я работаю, но он не работает, и я не могу понять, почему … Я удалил весь код recaptcha, и форма работает нормально, я Я думаю, что моя ошибка заключается в том, что где-то в обработке recaptcha, но я не уверен. Любая помощь будет принята с благодарностью

это форма

<!-- start contact form -->
<form method="POST" name="contact_form" action="contact-form-handler.php">
<h4>Your Name:</h4>
<input type="text" name="name" size="35">
<h4>Email Address:</h4>
<input type="text" name="email" size="35">
<h4>Message:</h4>
<textarea name="message" rows="6" cols="37"></textarea>
<div>
<script type="text/javascript"src="http://www.google.com/recaptcha/api/challenge?k=publickey">
</script>
<noscript>
<iframe src="http://www.google.com/recaptcha/api/noscript?k=publickey"height="300" width="500" frameborder="0"></iframe><br>
<textarea name="recaptcha_challenge_field" rows="3" cols="40">
</textarea>
<input type="hidden" name="recaptcha_response_field"value="manual_challenge">
</noscript>
</div>
<div>
<input type="submit" value="Submit">
</div>

<script language="JavaScript">
var frmvalidator  = new Validator("contact_form");
frmvalidator.addValidation("name","req","Please provide your name");
frmvalidator.addValidation("email","req","Please provide your email");
frmvalidator.addValidation("email","email","Please enter a valid email address");
frmvalidator.addValidation("message","req","Please write a message");
frmvalidator.addValidation("recaptcha_challenge_field", "req", "Please answer the captcha test");
</script>
</form>
<!-- end contact form-->

и это бэкэнд PHP, который обрабатывает его …

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

if (!$resp->is_valid) {
header('Location: contact.html')
exit;

} else {

$myemail = 'myemail';

$to = $myemail;

$email_subject = "Contact form submission: $name";

$email_body = "You have received a new message. ".

" Here are the details:\n Name: $name \n ".

"Email: $email_address\n Message \n $message";

$headers = "From: $myemail\n";

$headers .= "Reply-To: $email_address";

$email_body = wordwrap($email_body, 70);

mail($to,$email_subject,$email_body,$headers);

header('Location: contact_thanks.html');

exit;

}
?>

0

Решение

Вы должны вставить ключи, предоставляемые recaptcha здесь: src="http://www.google.com/recaptcha/api/challenge?k=publickey" и здесь src="http://www.google.com/recaptcha/api/noscript?k=publickey" (заменить «открытый ключ» на открытый ключ, заданный recaptcha)

И поместите свой закрытый ключ, заданный recaptcha, в файл php здесь: $privatekey = "PRIVATE KEY";

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

Чтобы получить ключи, если вы еще этого не сделали, зарегистрируйтесь Вот

Из моего собственного опыта очень важное замечание: если вы получите неработающие ключи, рекапча даже не будет отображаться, и вы не получите никакой ошибки! Мне пришлось вручную получить доступ к ссылкам, чтобы увидеть, что ключ recaptcha вернет 500 внутренних ошибок сервера, и мне пришлось ждать, пока они исправят эти ключи.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]