Verifizierungscode

Wanna

Mitglied
Hallo,

erste einmal die Codeteile:

functions.inc.php
Code:
function createCaptcha($width, $height)
    {
        mt_srand((double)microtime()*1000000);
        $captcha = mt_rand(1000, 99999);
        $captcha = md5($captcha);
        $captcha = substr($captcha, 0, 5);
        $captcha = strtoupper($captcha);
        $_SESSION['captcha'] = $captcha;
        $image = imagecreate($width, $height) or die("Can't initialize GD image stream");
        $bg_color      = imagecolorallocate($image, 255, 255, 255);
        $line_color    = imagecolorallocate($image, 150, 150, 150);
        $elpise_color  = imagecolorallocate($image, 200, 200, 200);
        $elpise_color2 = imagecolorallocate($image, 235, 235, 235);
        $text_color    = imagecolorallocate($image, 0, 0, 0);
		$rand_h1 = mt_rand(1, 40);
		$rand_h2 = mt_rand(1, 40);
		$rand_h3 = mt_rand(1, 40);
		$rand_h4 = mt_rand(1, 40);
		$rand_h5 = mt_rand(1, 40);
		$rand_v1 = mt_rand(1, 100);
		$rand_v2 = mt_rand(1, 100);
		$rand_v3 = mt_rand(1, 100);
		$rand_v4 = mt_rand(1, 100);
		$rand_v5 = mt_rand(1, 100);
        imageline($image, 0, $rand_h1, 100, $rand_h1, $line_color);
        imageline($image, 0, $rand_h2, 100, $rand_h2, $line_color);
        imageline($image, 0, $rand_h3, 100, $rand_h3, $line_color);
        imageline($image, 0, $rand_h4, 100, $rand_h4, $line_color);
        imageline($image, 0, $rand_h5, 100, $rand_h5, $line_color);
        imageline($image, $rand_v1, 0, $rand_v1, 50, $line_color);
        imageline($image, $rand_v2, 0, $rand_v2, 50, $line_color);
        imageline($image, $rand_v3, 0, $rand_v3, 50, $line_color);
        imageline($image, $rand_v4, 0, $rand_v4, 50, $line_color);
        imageline($image, $rand_v5, 0, $rand_v5, 50, $line_color);
        imagefilledellipse($image, mt_rand(0, 100), mt_rand(0, 40), mt_rand(10, 40), mt_rand(10, 25), $elpise_color);
        imagefilledellipse($image, mt_rand(0, 100), mt_rand(0, 40), mt_rand(20, 40), mt_rand(10, 25), $elpise_color);
        imagefilledellipse($image, mt_rand(0, 100), mt_rand(0, 50), mt_rand(20, 50), mt_rand(10, 35), $elpise_color2);

        if (function_exists("Imagettftext")) {
            Imagettftext ($image, 22, 0, 10, 30, $text_color, "".realpath("./images")."/fontf", $captcha);
        } else {
            imagestring($image, 5, 25, 12, $captcha, $text_color);
        }

        header("Content-type: image/png");
        imagepng($image);
        imagedestroy($image);
    }

Captcha.php
Code:
include("functions.inc.php");
createCaptcha(100, 40);

So, in der Gästebuch Datei wird das Verifizierungsbild wie folgt eingebunden:
Code:
<img src="http://www.****.de/captcha.php" alt="Captcha" name="captcha" width="100" height="40" id="captcha" />

Die Überprüfung des Codes erfolgt folgendermaßen:
Code:
			if($_SESSION['captcha'] !== $_POST['gbook_code'])
			{
				$error .= "<br>- Verifizierungscode nicht korrekt.<br>";
			}

Das ganze System funktioniert hervorrangend, zumindes mit FireFox ;)

Sobald man den Internet-Explorer benutzt, funktioniert es nicht mehr. Ich hab eine eventuelle Fehlerquelle schon entdeckt. Und zwar, wird die SESSION captcha nicht definiert. Zumindest nicht wenn man den Internet-Explorer benutzt.

Weiß einer von euch, wie ich das Problem beheben kann?

Vielen Dank schonmal,

Greets Wanna
 
Startest Du auch die Session?

PHP:
<?php
   session_start();
   include("functions.inc.php");
   createCaptcha(100, 40);
?>
 
Gibst du die Session dem IE auch mit?! Ich hatte ein ähnliches Problem mit dem Opera. Habs gelöst indem ich die Session Id automatisch an die URL mit dranhängt hab.
 
Hallo,

natürlich starte ich die Session. Ich habe die Session Id nun mal drangehängt, jedoch ohne erfolg. Das einzige was ich mir Vorstellen kann ist, dass der Internet Explorer die Session nicht erstellen will, weil ich die PHP Datei als <img> eingebunden habe.
 
Zurück