你能找到這篇文章,說明你對極驗驗證已經不是完全陌生的了,所有廢話我就不多說了,直接開始表說如何使用它,不過在此之前呢,先粘貼幾個你可能會用得到的網址:
官網:http://www.geetest.com/
官方文件:http://www.geetest.com/install/sections/idx-basic-introduction.html
github: https://github.com/GeeTeam/gt-php-sdk.git
如何使用:
首先要確認前端使用頁面,例如登陸頁面
1.在登陸頁面訪問引入類庫:
如果您的網站使用https,則只需要將引入極驗庫的地方換成https協議即可,不需要更改其它地方。例如更換成以下程式碼即可:
2.初始化前端
下面的程式碼需要在頁面載入後就執行,如果你使用jQuery,可以寫在$(function( ){});內
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | $.ajax({
url: "../web/StartCaptchaServlet.php?t=" + ( new Date ()).getTime(),
type: "get" ,
dataType: "json" ,
success: function (data) {
initGeetest({
gt: data.gt,
challenge: data.challenge,
product: "popup" ,
offline: !data.success
}, handlerPopup);
}
});
|
登入後複製
上面程式碼的意思是說,頁面載入後,需要到你指定的URL位址上取得驗證碼資訊,至於上面的URL位址「../web/StartCaptchaServlet.php」裡面寫了什麼內容,這個我們在伺服器端程式碼部署會詳細說明。
但是需要說明的是,上面的程式碼裡有一個回調函數叫“handlerPopup”,這個函數是你需要驗證碼的真正初始化程式碼:如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | var handlerPopup = function (captchaObj) {
$( "#popup-submit" ).click( function () {
var validate = captchaObj.getValidate();
if (!validate) {
alert('请先完成验证!');
return ;
}
$.ajax({
url: "../web/VerifyLoginServlet.php" ,
type: "post" ,
data: {
username:username,
password:password,
geetest_challenge: validate.geetest_challenge,
geetest_validate: validate.geetest_validate,
geetest_seccode: validate.geetest_seccode
},
success: function (result) {
if (result == "1" ) {
alert( "验证码验证失败!" );
} else if (result == "2" ) {
alert( "用户名或密码错误!" );
} else if (result == "3" ) {
alert( "登陆成功!" );
} else {
alert( "登陆错误!" );
}
}
});
});
captchaObj.bindOn( "#popup-submit" );
captchaObj.appendTo( "#popup-captcha" );
};
|
登入後複製
至此,前端的所有設定都寫完了,官方的說明文件:http://www.geetest.com/install/sections/idx-client-sdk.html
3.伺服器端部署(PHP)
在第一步中,我們設定了一個這樣的位址「 ../web/StartCaptchaServlet.php”,在這個地址裡邊寫什麼呢:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | <?php
require_once dirname(dirname( __FILE__ )) . '/lib/ class .geetestlib.php';
require_once dirname(dirname( __FILE__ )) . '/config/config.php';
$GtSdk = new GeetestLib(CAPTCHA_ID, PRIVATE_KEY);
session_start();
if (!isset( $_SESSION ['user_id'])){
$_SESSION ['user_id']=uniqid();
}
$user_id = $_SESSION ['user_id'];
$status = $GtSdk ->pre_process( $user_id );
$_SESSION ['gtserver'] = $status ;
$_SESSION ['user_id'] = $user_id ;
echo $GtSdk ->get_response_str();
?>
|
登入後複製
如何獲取驗證ID 和驗證Key :
1.從驗證後台註冊帳號
2.添加驗證,可以獲取一組當前驗證的ID/Key
3.將ID和Key分別替換到config.php檔案中的captcha_id/private_key變數的值
4.點擊提交按鈕之後的服務端校驗(二次驗證)
比如上面說的,使用者登入時,你把使用者名稱和密碼和驗證碼資訊都提交到伺服器了,這個時候,你就可以做校驗了:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | <?php
require_once dirname(dirname( __FILE__ )) . '/lib/ class .geetestlib.php';
require_once dirname(dirname( __FILE__ )) . '/config/config.php';
session_start();
$GtSdk = new GeetestLib(CAPTCHA_ID, PRIVATE_KEY);
$code_flag =false;
$user_id = $_SESSION ['user_id'];
if ( $_SESSION ['gtserver'] == 1) {
$result = $GtSdk ->success_validate( $_POST ['geetest_challenge'], $_POST ['geetest_validate'], $_POST ['geetest_seccode'], $user_id );
if ( $result ) {
$code_flag =true;
}
} else {
if ( $GtSdk ->fail_validate( $_POST ['geetest_challenge'], $_POST ['geetest_validate'], $_POST ['geetest_seccode'])) {
$code_flag =true;
}
}
if ( $code_flag ){
} else {
echo 1;
exit (-1);
}
?>
|
登入後複製
感謝你的閱讀,希望能幫助到大家,謝謝大家對本站的支持!
更多PHP 極驗驗證碼實例講解相關文章請關注PHP中文網!