Google recaptcha mindig null

Google recaptcha mindig null
2020-03-20T18:42:43+01:00
2020-03-21T14:26:35+01:00
2022-10-15T21:26:27+02:00
X_ecutor
Sziasztok!

Van egy kis gondom a google féle g recaptcha-val. A poén az, hogy ezt már egy másik oldalon beállítottam, tökéletesen működik. Tehát a másik oldalon lévő kódot lemásoltam, egy az egyben, csak kicseréltem a kulcsokat benne értelem szerűen, és ott megy, itt az új oldalon nem. A tárhely és domain szolgáltató is ugyan az, halovány foggalmam sincsen, hogy miért nem működik amikor copy-paste-eltem a kódot .... Ahogyan az a beillesztett kódban is látszik, próbáltam megnézni a var_dump($recaptcha->score); -al hogy egyáltalán milyen értéket ad vissza, és ez minden esetben NULL...mitől lehet ez? Egyszerűen nincs ötletem....próbáltam rákeresni, ilyet még csak nem is találtam sehol, hogy NULL értéket ad vissza... Maga a recaptcha ikon nem jelez hibát, látszóleg minden rendben...

<script src="https://www.google.com/recaptcha/api.js?render=**********"></script>
<script>
grecaptcha.ready(function() {
grecaptcha.execute('*********', {action: 'contact'}).then(function(token) {
var recaptchaResponse = document.getElementById('recaptchaResponse');
recaptchaResponse.value = token;
});
});
</script>

<div class="auto-height mb-5">
<h1 class="h3 my-4 font-weight-normal text-dark text-center"><?$title->getMenu(basename(__FILE__))?></h1>

<div class="row">
<div class="col-8 mx-auto">
<form method="post" role="form">
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label for="form_name">Tárgy: *</label>
<select name="subject" class="form-control" required="required">
<option value="Regisztráció">1</option>
<option value="Ötlet">2</option>
<option value="Hibabejelentés">3</option>
</select>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label for="form_email">E-mail: *</label>
<input type="email" name="email" class="form-control" required="required">
</div>
</div>
</div>
<div class="row">
<div class="col-md-12">
<div class="form-group">
<label for="form_message">Üzenet: *</label>
<textarea name="message" class="form-control" rows="4" required></textarea>
<input type="hidden" name="recaptcha_response" id="recaptchaResponse">
</div>
</div>
</div>

<div class="row">
<div class="col-md-12">
<div class="form-group">
<div class="form-check">
<input type="checkbox" class="form-check-input" required>
<label class="form-check-label" for="exampleCheck1">Elfogadom az <a href="/tools/img/aszf.pdf" target="_blank">Általános Szerződési Feltételek</a>-ben foglaltakat.</label>
</div>
<div class="form-check">
<input type="checkbox" class="form-check-input" required>
<label class="form-check-label" for="exampleCheck1">Elfogadom az <a href="/tools/img/adatvedelmi_es_adatkezelesi_szabalyzat.pdf" target="_blank">Adatvédelmi és Adatkezelési Szabályzat</a>-ban foglaltakat.</label>
</div>
</div>
</div>
<div class="col text-center">
<button type="submit" class="btn btn-success">Üzenet Küldése</button>
</div>
</div>
</form>


<?php // Check if form was submitted:
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['recaptcha_response'])) {
// Build POST request:
$recaptcha_url = 'https://www.google.com/recaptcha/api/siteverify';
$recaptcha_secret = '*******';
$recaptcha_response = $_POST['recaptcha_response'];

// Make and decode POST request:
$recaptcha = file_get_contents($recaptcha_url . '?secret=' . $recaptcha_secret . '&response=' . $recaptcha_response);
$recaptcha = json_decode($recaptcha);

// Take action based on the score returned:
if ($recaptcha->score >= 0.5)
{
$user = new USER();
$subject = $_POST['subject'];
$email = $_POST['email'];
$message = $_POST['message'];
//$user->send_mail($email, $subject, $message);

echo '<script>
$.notify({message:"Üzenet Küldése: SIKERES!"},{type:"success",placement:{align:"center"}});
$.notify({message:"Hamarosan válaszolunk."},{type:"success",placement:{align:"center"}});
</script>';
}
else
{
var_dump($recaptcha->score);
echo '<script>
$.notify({message:"Üzenet Küldése: SIKERTELEN!"},{type:"danger",placement:{align:"center"}});
$.notify({message:"Kérjük próbáld meg újból!"},{type:"danger",placement:{align:"center"}});
</script>';
}
Mutasd a teljes hozzászólást!
allow_url_fopen ki van kapcsolva a php configban. Ha nem tudod engedélyezni (php.ini / vagy valami config a hosting oldalon) akkor megpróbálhatod mondjuk cURL-lal (ha van).
Mutasd a teljes hozzászólást!

Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd