如何在服务器端验证Google reCAPTCHA v3?

我刚刚用复选框设置了新的google

recaptcha,它在前端工作正常,但是我不知道如何在服务器端使用PHP处理它。我尝试使用下面的旧代码,但是即使验证码无效,也会发送表格。

require_once('recaptchalib.php');

$privatekey = "my key";

$resp = recaptcha_check_answer ($privatekey,

$_SERVER["REMOTE_ADDR"],

$_POST["recaptcha_challenge_field"],

$_POST["recaptcha_response_field"]);

if (!$resp->is_valid) {

$errCapt='<p style="color:#D6012C ">The CAPTCHA Code wasnot entered correctly.</p>';}

回答:

这是解决方案

index.html

<html>

<head>

<title>Google recapcha demo - Codeforgeek</title>

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

</head>

<body>

<h1>Google reCAPTHA Demo</h1>

<form id="comment_form" action="form.php" method="post">

<input type="email" placeholder="Type your email" size="40"><br><br>

<textarea name="comment" rows="8" cols="39"></textarea><br><br>

<input type="submit" name="submit" value="Post comment"><br><br>

<div class="g-recaptcha" data-sitekey="=== Your site key ==="></div>

</form>

</body>

</html>

verify.php

<?php

$email; $comment; $captcha;

if(isset($_POST['email']))

$email=$_POST['email'];

if(isset($_POST['comment']))

$comment=$_POST['comment'];

if(isset($_POST['g-recaptcha-response']))

$captcha=$_POST['g-recaptcha-response'];

if(!$captcha){

echo '<h2>Please check the the captcha form.</h2>';

exit;

}

$response = json_decode(file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=YOUR SECRET KEY&response=".$captcha."&remoteip=".$_SERVER['REMOTE_ADDR']), true);

if($response['success'] == false)

{

echo '<h2>You are spammer ! Get the @$%K out</h2>';

}

else

{

echo '<h2>Thanks for posting comment.</h2>';

}

?>

http://codeforgeek.com/2014/12/google-recaptcha-

tutorial/

以上是 如何在服务器端验证Google reCAPTCHA v3? 的全部内容, 来源链接: utcz.com/qa/426365.html

回到顶部