$_SESSION['captcha_spam'] ungültig :(

Hier werden Probleme rund um das Zahlen Captcha behandelt

Moderator: frameguard

$_SESSION['captcha_spam'] ungültig :(

Beitragvon muzekater » 08.01.2007, 16:56

Hallo :)
Super Tutorial - aber leider funktionierts bei mir auch nicht...

Problem:
Die Session Variabel wird nur registriert, wenn ich die "image.php" (Captcha) aufrufe...

hier mein Code:

-->image.php
//hier wird das Captchabild erzeugt


<?php
session_start();
unset($_SESSION['captcha']);
$text = rand(1000,10000); //Zufallszahl

function encrypt($string, $key) {
$result = '';
for($i=0; $i<strlen($string); $i++) {
$char = substr($string, $i, 1);
$keychar = substr($key, ($i % strlen($key))-1, 1);
$char = chr(ord($char)+ord($keychar));
$result.=$char;
}
return base64_encode($result);
}

$_SESSION['captcha'] = encrypt($text, "8h384ls94"); //Key
$_SESSION['captcha'] = str_replace("=", "", $_SESSION['captcha']);


header('Content-type: image/png');
$img = ImageCreateFromPNG('image.png'); //Backgroundimage
$color = ImageColorAllocate($img, 0, 0, 0); //Farbe
$ttf = $_SERVER['Document_Root']."/arial.ttf"; //Schriftart
$ttfsize = 25; //Schriftgrösse
$angle = rand(0,5);
$t_x = rand(5,50);
$t_y = 35;
imagettftext($img, $ttfsize, $angle, $t_x, $t_y, $color, $ttf, $text);
imagepng($img);
imagedestroy($img);
?>




--> test.php
//hier wird das Captcha eingebunden und in das textfield eingegeben


<form action="check.php" method="GET" enctype="text/plain">
<img src="image.php" />
<input type="text" name="code" />
</form>



-->check.php
//hier wird das Captcha mit der Eingabe geprüft

<?php
session_start();
function encrypt($string, $key) {
$result = '';
for($i=0; $i<strlen($string); $i++) {
$char = substr($string, $i, 1);
$keychar = substr($key, ($i % strlen($key))-1, 1);
$char = chr(ord($char)+ord($keychar));
$result.=$char;
}
return base64_encode($result);
}
$eingabe = encrypt($_REQUEST["code"], "8h384ls94");
$eingabe = str_replace("=", "", $eingabe);

echo "Eingabe: ".$eingabe."<br>";
echo "Catcha: ".$_SESSION['captcha']."<br>";

if($eingabe == $_SESSION['captcha']){
unset($_SESSION['captcha']);
echo "richtig!";
}
else {
echo "falsch!";
}

?>


danke für eure Hilfe, Michael :!:
Zuletzt geändert von muzekater am 01.02.2007, 16:57, insgesamt 1-mal geändert.
muzekater
 

Beitragvon muzekater » 08.01.2007, 16:57

acha
echo "Eingabe: ".$eingabe."<br>";
echo "Catcha: ".$_SESSION['captcha']."<br>";


hab ich gemacht, damit ich sehe ob die Var leer ist oder nicht...

lg[/quote]
muzekater
 

Beitragvon Rob [Admin] » 08.01.2007, 19:21

Evt. wird bei dir was im Cache (des Browsers) zwischengespeichert.

Bei mir funktioniert alles, also das Bild kommt (ist ja nicht das Problem), ich kann entweder eine falsche oder richtige Angabe machen, werde weitergeleitet und sehe beide Angaben, wenn korrekt, wird das auch als richtig angezeigt.

Sehe also konkret das Problem nicht.
Rob [Admin]
Site Admin
 
Beiträge: 143
Registriert: 23.12.2006, 12:27

Beitragvon muzekater » 09.01.2007, 13:03

mhm...komisch :(

habs grad auf dem Firmenpc (IExplorer) getestet und da funktioniert!
Bei meinem privatem, mit Mozilla wie auch IExplorer nicht :( was kann das sein??? :)

danke für den support!
lg Michael
muzekater
 

Beitragvon muzekater » 09.01.2007, 13:14

so hat sich schon erledigt!
ich hab die aktuelle session_id() noch ans bild rangehängt!
<img src="image.php?PHPSESSID=<?php echo session_id(); ?>"/>
und jetzt funktionierts ohne probleme :)

lg und danke für den SUPPORT!
Michael
muzekater
 


Zurück zu Zahlen Captcha

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste

cron