TShopping

 找回密碼
 註冊
搜索
查看: 195|回復: 0

[教學] Google reCAPTCHA V2 機器人驗證 教學 PHP範例

[複製鏈接]
發表於 2021-11-7 22:10:38 | 顯示全部樓層 |閱讀模式
 
Push to Facebook

如果已經註冊過,想查詢自己的公私鑰:
https://www.google.com/recaptcha/admin#list
還沒註冊過的,下面三步驟建立Google reCAPTCHA~



STEP I

前往 Google機器人官網,點選右上的 「Admin console」按鈕。

Google reCAPTCHA 機器人驗證 PHP

Google reCAPTCHA 機器人驗證 PHP


STEP II

填入名稱、選擇驗證類型、網域、管理者,同意Google蒐集網頁資訊、建立

選1.勾選我不是機器人

Google reCAPTCHA 機器人驗證 PHP

Google reCAPTCHA 機器人驗證 PHP



STEP III


Google reCAPTCHA 機器人驗證 PHP

Google reCAPTCHA 機器人驗證 PHP



下方則是貼到要顯示的位置

  1. <div id="recaptcha_box2"></div>
複製代碼

這段代碼接到網站<head>裡面

  1. <!-- Google reCAPTCHA -->
  2.     <script src="https://www.google.com/recaptcha/api.js?onload=onloadCallback2&render=explicit" async></script>               
  3.         <script>
  4.         var onloadCallback2 = function() {
  5.         grecaptcha.render("recaptcha_box2", {
  6.         /* Change Your sitekey */
  7.         "sitekey": "公鑰",
  8.         "callback": callback2
  9.         });
  10.         };

  11.         function callback2() {
  12.         /* 這裡可執行提交表單的動作
  13.         alert("恭喜你驗證成功");
  14.         */
  15.         document.getElementById("submit2").disabled = false;
  16.         document.getElementById("submit2").classList.remove('au-btn--gray');
  17.         document.getElementById("submit2").classList.add('au-btn--yellow');
  18.         }
  19.     </script>
複製代碼

PHP驗證版
  1. // GOOGLE RECAPTHA
  2.         $data['secret'] = '私鑰';
  3.     $data['response'] = $_POST['g-recaptcha-response'];
  4.     $ch = curl_init();
  5.     // 使用CURL驗證
  6.     curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,0);
  7.     curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,0);
  8.     curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);
  9.     curl_setopt($ch, CURLOPT_URL, 'https://www.google.com/recaptcha/api/siteverify');
  10.     curl_setopt($ch, CURLOPT_POST, true);
  11.     curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
  12.     $result = curl_exec($ch);
  13.     curl_close($ch);
  14.     // 解密
  15.         $result = json_decode($result, true);

  16.     // 檢查是否通過驗證
  17.     if ( ! isset($result['success']) || ! $result['success']) {
  18.         // 驗證失敗
  19.                 echo "<script>alert('驗證碼機器人失敗!');history.go(-1);</script>";
  20.                   exit;
  21.     }
複製代碼


然後在form的action程式裏面貼上使用這個function ,如果false就不給登入,就可以啦~

查詢建立好的公私鑰: https://www.google.com/recaptcha/admin/site/350731086/settings

文章出處



 

臉書網友討論
您需要登錄後才可以回帖 登錄 | 註冊 |

本版積分規則



Archiver|手機版|小黑屋|免責聲明|TShopping

GMT+8, 2021-12-7 07:48 , Processed in 0.175318 second(s), 25 queries .

本論壇言論純屬發表者個人意見,與 TShopping綜合論壇 立場無關 如有意見侵犯了您的權益 請寫信聯絡我們。

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表