Hallo Leute!
Ich brauch mal wieder eure Hilfe. Dieses mal geht es um ein Captcha...
image.php --> hier wird das Captcha erzeugt und die Session Variable erzeugt
Die image.php wird dann in das Formular eingebunden
test.php
und via Enter wird man auf die check.php weitergeleitet:
So, ich hab jetzt das Problem mit der Session!
Wenn die test.php aufgerufen wird (wo eigentlich durch die image.php eine Session Variabel erzeugt werden sollte) passiert das genau NICHT - erst wenn ich die image.php separat aufrufe und dann die Zahlenkombi eingeb funktionierts auch ... WARUM?
Danke ... ihr seid Spitze!
lg Michael
Ich brauch mal wieder eure Hilfe. Dieses mal geht es um ein Captcha...
image.php --> hier wird das Captcha erzeugt und die Session Variable erzeugt
PHP:
<?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']."/arialf"; //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
PHP:
<form action="check.php" method="GET" enctype="text/plain">
<img src="image.php" />
<input type="text" name="code" />
</form>
PHP:
<?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);
//nur für mich relevant damit ich sehe ob die Variablen leer sind oder nicht...
echo "Eingabe: ".$eingabe."<br>";
echo "Catcha: ".$_SESSION['captcha']."<br>";
if($eingabe == $_SESSION['captcha']){
unset($_SESSION['captcha']);
echo "richtig!";
}
else {
echo "falsch!";
}
?>
Wenn die test.php aufgerufen wird (wo eigentlich durch die image.php eine Session Variabel erzeugt werden sollte) passiert das genau NICHT - erst wenn ich die image.php separat aufrufe und dann die Zahlenkombi eingeb funktionierts auch ... WARUM?
Danke ... ihr seid Spitze!
lg Michael