file_get_content без возврата - PullRequest
0 голосов
/ 21 декабря 2018

Я пытаюсь реализовать reCAPTCHA на моем веб-сайте, кажется, все работает нормально, кроме возврата из file_get_contents ().

Вот мой код:

if ($_REQUEST["send"] == 1){

    // access
    $secretKey = 'my_key';
    $captcha = $_POST['g-recaptcha-response'];
    $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);

    echo ($responseKeys);exit;

    if(intval($responseKeys["success"]) !== 1) {
        $message = 'Invalid reCAPTCHA';
    } else {

        $msg = 'content';

        send_mail('send_to',"Subject",$msg);
        header("location:index.php?send=1");exit;

    }

} 

Мой ответ переменнойвозвращается пустым.

Я пытался открыть https://www.google.com/recaptcha/api/siteverify?, вставляя вручную переменные, и, кажется, работает нормально.

Я что-то забываю?

Спасибо

Ответы [ 2 ]

0 голосов
/ 21 декабря 2018

Мои оболочки были отключены, причина, по которой я не смог достучаться до URL и получить возврат.

Поскольку у меня нет доступа к php.ini, для обхода проблемы был отправлен запрос с помощью curl, воткод:

    $url = "https://www.google.com/recaptcha/api/siteverify?secret=".$secretKey."&response=".$captcha."&remoteip=".$ip;
    $ch = curl_init();
    curl_setopt ($ch, CURLOPT_URL, $url);
    curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 5);
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);
    $response = curl_exec($ch);
    if (curl_errno($ch)) {
        echo curl_error($ch);
        echo "\n<br />";
        $response = '';
    } else {
        curl_close($ch);
    }

    if (!is_string($response) || !strlen($response)) {
        echo "Failed to get contents.";
        $contents = '';
    }

    $responseKeys = json_decode($response,true);
0 голосов
/ 21 декабря 2018

Их API ожидает POST-запроса.Ваш код отправляет запрос GET.

Смотрите ответ здесь Как разместить данные в PHP с помощью file_get_contents?

...