TShopping

 找回密碼
 註冊
搜索
查看: 1699|回復: 0
打印 上一主題 下一主題

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

[複製鏈接]
跳轉到指定樓層
1#
發表於 2021-11-7 22:10:38 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
 
Push to Facebook

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



STEP I

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



STEP II

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

選1.勾選我不是機器人



STEP III





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

  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, 2024-4-26 07:10 , Processed in 0.085240 second(s), 25 queries .

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

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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