Ik heb hier (www.beypilic.nl) een contactformulier onderaan elke pagina.
De code is:
Ook dit staat als script op deze pagina:
Dit is het php script welke ik gebruik:
Het vreemde is dat dit fomulier prima heeft gewerkt met de recaptcha
Nu als je de website opent verschijnt er METEEN een popup in beeld waarbij je weer van die afbeeldingen moet selecteren. (zie screenshot)
Dit was eerst niet het geval.
Ik heb niks gewijzigd aan de website.
De code is:
Code:
<form name="form1" id="ff" method="post" action="post22.php">
<div class="clearfix">
<div class="wrap-col">
<input type="text" name="naam" id="naam" class="form-control" placeholder="Naam" required />
</div>
</div>
<div class="clearfix">
<div class="wrap-col">
<input type="text" name="email" id="email" class="form-control" placeholder="Email" required />
</div>
</div>
<div class="clearfix">
<div class="wrap-col">
<input type="text" name="telefoonnummer" id="telefoonnummer" class="form-control" placeholder="Telefoonnummer" required />
</div>
</div>
<div class="clearfix">
<div class="wrap-col">
<textarea name="bericht" id="bericht" class="form-control" rows="4" cols="25" required
placeholder="Vraag / opmerking"></textarea>
</p>
<p> </p>
<div class="g-recaptcha" data-sitekey="6LfoUuMUAAAAALclU4HQ6FGTGfAjt3w-flKK1dWN" data-badge="inline" data-size="invisible" data-callback="setResponse"></div>
<p> </p>
<p>
</div>
</div>
<input class="btn btn-primary btn-sm" type="submit" name="Submit" value="Verzend">
</form>
Ook dit staat als script op deze pagina:
Code:
<script src="https://www.google.com/recaptcha/api.js?onload=onloadCallback" async defer></script>
<script>
var onloadCallback = function() {
grecaptcha.execute();
};
function setResponse(response) {
document.getElementById('captcha-response').value = response;
}
</script>
Dit is het php script welke ik gebruik:
PHP:
<?php
// Checks if form has been submitted
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
function post_captcha($user_response) {
$fields_string = '';
$fields = array(
'secret' => '6LfoUuMUAAAAAH6uHgwi6nNf3D_Y1VTltjX1bfS5',
'response' => $user_response
);
foreach($fields as $key=>$value)
$fields_string .= $key . '=' . $value . '&';
$fields_string = rtrim($fields_string, '&');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://www.google.com/recaptcha/api/siteverify');
curl_setopt($ch, CURLOPT_POST, count($fields));
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, True);
$result = curl_exec($ch);
curl_close($ch);
return json_decode($result, true);
}
// Call the function post_captcha
$res = post_captcha($_POST['g-recaptcha-response']);
if (!$res['success']) {
// What happens when the CAPTCHA wasn't checked
echo '<p>Please go back and make sure you check the security CAPTCHA box.</p><br>';
} else {
// If CAPTCHA is successfully completed...
if (!isset($_POST['naam']) || !isset($_POST['email']) || !isset($_POST['bericht'])) {
echo 'U heeft niet alle velden ingevuld!';
exit;
}
$naam = htmlspecialchars($_POST['naam']);
$email = htmlspecialchars($_POST['email']);
$telefoonnummer = htmlspecialchars($_POST['telefoonnummer']);
$bericht = htmlspecialchars($_POST['bericht']);
$tijd = time();
$datum = strftime('%d/%m/%y %H:%M', $tijd);
$ip = getenv('REMOTE_ADDR');
$message = $naam.' met het e-mailadres '.$email.' en het IP '.$ip.' stuurde op '.$datum.' het volgende bericht:
____________________________________
naam: '.$naam.'
email: '.$email.'
telefoonnummer: '.$telefoonnummer.'
bericht: '.$bericht.'
------------------------------------';
mail('info@beypilic.nl', 'Bericht van website Beypilic', $message, 'From: '.$email);
header('location:http://beypilic.nl/bedankt.html');
}
} else { ?>
<!-- FORM GOES HERE -->
<form></form>
<?php } ?>
Het vreemde is dat dit fomulier prima heeft gewerkt met de recaptcha
Nu als je de website opent verschijnt er METEEN een popup in beeld waarbij je weer van die afbeeldingen moet selecteren. (zie screenshot)
Dit was eerst niet het geval.
Ik heb niks gewijzigd aan de website.