Как получить Recaptcha для отправки через php форму? - PullRequest
0 голосов
/ 30 марта 2020

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

Я создаю простую PHP форму входа для работы, ничего лишнего. См. Ниже:

<form action="authenticate.php" method="post">
<div class="form-group mb-2">
    <label class="bg-blue p-2 " for="username"><i class="fas fa-user grey"></i></label>
    <input class="form-control" type="text" name="username" placeholder="Username" id="username" required>
</div>
<div class="form-group mb-2">
    <label class="bg-blue p-2" for="password"><i class="fas fa-lock grey"></i></label>
    <input class="form-control" type="password" name="password" placeholder="Password" id="password" required>
</div>
<div class="form-group mb-2">
    <div class="g-recaptcha" data-sitekey="<?php echo($sitekey);?>"></div>
</div>
<div class="form-group mb-2">
    <button type="submit" class="btn btn-nlec-login mb-2">Login</button>
    <button type="reset" class="btn btn-nlec-reset mb-2">Reset</button>
</div>
</form>

Вот моя страница действий:

<?php
 if(isset($_POST['g-recaptcha-response'])){
      $captcha=$_POST['g-recaptcha-response'];
    }
    if(!$captcha){
      echo '<h2>Please check the the captcha form.</h2>';
      exit;
    }
    $secretKey = $secret;
    $ip = $_SERVER['REMOTE_ADDR'];
    // post request to server
    $url = 'https://www.google.com/recaptcha/api/siteverify?secret=' . urlencode($secretKey) .  '&response=' . urlencode($captcha);

    $response = file_get_contents($url);
    $responseKeys = json_decode($response,true);
    // should return JSON with success as true

    if($responseKeys["success"]) {
       echo 'GTG!';
    } else {
            echo '<h2>GO AWAY BOT!</h2>';
    }
?>

Все отлично работает на моем локальном хосте, но как только я изменяю ключ сайта на мой сайт вместо хоста localhost и публикуя sh файлы, я получаю эхо 'GO AWAY BOT' каждый раз.

Не уверен, что я делаю неправильно, но подумал, что я попрошу здесь.

спасибо за любая помощь!

...