您现在的位置是:首页 > 前端 > 后端 > WEB基础 WEB基础
谷歌验证码reCAPTCHA接口在网页中的使用
2020-08-20【WEB基础】2626人已围观
简介### reCAPTCHA v2 > https://www.google.com/recaptcha/admin/site/431807236/setup ``` cs.apidata.vip // 在您的网站提供给用户的 HTML 代码中使用此网站密钥 6LcE27wZAAAAAF4ggKUdK7OiKfTxhVsSWDZWqQYa // 此密钥用于您的网站和 reCAPTCHA 之间的通信 6LcE27wZAAAAAC3ECu5DsoXMcnu5nV53juIhSrPV ``
reCAPTCHA v2
cs.apidata.vip
// 在您的网站提供给用户的 HTML 代码中使用此网站密钥
6LcE27wZAAAAAF4ggKUdK7OiKfTxhVsSWDZWqQYa
// 此密钥用于您的网站和 reCAPTCHA 之间的通信
6LcE27wZAAAAAC3ECu5DsoXMcnu5nV53juIhSrPV
HTML
<!-- 第一步引入 js -->
<script src="https://www.google.com/recaptcha/api.js" async defer></script>
<!-- 加入代码 填写html密钥 -->
<div class="g-recaptcha" data-sitekey="6LcE27wZAAAAAF4ggKUdK7OiKfTxhVsSWDZWqQYa"></div>
PHP
<?php
$secretKey = "6LcE27wZAAAAAC3ECu5DsoXMcnu5nV53juIhSrPV";
$code = $_REQUEST['g-recaptcha-response'];
if($code == ""){
_json(0,"Please click Google to verify");
}
$code_re = http_request("https://www.google.com/recaptcha/api/siteverify",["secret"=>$secretKey,"response"=>$code]);
if($code['success'] === false){
_json(0,"Google verify ".json_encode($code_re['error-codes']));
}
reCAPTCHA v3
6LeyJ8EZAAAAAOBIjx7Ql6cqC_VllMVJpYRLNFth
6LeyJ8EZAAAAADL2hn-NOD7NxMJcSfN4irzDG025
HTML
<button class="g-recaptcha"
data-sitekey="reCAPTCHA_site_key"
data-callback='onSubmit'
data-action='submit'>Submit</button>
PHP 同v2
使用到的函数
/**
* 输出json
* @param int $status
* @param string $msg
* @param array $data
*/
function _json($status=1, $msg="ok", $data=[], $option=[])
{
header("Content-type:application/json;charset=utf-8");
$re = ["code"=>(int)$status,"msg"=>(string)$msg,"data"=>$data];
$re = array_merge($re, $option);
echo json_encode($re,256);
exit;
}
/**
* http请求
* @param $url
* @param string $data
* @param bool $pem
* @return mixed|string
*/
function http_request($url,$data='',$pem=false){
$ch= curl_init();
curl_setopt($ch, CURLOPT_URL, $url );
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //设置内容是不是返回
if(!empty($data)){
curl_setopt($ch, CURLOPT_POST, 1); //设置post提交数据
curl_setopt($ch,CURLOPT_POSTFIELDS,$data); //设置post提交数据
}
//携带证书
if(!empty($pem)){
curl_setopt($ch,CURLOPT_SSLCERT,CERT_PATH); //设置post提交数据
curl_setopt($ch,CURLOPT_SSLKEY,KEY_PATH);
curl_setopt($ch,CURLOPT_CAINFO,KEY_PATH);
}
//判断当前是不是有post数据的发
$output=curl_exec($ch);
if ($output === FALSE) {
$output="curl 错误信息: " . curl_error($ch);
}
curl_close($ch);
return $output;
}
关注博客,更多精彩分享,敬请期待!
Tags:
很赞哦! (0)
随机图文
css动画
> 在CSS动画中,如果你想让元素的 border-radius 从50%逐渐变为0%,你可以使用 @keyframes 规则来定义这一变化过程。以下是一个简单的示例: ```css /* 定义一个动画 */ @keyframes borderRadiusChange { 0% { border-radius: 50%; } 100% { border-radius: 0; } } /* 将动画应用到某个元素上 */ .someElementbat锁屏和熄屏 windows
bat锁屏和熄屏 windowsPHP中判断字符串是否含有中文
## 判断全是中文 > 方法一 ``` $str = '吾爱编程'; if (preg_match_all("/^([\x81-\xfe][\x40-\xfe])+$/", $str, $match)) { echo '全部是中文'; } else { echo '不全是中文'; } ``` > 方法二 ``` $str="'吾爱it编程"; if(!eregi("[^\x80-\xff]","$str")){ echo "全是中文";PHP日历
PHP日历小案例