recaptcha working on local but not on live wordpress sites

Hi I have a form I've made that works on my local machine but doesn't run the get_file_contents on the live server as it returns NULL on the response?

Form:

 form name="contactUS" action="?php echo get_template_directory_uri(); ?/mail/contact-us-mail-recaptcha.php" method="post"

input name="name" type="text" placeholder="Name"
input name="email" type="email" placeholder="Email"
input name="message" type="textarea" placeholder="Please describe your project and the work to be done?"
div class="g-recaptcha" data-sitekey="site key"/div
button type="submit" class="nsc-button"Submit/button
/form

Server Code:

?php

$recaptcha_secret = 'secret key';
$ip = $_SERVER['REMOTE_ADDR'];
$captchaResponse = $_POST['g-recaptcha-response'];

$response = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=".$recaptcha_secret."response=".$captchaResponse); 

$result = json_decode($response, true);

if($result == true){

//do success
}else {

    var_dump('ip:' . $ip);
    var_dump('captchaResponse:' . $captchaResponse);
    var_dump('response:' . $response);
    var_dump('result:' . $result);
    exit;

}

Topic captcha forms Wordpress

Category Web


Tip A URL can be used as a filename with this function if the fopen wrappers have been enabled. See fopen() for more details on how to specify the filename. See the Supported Protocols and Wrappers for links to information about what abilities the various wrappers have, notes on their usage, and information on any predefined variables they may provide.

So most probably allow_url_fopen is set to false on your server.

But you shouldn’t use that function - use wp_remote_get instead.

About

Geeks Mental is a community that publishes articles and tutorials about Web, Android, Data Science, new techniques and Linux security.