Живой пример, как показано ниже: http://www.uslegalsupport.com/contact-us-new/рекапчи с Ajax проверки всегда возвращает неправильно, даже если правильно
В основном, когда вы заполняете форму ввода требуемых полей, конечно, если вы ввели правильный или неправильный капчу, он говорит это недействительно. Я проверил все, что я мог придумать, и сравнил его с http://www.jquery4u.com/forms/setup-user-friendly-captcha-jqueryphp/. Я не могу понять, что мне не хватает и/или не так.
Любая помощь очень ценится!
JavaScript:
<script type="text/javascript">
//Validate the Recaptcha' Before continuing with POST ACTION
function validateCaptcha()
{
challengeField = $("input#recaptcha_challenge_field").val();
responseField = $("input#recaptcha_response_field").val();
var html = $.ajax({
type: "POST",
url: "validateform.php",
data: "form=signup&recaptcha_challenge_field=" + challengeField + "&recaptcha_response_field=" + responseField,
async: false
}).responseText;
if(html == "success") {
//Add the Action to the Form
$("form").attr("action", "/thank-you-for-contacting-us-new/"); //<-- your script to process the form
$("#submit").attr("value", "Submit");
//Indicate a Successful Captcha
$("#captcha-status").html("<p class=\"green bold\">Success! Thanks you may now proceed.</p>");
} else {
$("#captcha-status").html("<p class=\"red bold\">The security code you entered did not match. Please try again.</p>");
Recaptcha.reload();
}
}
</script>
HTML форма:
<form id="signup" method="post" action="javascript:validateCaptcha()">
<input class="contacinput" type="text" name="name222" placeholder="Name*" size="40" required><br />
<input class="contacinput" type="text" name="company222" placeholder="Company or Law Firm*" size="40" required><br />
<input class="contacinput" type="text" name="title222" placeholder="Title*" size="40" required><br />
<input class="contacinput" type="text" name="phone222" placeholder="Phone Number*" size="20" required><br />
<input class="contacinput" type="text" name="email222" placeholder="Email*" size="20" required><br />
<input class="contacinput" type="text" name="address222" placeholder="Street Address" size="20"><br />
<input class="contacinput" type="text" name="city222" placeholder="City" size="20"><input class="contacinput" type="text" name="state222" placeholder="State" size="5"><input class="contacinput" type="text" name="zip222" placeholder="Zip*" size="5" required><br />
<input class="contacinput" type="text" name="subject222" placeholder="Subject*" size="40" required><br />
<textarea rows="10" cols="45" class="contacinput" name="message222" placeholder="Message*" required></textarea><br /><br />
</p>
<div id="captcha-wrap">
<div id="termsckb-wrap"><p class="bold">Type in the words below (separated by a space):</p></div>
<?php
require_once("recaptchalib.php");
$publickey = "my-public-key-is-here"; // you got this from the signup page
echo recaptcha_get_html($publickey);
?>
<div id="captcha-status"></div>
</div>
<p style="color: red;" id="captchaStatus"> </p>
<input class="wpcf7-form-control wpcf7-submit signup submitbtn" id="signupbutton" value="submit" type="submit" name="signupbutton" />
</form>
validateform.php:
<?php
require_once("recaptchalib.php");
$privatekey = "my-private-key-is-here"; //<!----- your key here
$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. Please go back and try it again. <a href=\"javascript:history.go(-1)\">Back</a>"
//"(reCAPTCHA said: " . $resp->error . ")
echo "fail";
} else {
echo "success";
}
?>
Эй люди, спасибо за ответ, я не слишком хорошо знаком с Java и Ajax, я просто пытаюсь кусочками код, если вы не возражаете давая немного больше информации или примера, я был бы признателен. Я не совсем понимаю, что вы говорите, чтобы заменить на $ .ajax ({success: function() {/ * do stuff here * /}}) или $ .ajax ({/ * Свойства объекта * /}). done (function() {/ * do stuff here/*}). – Cole
Спасибо за ваши примеры, я на самом деле пришел довольно близко ко второму, когда я пытался основываться на вашем оригинальном посте. Я пробовал оба примера, оба делают то же самое, что и исходный пост. Прямо сейчас http://www.uslegalsupport.com/contact-us-new/ настроен как ваш второй пример. – Cole
Просто попробовал оба ваших пересмотра, ни один из ответов не ответил. В настоящее время он использует 1-й. – Cole