Search code examples
recaptcha

reCaptcha V2 is now timing out during valication


I have been using reCaptcha V2 for awhile now and all of a sudden the validation is timing out on the file_get_contents line.

I can copy the URL from the error and paste it into a new window and the JSON object comes back immediately.

$url = 'https://www.google.com/recaptcha/api/siteverify?secret='. urlencode($secret) .'&response='. urlencode($captcha);
$response = file_get_contents($url);
$responseKeys = json_decode($response,true);

Solution

  • I fixed this timeout problem with the File_get_contents by changing to using $curl instead.

    Like this:

    $url = 'https://www.google.com/recaptcha/api/siteverify?secret=' . urlencode($secret) .  '&response=' . urlencode($captcha);
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $response = curl_exec($ch);
    curl_close($ch);
    // file get contents not used any more
    //$response = file_get_contents($url,0,stream_context_create(["http"=>["timeout"=>120]]) );
    $responseKeys = json_decode($response,true);
    // should return JSON with success as true