滑动验证码
程序员文章站
2022-05-13 15:00:26
...
我这里有一篇帖子,大家可以先看看点击打开链接,不明白的,我在以下,也有自己的心得体会,语言组织的差点,大家见谅,谢谢!
这是一个类似接口的一个东西,需要**,我配置到了配置文件中
//***********************************极验-验证码*************************************
'GEETEST_ID' => '202c5c99f2cfa8e7a6e295a61c196cf5', // id
'GEETEST_KEY' => '9a6986177bb0deecffaf9812618e3432', // key
这样就好了,我们先让他显示出来,当然我想相信很多同学,在上面的链接中,也是可以完成的,就是复制粘贴。 <div id="captcha"></div>
<!-- <div class="input" id="tip_content" style="text-align: center;width:470px;top:190px;color:red;">1111111</div>-->
<button onclick="sub_index();" type="button" class="btn btn-success btn-block">登录</button>
引入他的js
<script src="http://static.geetest.com/static/tools/gt.js"></script>
<!--极验验证码start-->
<script type="text/javascript">
var handler = function (captchaObj) {
// 将验证码加到id为captcha的元素里
captchaObj.appendTo("#captcha");
};
// 获取验证码
$.get("<!--{:U('Site/Reg/geetest_show_verify')}-->",function(data) {
// 使用initGeetest接口
// 参数1:配置参数,与创建Geetest实例时接受的参数一致
// 参数2:回调,回调的第一个参数验证码对象,之后可以使用它做appendTo之类的事件
initGeetest({
gt: data.gt,
challenge: data.challenge,
product: "float", // 产品形式
offline: !data.success
}, handler);
},'json');
</script>
然后我们生产验证码
/**
* 方法名 :geetest_show_verify
* 作 用 :生产验证码
* @param :
* @return:
* @author:libo
*/
public function geetest_show_verify(){
$geetest_id = C('GEETEST_ID');
$geetest_key=C('GEETEST_KEY');
$geetest=new \Vendor\validate\Geetest($geetest_id,$geetest_key);
$user_id = "test";
$status = $geetest->pre_process($user_id);
$_SESSION['geetest']=array(
'gtserver'=>$status,
'user_id'=>$user_id
);
echo $geetest->get_response_str();
这样基本我们就可以在页面中看到了
然后就是你平时怎么做注册登录的流程!记得认真看上面链接里面的开源代码!一下是检测验证码是否验证成功代码
/**
* 方法名 :geetest_chcek_verify
* 作 用 :检测验证码
* @param :* @param $data
* @return:
* @author:libo
*/
function geetest_chcek_verify($data){
$geetest_id = C('GEETEST_ID');
$geetest_key=C('GEETEST_KEY');
$geetest= new \Vendor\validate\Geetest($geetest_id,$geetest_key);
$user_id=$_SESSION['geetest']['user_id'];
if ($_SESSION['geetest']['gtserver']==1) {
$result=$geetest->success_validate($data['geetest_challenge'], $data['geetest_validate'], $data['geetest_seccode'], $user_id);
if ($result) {
return true;
} else{
return false;
}
}else{
if ($geetest->fail_validate($data['geetest_challenge'],$data['geetest_validate'],$data['geetest_seccode'])) {
return true;
}else{
return false;
}
}
}