如何集成 Google reCAPTCHA 到 PHP 项目中

489 阅读2分钟

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


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


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


目录 [隐藏]


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

HTML 将 Google reCaptcha 添加到表单

验证 reCAPTCHA

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

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


标签: 你的网站名称


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


域名: 提及你的网站域名

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

  1. Site Key
  2. Secret Key

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


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

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


<scriptsrc='https://www.google.com/recaptcha/api.js'asyncdefer>


最后粘贴这段代码,将显示你想要的 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,就完成了。

更多学习内容请访问:

八重樱:怎么从一名码农成为架构师的必看知识点:目录大全(不定期更新)​

zhuanlan.zhihu.com图标

以上内容希望帮助到大家,很多PHPer在进阶的时候总会遇到一些问题和瓶颈,业务代码写多了没有方向感,不知道该从那里入手去提升,对此我整理了一些资料,包括但不限于:分布式架构、高可扩展、高性能、高并发、服务器性能调优、TP6,laravel,YII2,Redis,Swoole、Swoft、Kafka、Mysql优化、shell脚本、Docker、微服务、Nginx等多个知识点高级进阶干货需要的可以免费分享给大家,需要的可以加入我的官方群点击此处