如何在服务器端验证 Google reCAPTCHA v3?
P粉904191507
2023-08-27 16:48:47
<p>我刚刚设置了带有复选框的新谷歌验证码,它在前端工作正常,但我不知道如何使用 PHP 在服务器端处理它。我尝试使用下面的旧代码,但即使验证码无效,表单也会发送。</p>
<pre class="brush:php;toolbar:false;">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>';}</pre>
<p><br /></p>
私钥安全
虽然这里的答案肯定有效,但它们使用
GET
请求,这会暴露您的私钥(即使使用https
)。在 Google Developers 上,指定的方法是POST
。有关更多详细信息:https://stackoverflow.com/a/323286/1680919
通过 POST 验证
数组语法:我使用“新”数组语法(
[
和]
而不是array(..))。如果您的 php 版本尚不支持此功能,您将必须相应地编辑这 3 个数组定义(请参阅评论)。
返回值:如果用户有效,则此函数返回
来使用它true
;如果无效,则返回false
;如果用户有效,则返回null
如果发生错误。例如,您可以简单地通过编写if (isValid()) { ... }
这是解决方案
index.html
验证.php
http://codeforgeek.com/2014/12/google-recaptcha-tutorial /