Captcha wird falsch ausgelesen

as333

Erfahrenes Mitglied
Ich habe mich mal an einem Captcha versucht.
Das Captcha funktioniert auch.
Die Zahlen und Buchstaben werden beim neu laden zufällig in einem Array gespeichert.
Die Werte habe ich dann in der Session Variable gespeichert und wollte mir sie auf einer anderen Seite anzeigen lassen.
Nur jetzt bekomme ich andere Werte ausgegeben wie das mit IMG-SRC eingebundene Captcha zeigt.
Öffne ich jedoch direkt die Captcha.PHP Datei stimmen die Werte aus dem Captcha mit denen in der Session Variable ausgegeben Werte überein.

Oder muss ich das Captcha vielleicht anderst einbinden?

PHP:
echo '<IMG SRC="captcha.php" WIDTH="350" HEIGHT="70" BORDER="0" ALT="" title="Sicherheitscode">';
echo"<br>";

print_r($_SESSION['captcha-wert']);
 
Hi,

die captcha.php wird ja erst aufgerufen, nachdem Dein obenstehender Schnipsel ausgeführt wurde. Der Browser läd die Resourcen, wie z.B. Bilder in weiteren eigenen HTTP-Requests. D.h. wenn im Browser das Bild mit src="captcha.php" angefordert wird, ist die Scriptinstanz auf dem Server, die den HTML-Code für das Bild (und die Ausgabe der Sessionvariablen) generiert hat, längst Geschichte. ;)

Mach doch testhalber einfach mal ein eigenes Script, das die Sessionvariablen ausgibt und ruf das auf, nachdem Du die Seite mit dem Captcha geladen hast. Dann sollte die Ausgabe stimmen.

LG
 
Wofür? Du hast doch alles. Du kannst nur nicht im gleichen Script, das erst das img-Tag für das Captcha generiert, die Werte schon ausgeben wollen. Lies meinen Post nochmal genau.

Und um zu testen, sollst Du nur die Ausgabe der Sessionvariablen da rausnehmen (weil das nunmal sinnfrei ist) und die auf eine eigene Seite packen.

LG
 
Achso ok.
Ja das geht. Dann stimmt es.
Nur jetzt ist ja das Problem das ich überpüfen muss ob der User der die Werte von dem Captcha in ein input Feld eingibt auch richtig eingegeben hat.
Wie stelle ich das denn an?
Weil ich muss ja überprüfen ob die Eingabe die ja in eine $_POST Variable gespeichert wird mit der Session Variable übereinstimmt.

Oder verstehe ich das falsch?
 
Ja klar, nur wenn ich doch in meinem Dokument wo ich das Captcha aufrufe die Eingabe mit der Session Variable vergleiche hat die Session Variable doch nen alten Wert, oder nicht?

Dann würde ich ja nie hinbekommen dass Session Variable = der Post Variablen ist.


PHP:
echo '<IMG SRC="captcha.php" WIDTH="350" HEIGHT="70" BORDER="0" ALT="" title="Sicherheitscode">';
 if($_SEESION['captcha']==$_POST['eingabe']
{
echo"Richtig";
}
else
{
echo"Falsch";
}
 
Hi,

Ja klar, nur wenn ich doch in meinem Dokument wo ich das Captcha aufrufe die Eingabe mit der Session Variable vergleiche hat die Session Variable doch nen alten Wert, oder nicht?

Sie hat den Wert des Captchas, das auf der vorherigen Seite zusammen mit dem Formular dargestellt wurde und genau den sollte der Benutzer ja eingeben. Lass Dir mal beides ausgeben.

LG
 
Zurück