Hallo zusammen,
ich verwende ein Kontaktformular mit Cpatcha.
Das ganze System basiert auf der Session.
Hier der Code der aufgerufen wird wenn die Seite geladen wird und der Session Wert für den Cpatcha generiert wird:
Und damit wird das Image angezeigt:
DOch leider steht in dem Image immer beim Erstaufruf: Bitte Seite neu laden!
Wenn ich dann weiterschaue in der FIle für das anzeigen oder generieren des Images kommt es daher:
D.h. $_SESSION["CAPTCHA_RndText"] sollte nicht gesetzt sein, aber ich frage mich warum?
Könnt ihr hier vielleicht unterstützen, danke******
Denn ich sehe nicht warum der Wert hier leer sein sollte.
ich verwende ein Kontaktformular mit Cpatcha.
Das ganze System basiert auf der Session.
Hier der Code der aufgerufen wird wenn die Seite geladen wird und der Session Wert für den Cpatcha generiert wird:
Code:
// Header
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Datum aus Vergangenheit
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
// immer geändert
header("Cache-Control: no-store, no-cache, must-revalidate"); // HTTP/1.1
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache"); // HTTP/1.0
// Alle Fehler und Notices anzeigen
error_reporting(E_ALL);
session_start();
$CAPTCHA_TempString="";
// Zufallsfunktion für Zahlen und Buchstaben
function GetRandomChar() {
// Zufallszahl generieren
mt_srand((double)microtime()*1000000);
$CAPTCHA_RandVal = mt_rand(1,2);
// Buchstabensalat generieren jeh nachdem ob Randval 1 oder 2 ist
switch ($CAPTCHA_RandVal) {
case 1:
// Zahlen 0-9
$CAPTCHA_RandVal = mt_rand(48, 57);
break;
case 2:
// Grosse Buchstaben
$CAPTCHA_RandVal = mt_rand(65, 90);
break;
}
// Zufallscode ausgeben
return chr($CAPTCHA_RandVal);
}
// Zufallscode x-stellig ausgeben
for ($i = 1; $i <= 6; $i++) {
$CAPTCHA_TempString .= GetRandomChar();
}
// Text in Sessionvariable speichern
if (isset($CAPTCHA_TempString)) {
$_SESSION["CAPTCHA_RndText"] = str_replace('I','E',str_replace('0','3',str_replace('1','S',str_replace('B','F',str_replace('O','P',str_replace('4','A',str_replace('D','K',$CAPTCHA_TempString)))))));
} else {
die("Zufallscode konnte nicht generiert werden!");
}
....
.... HTML Code zur Anzeige ....
Und damit wird das Image angezeigt:
Code:
<img border="0" src="./kontakt/captcha_img.php?PHPSESSID=<?echo session_id();?>&ver=<?echo time();?>" alt="">
DOch leider steht in dem Image immer beim Erstaufruf: Bitte Seite neu laden!
Wenn ich dann weiterschaue in der FIle für das anzeigen oder generieren des Images kommt es daher:
Code:
// Session initialisieren
session_start();
include("config.php");
$Schriftart = "captcha_files/truetype_$Schrift.ttf";
// Benötige Strings überprüfen
if (isset($_SESSION["CAPTCHA_RndText"])) {
$CAPTCHA_RandomText = $_SESSION["CAPTCHA_RndText"];
} else {
// Fehlermeldung ausgeben
header ("Content-type: image/png");
$im = @imagecreatetruecolor(300, 30)
or die("Cannot Initialize new GD image stream");
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 10, 5, 7, "Bitte Seite neu laden!", $text_color);
imagepng($im);
imagedestroy($im);
exit();
}
...
D.h. $_SESSION["CAPTCHA_RndText"] sollte nicht gesetzt sein, aber ich frage mich warum?
Könnt ihr hier vielleicht unterstützen, danke******
Denn ich sehe nicht warum der Wert hier leer sein sollte.