做了一個thinkphp5的極驗擴展,使用composer
安裝
composer require lilwil/geetest
使用
參數配置
在設定檔配置geetest配置,需要到官網申請//舉例<br>
'geetest' => [<br>
'captcha_id'=>'40c653bd06de23cece65d180d94b937f',<br>
'private_key'=>'0c54bad6d2419733de49db4826d83942',<br>
],
模板裡的呼叫<!-- 為使用方便,直接使用jquery.js函式庫 --><br>
<script></script><br>
<!-- 引進封裝了failback的介面--initGeetest --><br>
<script></script><br>
<script><br />
function doOk(){<br />
//TODO:驗證成功,對表單的操作<br />
// $("#embed-submit").attr("disabled", false); <br />
// $("#embed-submit").attr("style", 'background:#fe693e'); <br />
}<br />
var handlerEmbed = function (captchaObj) {<br />
// 將驗證碼加到id為captcha的元素<br />
captchaObj.appendTo("#embed-captcha");<br />
captchaObj.onSuccess(doOk);<br />
captchaObj.onReady(function () {<br />
//TODO:頁面載入完成後執行的方法<br />
// $("#embed-submit").attr("disabled", true); <br />
// $("#embed-submit").attr("style", 'background:#A79995'); <br />
//$("#wait")[0].className = "hide";<br />
});<br />
};<br />
$.ajax({<br />
// 取得id,challenge,success(是否啟用failback)<br />
url: "{:geetest_url()}?t=" + (new Date()).getTime(), // 加隨機數防止快取<br />
type: "get",<br />
dataType: "json",<br />
success: function (data) {<br />
// 使用initGeetest介面<br />
// 參數1:設定參數<br />
// 參數2:回調,回呼的第一個參數驗證碼對象,之後可以用它做appendTo之類的事件<br />
initGeetest({<br />
gt: data.gt,<br />
challenge: data.challenge,<br />
product: "float", // 產品形式,包括:float,embed,popup。注意只對PC版驗證碼有效<br />
offline: !data.success // 表示使用者後台偵測極驗伺服器是否宕機,一般不需要注意<br />
}, handlerEmbed);<br />
}<br />
});<br />
</script><br>
控制器裡驗證<br>
<br>
//需要傳入$_POST請求的資料<br>
if(!geetest_check($post)){<br>
//驗證失敗<br>
};
效果