Hallo,
ich hab ein ganz simples captcha gebastelt, nur versteh ich nicht warum das ganze nicht klappt.
Also das Captcha an sich baue ich in der captcha.php Datei zusammen:
Die Abfrage mache ich in einem anderem Formular captcha_test.php:
Eigentlich nichts besonderes. Trotzdem kommt im der If - Abfrage immer der else Zweig das der Code nicht identisch ist raus.
Warum nur?
Danke schon mal
ich hab ein ganz simples captcha gebastelt, nur versteh ich nicht warum das ganze nicht klappt.
Also das Captcha an sich baue ich in der captcha.php Datei zusammen:
Code:
<?php
session_start();
// Session Variable löschen
unset($_SESSION['captcha-wert']);
// alle moeglichen Zeichen ohne Problemfälle
$moegliche_zeichen
= "A B C D E F G H J K M N Q R T U V W X Y 2 3 4 5 7 8";
// erstellen eines Arrays
$kombinationen = explode(" ", $moegliche_zeichen);
// mischen des Arrays
shuffle ( $kombinationen );
// die ersten 4 Zeichen aus dem gemischten Array
$text = array_slice($kombinationen, 0, 4);
// Speicherung in SESSION-Variable für spätere Auswertung
$_SESSION['captcha-wert'] = $text;
Header ("Content-type: image/png");
// Laden der Bild - Datei
$bild = ImageCreateFromPNG ("captcha_background.png");
// Farben definieren
$farbe_w = ImageColorAllocate ($bild, 255, 255, 255);
$farbe_b = ImageColorAllocate ($bild, 0, 0, 0);
// Schriftgröße, Winkel, X-Pos., Y-Pos, Farbe, Schrift, Inhalt
ImageTTFText ($bild, 12, 0, 5, 20, $farbe_b, "/fonts/font.ttf",
$text[0]);
ImageTTFText ($bild, 12, 0, 25, 20, $farbe_b, "/fonts/font.ttf",
$text[1]);
ImageTTFText ($bild, 12, 0, 45, 20, $farbe_b, "/fonts/font.ttf",
$text[2]);
ImageTTFText ($bild, 12, 0, 65, 20, $farbe_b, "/fonts/font.ttf",
$text[3]);
// Ausgabe im Format PNG
ImagePng ($bild);
// Ressourcen wieder freigeben
ImageDestroy ($bild);
?>
Die Abfrage mache ich in einem anderem Formular captcha_test.php:
Code:
<?php session_start();?>
<form name="Formular" action="<?php echo $_SERVER['PHP_SELF']; ?>"
method="POST" >
Captcha:
<br />
<br />
<img src="captcha/captcha.php">
<br />
<br />
Eingabe:
<br />
<input type="text" name="name" value="" size="41" maxlength="100" />
<br />
<br />
<input type="Submit" name ="send" value="Captcha vergleich" /></center>
</form>
<?php
// Abfrage ob Captcha - Wert gleich
if(isset($_POST["send"])) {
if ($_POST['name'] == $_SESSION['captcha-wert'])
{
echo "Captcha Wert richtig";
}
else
{
echo "Falscher Captcha Wert";
}
}
?>
Eigentlich nichts besonderes. Trotzdem kommt im der If - Abfrage immer der else Zweig das der Code nicht identisch ist raus.
Warum nur?
Danke schon mal