如何集成 Google reCAPTCHA 到 PHP 项目中

PHP

垃圾邮件对于所以网站来说都是很普遍的事。每个网站开发者都面临垃圾邮件问题和执行验证码验证。

Google Recaptcha 是摆脱垃圾邮件的最佳选择之一。

在这个教程,我们将看到如何在 PHP 中使用 Recaptcha 或任何在 PHP 中使用 Google reCaptcha 。

目录[隐藏]

  1. 注册你的网站并获取 API 密钥 (site key 和 secret key)
  2. HTML 将 Google reCaptcha 添加到表单
  3. 验证 reCAPTCHA

步骤 1. 注册你的网站并获取 API 密钥(site key 和 secret key)

第一,你必须在 Google reCaptcha 管理控制台注册你的网站并获取站点密钥和密钥。

标签: 你的网站名称

reCatpcha 类型: 选择 reCaptcha v2 >> 选择 我不是机器人 复选框。

域名: 提及你的网站域名

注册网站到 Google reCaptcha

提交给 Google 后,将提供给你以下两样东西

  1. Site Key
  2. Secret Key

复制 Google reCaptcha site key 和 secret key,供之后在reCaptcha 集成代码中使用。

步骤 2.  HTML 将 Google reCaptcha 添加到表单

第一,引入 reCAPTCHA JavaScript API 库。在你的 HTML 模板的 head 关闭标签之前粘贴这段代码:

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

最后粘贴这段代码,将显示你想要的 reCAPTCHA 组件,并将下面的 date-sitekey 值替换成你自己的 Site key。

<div class="g-recaptcha" data-sitekey="your_site_key">

更多细节,你可以参考以下的列子

例子:

<form method="POST">
   <input type="text" name="name" value="" /><br>
   <input type="text" name="email" value="" /><br>
   <textarea name="message"></textarea><br>

  <div class="g-recaptcha" data-sitekey="your_site_key"></div><br>

  <input type="submit" name="submit" value="SUBMIT">
</form>

完成后,刷新网页,你将看到 reCaptcha 组件已经添加到表单中了。

步骤 3. PHP 代码 [验证 reCAPTCHA]

将 secret key 替换成你自己的。

<?php
if(isset($_POST['submit'])){  

if (isset($_POST['g-recaptcha-response']) && !empty($_POST['g-recaptcha-response'])) { 

    $secretKey   = "your_site_key";
    $responseKey = $_POST['g-recaptcha-response'];
    $userIP      = $_SERVER['REMOTE_ADDR'];
    $url         = "https://www.google.com/recaptcha/api/siteverify?secret=$secretKey&response=$responseKey&remoteip=$userIP";
    $response    = file_get_contents($url);
    $response    = json_decode($response);

    if($response->success){
        echo "Verification success.";
    } else {
        echo "Verification failed";
    }

}
}

一旦使用你的 Secret Key 更改了 $secretKey,就完成了。

本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

原文地址:https://www.phpcluster.com/integrate-goo...

译文地址:https://learnku.com/php/t/40664

本文为协同翻译文章,如您发现瑕疵请点击「改进」按钮提交优化建议
讨论数量: 1

国内用得了吗?

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!