Ik ben bezig met een Wordpress website, het thema schrijf ik zelf met het Timber starter theme. Aan de hand daarvan heb je php bestanden die de data ophalen uit het cms, en een pagina renderen in .twig formaat.
Ik heb een simpele contact pagina met een formuliertje, email, naam en vraag. Je kent het wel. Omdat dit geen te geadvanceerde website is met php classes etc, gebruik ik ook niet echt een validatie class ofzo, Omdat het om 3/4 velden gaat heb ik gewoon een simpel scriptje die de velden controleert, of het email wel een geldig email is etc.
Maar ik vraag me af, is er een alternatief voor Google Recaptcha, wat ik gewoon heel makkelijk in een simpele php validatie kan toevoegen? Zonder api gezeur etc?
Wat je zou kunnen doen is een honeypot-veld aanmaken. Eentje die je via JavaScript onzichtbaar/inactief maakt. Wanneer dit veld wordt ingevuld dan heb je waarschijnlijk met een bot te maken.
Wat je zou kunnen doen is een honeypot-veld aanmaken. Eentje die je via JavaScript onzichtbaar/inactief maakt. Wanneer dit veld wordt ingevuld dan heb je waarschijnlijk met een bot te maken.
Dan moet er alleen nog controle, of een onzichtbaar veld word ingevuld.
Naja ik vind google recaptcha een beetje lastig te begrijpen haha. Moet ik daarmee nou Javascript, PHP of allebei gebruiken om het te laten werken?
Google ReCaptcha is gebouwd in JavaScript en doet een controle van de bezoeker op hun server, en stuurt dan een resultaat terug. Deze gebruik je met PHP om dit in je formulier af te handelen.
Je moet als ik het goed begrijp een js script inladen, dan met een google js functie de captcha inladen op een form element/div, en dan dit soort php code toch?
<?php
$email;$comment;$captcha;
if(isset($_POST['email'])){
$email=$_POST['email'];
}
if(isset($_POST['comment'])){
$comment=$_POST['comment'];
}
if(isset($_POST['g-recaptcha-response'])){
$captcha=$_POST['g-recaptcha-response'];
}
if(!$captcha){
echo '<h2>Please check the the captcha form.</h2>';
exit;
}
$secretKey = "Put your secret key here";
$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 '<h2>Thanks for posting comment</h2>';
} else {
echo '<h2>You are spammer ! Get the @$%K out</h2>';
}
?>
Had die code even snel online gevonden, maar zo kan ik het makkelijk combineren met mijn eigen validatie.
Is Recaptcha nog steeds gratis, had begrepen dat google maps tegenwoordig geld kost na een bepaalde tijd met een google billing account ofzo?
Ook Google Maps is vrij te gebruiken, hoor. Maar vanaf een bepaald aantal hits moet je een billing account aanmaken, en dan duurt het nog even voordat je echt die credits moet betalen. Die limieten liggen erg ruim.
ReCaptcha 3 werkt met een treshold, en die geeft een waarde of een bezoeker betrouwbaar is, of juist niet. Ook werkt deze onzichtbaar.
wat denk je zelf? er wordt betaald met data. daarnaast worden (ingelogde) gebruikers van google chrome voorgetrokken tov gebruikers van firefox en safari