Google ReCaptcha

Status
Niet open voor verdere reacties.

Munnikenhof

Nieuwe gebruiker
Lid geworden
17 apr 2015
Berichten
4
Goedenavond,

Momenteel probeer ik Google ReCaptcha op mijn website toe te voegen.
Alleen ik ervaar hier verschillende problemen in.

Op de website lijkt alles te werken, alleen weet ik niet hoe ik ervoor moet zorgen dat dit wordt herkent in mijn POST/ ACTION formulier.

Alvast bedankt !
 
Goedenavond en welkom op Helpmij.nl

Aangezien je de ReCaptcha al op je website hebt ga ik er vanuit dat de bestanden op de server staan,
hier staat als het goed is een bestand met de bestandsnaam "recaptchalib.php". In dit bestand staan functies
die je moet gebruiken om de input te controleren.

Vervolgens kun je met php op de volgende manier controleren of de input correct is;

PHP:
$antispam = recaptcha_check_answer ($privatekey,
    $_SERVER["REMOTE_ADDR"],
    $_POST["recaptcha_challenge_field"],
    $_POST["recaptcha_response_field"]);

if (!$antispam->is_valid)
    print "ReCaptcha was onjuist!";
else
    print "ReCaptcha was juist!";

Zorg ervoor dat de $privatekey variabelen wordt voorzien van de code die je ontvangen hebt bij het aanmelden van de recaptcha.

Succes!
Groeten Remco
 
Goedemorgen,

Ik heb dit inderdaad al meerdere keren opgezocht.
Alleen in de officiele documentatie van Google kan ik dit niet vinden.

Ook is het voor mij niet mogelijk ergens een degelijke uitleg te vinden.
Vandaar mijn poging hier.

Kan de Server-side is duidelijker worden uitgelegd?
 
Goedenavond,

Ik heb mijn vraag al eens op dit forum gepost, maar heb me bedacht dit in de verkeerde rubriek te plaatsen.
Omdat ik sinds kort veel spam binnenkrijg wil ik graag Google's ReCapatcha op mijn website.

Na flink wat zoeken in de documentaties van Google ben ik er nog niet uitgekomen.
Het systeem waarnaar ik op zoek ben is simpel.

Je bewijst dat je geen robot bent, en het formulier verzend.
Nu is dit de code die ik al heb voor het verzenden.

PHP:
<?php  
if (!isset($_POST['name']) || !isset($_POST['email']) || !isset($_POST['message'])) {  
    echo 'U heeft niet alle velden ingevuld!';  
    exit;  
}  
  
$name = htmlspecialchars($_POST['name']);  
$last_name = htmlspecialchars($_POST['last_name']); 
$email = htmlspecialchars($_POST['email']); 
$phone = htmlspecialchars($_POST['phone']);  
$bericht = htmlspecialchars($_POST['message']);  
  
$tijd = time();  
$datum = strftime('%d/%m/%y %H:%M', $tijd);  
$ip = getenv('REMOTE_ADDR');  
$message = ' U heeft een bericht ontvangen op '.$datum.','.$time.' van '.$name.' '.$last_name.'

'.$bericht.'

U kunt reageren via '.$email.' of '.$phone;
  
mail('[U]MIJN EMAIL[/U]', 'Vraag/ reservering via de website', $message, 'From: '.$email);  
  
echo 'Uw bericht is verzonden. U krijgt zo snel mogelijk antwoord.';  
?>

Bestaat er een simpele manier om dit voor elkaar te krijgen?

Met vriendelijke groeten,
Koen
 
Beste Koen,

Het is niet nodig om je vraag opnieuw te stellen wanneer deze in de verkeerde sectie staat. Ik heb nu je vragen samengevoegd en verplaatst naar de PHP-sectie.

Mocht je in de toekomst weer een vraag in de verkeerde sectie stellen dan kun je een verzoek tot verplaatsing doen via de link "Attendeer moderator" die bij elk bericht in de vraag staat.

Met vriendelijke groet,

Stefan (Tha Devil)
Moderator Helpmij.nl
 
Hallo,

Sorry voor mijn verlate reactie,

Wat de bedoeling is dat je de functies file van recaptcha include in je php bestand (de pagina's waar je de controle wilt doen, en waar je de recaptcha wilt weergeven)
Ook moet je de private key en de public key die je tijdens de registratie hebt gekregen van google aan een variabele koppelen;

PHP:
include("recaptcha-php-X.XX/recaptchalib.php");
$publickey 	= 'xxxxxxxxxx';
$privatekey = 'xxxxxxxxxxx';
Het pad van de include even wijzigen naar waar de bestanden staan uiteraard.

Vervolgens kent php de functies van de recaptcha class.

Om de recaptcha zelf weer te geven gebruik je de class "recaptcha_get_html()"
bijvoorbeeld als volgt;

PHP:
print 'Voer de code hier naast in: ' . recaptcha_get_html($publickey);
Na deze code verschijnt de recaptcha textbox met afbeelding volledig automatisch.

Vervolgens controleren we de waarde in php
Zoals ik al eerder aangaf moet je het ingevulde antwoord wel controleren met een andere recaptcha functie namelijk de functie "recaptcha_check_answer()"
dit kan als volgt;

PHP:
$antispam = recaptcha_check_answer ($privatekey, $_SERVER["REMOTE_ADDR"], 	$_POST["recaptcha_challenge_field"], $_POST["recaptcha_response_field"]);
if ($antispam->is_valid) {
    // De code was JUIST
    // Voer deze code uit.
} 
else {
    // De code was ONJUIST
    // Voer deze code uit.
}

Meer dan dit is het eigenlijk niet.
wat belangrijk is (waarvan ik op dit moment niet weet wat of dit bij jou wel werkt) is dat de library file van recaptcha wel geinclude is, en of je de functies dus wel kunt gebruiken zoals ik hier boven beschrijf.

PS ik zie in je code dat je
getenv("REMOTE_ADDR"); gebruikt, $_SERVER['REMOTE_ADDR'] is in principe hetzelfde zoals ik in mijn voorbeeld gebruik.

Succes, mocht het nog niet lukken dat roep maar!
Groeten Remco
 
Is het toevallig al gelukt?

Groeten Remco
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan