前言
因為MyAndroid這個網站也有一段時間了,開放留言就算有圖形驗證碼還是保受留言機器人騷擾之苦… 索性直接關閉所有人的留言功能
等到有空再來自幹一個防止機器人的驗證程序,但這個過程一拖就是好多年了 (平日上班太忙)
直到最近想說,乾脆就整合Google的圖形驗證碼吧
順便做個教學
正文
1. 先到 Google reCAPTCHA去註冊一個key
CAPTCHA的後臺
在Register a new site輸入網站的資訊
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqW-p0_YQtk04UusmcFQJ7Hn6lOeEfBX3iu84XKXewqFtGzr9C9mMiwZRD1VAN6EI_aTngMx-kAxkEvNMjMpHa0rehW-iByjsn32Yyh0_jFFXnIHQgwhudPHMrc7we6ucNjuZSttwCOCMr/s400/%25E8%259E%25A2%25E5%25B9%2595%25E5%25BF%25AB%25E7%2585%25A7+2016-04-29+%25E4%25B8%258A%25E5%258D%258812.05.29.png)
Label是標籤,方便自己識別用
Domains可以填多個網址,例如你有 www.myandroid.tw 與 www.airweb.tw
就可以都填上 (一行一個)
然後可以取得Key了
接下來其實Google有教學
不過這邊還是說明一下
在要顯示認證的頁面,加上這個Script
<script src='https://www.google.com/recaptcha/api.js'></script>
和要顯示的位置放上這個DIV
<div class="g-recaptcha" data-sitekey="Google 給的KEY"></div>
(注意:是 Site key 不是 Secret Key!!)
然後你的Server端如果是PHP,可以使用現成的套件來處理
(https://github.com/google/recaptcha)
使用 Composer來取得套件
composer require google/recaptcha "~1.1"
在檢核的PHP頁面加上
require('./vendor/google/recaptcha/src/autoload.php'); // _GOOGLE_RECAPTCHA_SEC_KEY 就是 google 給的 Secret Key $recaptcha = new \ReCaptcha\ReCaptcha(_GOOGLE_RECAPTCHA_SEC_KEY); $gRecaptchaResponse = $_POST['g-recaptcha-response']; $remoteIp = $_SERVER['REMOTE_ADDR']; $resp = $recaptcha->verify($gRecaptchaResponse, $remoteIp); if(!$resp->isSuccess()){ echo '請先證明您不是機器人'; return; }
其中require請改成自己的路徑
沒有留言:
張貼留言