如何使用 jQuery 验证插件和 PHP 创建 google reCAPTCHA v2.0 验证
How to create google reCAPTCHA v2.0 validation using jQuery Validation Plugin and PHP
我想为使用 jQuery 验证插件和 php 会话创建的 recaptcha 创建验证。
jQuery
我正在使用 (https://jqueryvalidation.org/) 这个 jquery 插件进行表单验证,并且我这样做了。但我想为使用此插件提交的 recaptcha 创建验证,但我无法创建它。
Here is a validation for google recaptcha v1.0 使用这些插件。
请帮助我使用此插件为 google recaptcha v2.0(已归档)创建验证。
PHP
我还想使用 $_SESSION 创建验证,我尝试在我的 (signup-process.php) 页面中创建它,并在 recaptcha 文件下的表单页面中打印会话消息。它不起作用:(
======
请帮助我为使用这两种方式提交的 recaptcha 创建验证。
HTML
<form action="signup-process.php" method="post" id="signupForm">
<input class="form-control" type="text" name="name" id="name">
<div class="g-recaptcha" data-sitekey="my-key"></div>
<!--Session validation message-->
/*<?php if(isset($_SESSION["ReC"]) && !empty($_SESSION["ReC"])){
echo $_SESSION["ReC"];
unset($_SESSION["ReC"]); }?> */
<input class="btn btn-block" type="submit" value="Sign Up" name="submitted">
</form>
JS
$("#signupForm").validate({
rules: {
name: "required",
},
messages: {
name: "Please enter your name",
}
});
报名-process.php
if(isset($_POST['g-recaptcha-response'])&& !empty($_POST['g-recaptcha-response'])){
$secret = "my-key";
$ip = $_SERVER['REMOTE_ADDR'];
$captcha = $_POST['g-recaptcha-response'];
$rsp = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=$secret&response=$captcha&remoteip$ip");
$arr = json_decode($rsp,TRUE);
if($arr['success'] == "true"){
echo 'Done';
}else{
echo 'SPam';
} else {
$_SESSION["ReC"]="Please select captcha";
header("location:signup.php");
}
@NK 如果您将 php 验证消息应用到表单标记之上。它会起作用。
像这样
<!--Session validation message-->
<?php if(isset($_SESSION["ReC"]) && !empty($_SESSION["ReC"])){
echo $_SESSION["ReC"];
unset($_SESSION["ReC"]); }
?>
<form action="signup-process.php" method="post" id="signupForm">
<input class="form-control" type="text" name="name" id="name">
<div class="g-recaptcha" data-sitekey="my-key"></div>
<input class="btn btn-block" type="submit" value="Sign Up" name="submitted">
</form>
我想为使用 jQuery 验证插件和 php 会话创建的 recaptcha 创建验证。
jQuery
我正在使用 (https://jqueryvalidation.org/) 这个 jquery 插件进行表单验证,并且我这样做了。但我想为使用此插件提交的 recaptcha 创建验证,但我无法创建它。 Here is a validation for google recaptcha v1.0 使用这些插件。 请帮助我使用此插件为 google recaptcha v2.0(已归档)创建验证。
PHP
我还想使用 $_SESSION 创建验证,我尝试在我的 (signup-process.php) 页面中创建它,并在 recaptcha 文件下的表单页面中打印会话消息。它不起作用:(
====== 请帮助我为使用这两种方式提交的 recaptcha 创建验证。
HTML
<form action="signup-process.php" method="post" id="signupForm">
<input class="form-control" type="text" name="name" id="name">
<div class="g-recaptcha" data-sitekey="my-key"></div>
<!--Session validation message-->
/*<?php if(isset($_SESSION["ReC"]) && !empty($_SESSION["ReC"])){
echo $_SESSION["ReC"];
unset($_SESSION["ReC"]); }?> */
<input class="btn btn-block" type="submit" value="Sign Up" name="submitted">
</form>
JS
$("#signupForm").validate({
rules: {
name: "required",
},
messages: {
name: "Please enter your name",
}
});
报名-process.php
if(isset($_POST['g-recaptcha-response'])&& !empty($_POST['g-recaptcha-response'])){
$secret = "my-key";
$ip = $_SERVER['REMOTE_ADDR'];
$captcha = $_POST['g-recaptcha-response'];
$rsp = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=$secret&response=$captcha&remoteip$ip");
$arr = json_decode($rsp,TRUE);
if($arr['success'] == "true"){
echo 'Done';
}else{
echo 'SPam';
} else {
$_SESSION["ReC"]="Please select captcha";
header("location:signup.php");
}
@NK 如果您将 php 验证消息应用到表单标记之上。它会起作用。
像这样
<!--Session validation message-->
<?php if(isset($_SESSION["ReC"]) && !empty($_SESSION["ReC"])){
echo $_SESSION["ReC"];
unset($_SESSION["ReC"]); }
?>
<form action="signup-process.php" method="post" id="signupForm">
<input class="form-control" type="text" name="name" id="name">
<div class="g-recaptcha" data-sitekey="my-key"></div>
<input class="btn btn-block" type="submit" value="Sign Up" name="submitted">
</form>