Door
Jasper DS
op 27-02-2011 17:14
gewijzigd op 27-02-2011 17:22
2.018 views
Beste lezers,
ik heb een captcha op mijn site maar de tekens van de captcha in mijn sessie zijn anders dan die op mijn plaatje. Hoe komt dat? Ligt dat aan de structuur van mijn code?
De code die ik gebruik om te controleren:
<?php
# check captcha
if($_SESSION['captcha'] != $_POST['captcha'])
{
$error[] = 'De captcha is niet correct ingevuld.';
}
?>
online voorbeeld -> in het plaatje de captcha, rechts naast het input vakje de session.
Misschien klopt het niet wat ik nu zeg, maar het is al laat...
Volgens mij is dit wat er gebeurt:
1) er wordt door het script een captcha code aangemaakt (die noemen we even "code A")
2) er wordt een plaatje gegenereerd dat onderaan het formulier wordt getoond
3) de gebruiker vult de code in in het invoerveld en drukt op de verzendknop
4) DE PAGINA WORDT OPNIEUW AANGEROEPEN en de post waardes worden meegestuurd
5) er wordt nu opnieuw een captcha code aangemaakt (die noemen we even "code B")
6) de door de gebruiker ingevoerde captcha code wordt vergeleken met de zojuist aangemaakte "code B"
Je vergelijkt dus de door de gebruiker ingevoerde code met een zojuist nieuw gegenereerde code. Ik denk dat je dit simpelweg kunt voorkomen door een if-statement te bouwen om de php-code die de captcha code genereert, dus zoiets: