Google ReCaptcha v2 плохой скрипт php - PullRequest
0 голосов
/ 08 сентября 2018

Я пытаюсь сделать Панель входа, все работает нормально без ReCaptcha. Но когда я проверяю, что я не робот, и захожу в систему, это показывает, что неверная ReCaptcha.

<?php
 require_once('includes/config.php');
if( $user->is_logged_in() ){ header('Location: index.php'); exit(); }
if(isset($_POST['submit'])){
    if (!isset($_POST['username'])) $error[] = "No username.";
    if (!isset($_POST['password'])) $error[] = "Type pass.";
    if(!$captcha){
        echo 'Check ReCaptcha';
        exit;
}
    $secretKey = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
    $ip = $_SERVER['REMOTE_ADDR'];
    $response=file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=".$secretKey."&response=".$captcha."&remoteip=".$ip);
    $responseKeys = json_decode($response,true);
if(intval($responseKeys["success"]) !== 1) {
    echo 'Check ReCaptcha';
    exit;
} else {
$username = $_POST['username'];
if ( $user->isValidUsername($username)){
        if (!isset($_POST['password'])){
            $error[] = 'Type pass';
        }
        $password = $_POST['password'];

        if($user->login($username,$password)){

            $_SESSION['username'] = $username;
            header('Location: memberpage.php');
            exit;

        } else {
            $error[] = 'Wrong pass.';
        }
    }else{
        $error[] = 'Wrong pass.';
    }
}

}

1 Ответ

0 голосов
/ 08 сентября 2018

Вы можете проверить, является ли капча пустой или нет, а проверка проверена или нет:

$secretKey = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
$captcha  = $_POST['g-recaptcha-response'];

if($captcha == null) {
    echo 'Check ReCaptcha';
    exit;
}
$response = json_decode(file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=" . $secretKey . "&response=" . $captcha . "&remoteip=" . $_SERVER['REMOTE_ADDR']), true);

if ($response['success'] != true) {
    echo 'captcha is wrong!';
    exit;
}
...