重新验证码无法正常工作
Re captcha not working properly
请帮助我使用这个 recaptcha v2。
我不知道出了什么问题,但这是我的代码
if (isset($_POST['submit']))
{
if(isset($_POST['g-recaptcha-response'])){
//your site secret key
$secret = 'secrete key';
//get verify response data
$verifyResponse = file_get_contents('https://www.google.com/recaptcha/api/siteverify?secret='.$secret.'&response='.$_POST['g-recaptcha-response']);
$responseData = json_decode($verifyResponse);
if($responseData->success){
//code here
}
else{
echo "<script>alert('Please click reCAPTCHA');</script>";
}
}
我在本地主机上使用这段代码我没有任何问题。我已经在 google recaptcha 中输入了我的域,我认为唯一的问题是代码。
从
更新使用file_get_cotents()
发出的请求
$verifyResponse = file_get_contents('https://www.google.com/recaptcha/api/siteverify?secret='.$secret.'&response='.$_POST['g-recaptcha-response']);
$responseData = json_decode($verifyResponse);
到curl
$url = 'https://www.google.com/recaptcha/api/siteverify?secret='.$secret.'&response='.$_POST['g-recaptcha-response'];
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl, CURLOPT_TIMEOUT, 15);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, TRUE);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, TRUE);
$curlData = curl_exec($curl);
curl_close($curl);
$responseData = json_decode($curlData, TRUE);
试试这个代码:
if(isset($_POST['submit']) && !empty($_POST['submit'])) {
if(isset($_POST['g-recaptcha-response']) && !empty($_POST['g-recaptcha-response'])) {
$secret = 'KEY';
$url = 'https://www.google.com/recaptcha/api/siteverify?secret='.$secret.'&response='.$_POST['g-recaptcha-response'];
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl, CURLOPT_TIMEOUT, 15);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, TRUE);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, TRUE);
$curlData = curl_exec($curl);
curl_close($curl);
$responseData = json_decode($curlData, TRUE);
if($responseData['success'] == 'true') {
// Success code here
}
else
{
echo "<script>alert('Invalid reCAPTCHA');</script>";
}
}
}
请帮助我使用这个 recaptcha v2。 我不知道出了什么问题,但这是我的代码
if (isset($_POST['submit']))
{
if(isset($_POST['g-recaptcha-response'])){
//your site secret key
$secret = 'secrete key';
//get verify response data
$verifyResponse = file_get_contents('https://www.google.com/recaptcha/api/siteverify?secret='.$secret.'&response='.$_POST['g-recaptcha-response']);
$responseData = json_decode($verifyResponse);
if($responseData->success){
//code here
}
else{
echo "<script>alert('Please click reCAPTCHA');</script>";
}
}
我在本地主机上使用这段代码我没有任何问题。我已经在 google recaptcha 中输入了我的域,我认为唯一的问题是代码。
从
更新使用file_get_cotents()
发出的请求
$verifyResponse = file_get_contents('https://www.google.com/recaptcha/api/siteverify?secret='.$secret.'&response='.$_POST['g-recaptcha-response']);
$responseData = json_decode($verifyResponse);
到curl
$url = 'https://www.google.com/recaptcha/api/siteverify?secret='.$secret.'&response='.$_POST['g-recaptcha-response'];
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl, CURLOPT_TIMEOUT, 15);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, TRUE);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, TRUE);
$curlData = curl_exec($curl);
curl_close($curl);
$responseData = json_decode($curlData, TRUE);
试试这个代码:
if(isset($_POST['submit']) && !empty($_POST['submit'])) {
if(isset($_POST['g-recaptcha-response']) && !empty($_POST['g-recaptcha-response'])) {
$secret = 'KEY';
$url = 'https://www.google.com/recaptcha/api/siteverify?secret='.$secret.'&response='.$_POST['g-recaptcha-response'];
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl, CURLOPT_TIMEOUT, 15);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, TRUE);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, TRUE);
$curlData = curl_exec($curl);
curl_close($curl);
$responseData = json_decode($curlData, TRUE);
if($responseData['success'] == 'true') {
// Success code here
}
else
{
echo "<script>alert('Invalid reCAPTCHA');</script>";
}
}
}