Captcha wird im IE bei mir auch nicht angezeigt + Frage

Hier werden Probleme rund um das Zahlen Captcha behandelt

Moderator: frameguard

Captcha wird im IE bei mir auch nicht angezeigt + Frage

Beitragvon hanseat » 21.09.2008, 11:28

Hallo PHP-Spezis,

die Lösungsvorschäge in den vorherigen Beträgen zum IE haben bei mir nicht geholfen.
habe folgende Probleme:
- das captcha wird im IE nicht angezeigt (bei Firefox geht es)
- wollte bei fehlerhafter Eingabe auf eine Versandfehler.html leiten (else), das funktioniert zwar aber es ist bei der Umleitung kurzzeitig eine weiße Seite mit der Zeile aus dem Script zu sehen. Das gefällt mir nicht. Wenn der Code richtig ist erfolgt die Umleitung auf die Versandbestätigung.html. Das klappt bestens. Nur funktioniert der gleiche code hier nicht und ich muss mit "refresh" arbeiten.
Bitte um ausfühliche Erklärungen bei den Lösungsvorschlägen da ich mich mit php nicht weiter auskenne.

Hier mein script (capcha.php)
(Im grossen und ganzen unverändert übernommen)
---------------------------------------------------------------
<?php
session_start();
unset($_SESSION['captcha_spam']);

function randomString($len) {
function make_seed(){
list($usec , $sec) = explode (' ', microtime());
return (float) $sec + ((float) $usec * 100000);
}
srand(make_seed());
//Der String $possible enthält alle Zeichen, die verwendet werden sollen
$possible="123456789";
$str="";
while(strlen($str)<$len) {
$str.=substr($possible,(rand()%(strlen($possible))),1);
}
return($str);
}

$text = randomString(5); //Die Zahl bestimmt die Anzahl stellen
$_SESSION['captcha_spam'] = $text;

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


Hier mein Formular: (nachricht2.php)
---------------------------------------------------------------
<?php
session_start();
if(isset($_SESSION['captcha_spam']) AND $_POST["sicherheitscode"] == $_SESSION['captcha_spam']){
unset($_SESSION['captcha_spam']);

// Variablen die übergeben werden sollen: absfirma, absname, absvorname, abstel, absmail, betreff, nachricht, gefunden

// Spampruefung
//-------------
//$absmail = preg_replace( "/[^a-z0-9 !?:;,.\/_\-=+@#$&\*\(\)]/im", "", $_POST['absmail'] );
//$absmail = preg_replace( "/(content-type:|bcc:|cc:|to:|from:)/im", "", $absmail );
$absmail = preg_replace( "/(content-type:|bcc:|cc:|to:|from:)/im", "", $_POST['absmail'] );
$nachricht = preg_replace( "/(content-type:|bcc:|cc:|to:|from:)/im", "", $_POST['nachricht'] );
$absfirma = preg_replace( "/(content-type:|bcc:|cc:|to:|from:)/im", "", $_POST['absfirma'] );
$absanrede = preg_replace( "/(content-type:|bcc:|cc:|to:|from:)/im", "", $_POST['absanrede'] );
$absname = preg_replace( "/(content-type:|bcc:|cc:|to:|from:)/im", "", $_POST['absname'] );
$absvorname = preg_replace( "/(content-type:|bcc:|cc:|to:|from:)/im", "", $_POST['absvorname'] );
$abstel = preg_replace( "/(content-type:|bcc:|cc:|to:|from:)/im", "", $_POST['abstel'] );
$betreff = preg_replace( "/(content-type:|bcc:|cc:|to:|from:)/im", "", $_POST['betreff'] );
$gefunden = preg_replace( "/(content-type:|bcc:|cc:|to:|from:)/im", "", $_POST['gefunden'] );

// Vorgabe für die Empfänger-Adresse
$empmail = "info@domain.de";

// Zusammensetzen bzw. Umformatieren der Nachricht
$message = ("
Firma : $absfirma
Anrede : $absanrede
Name : $absname
Vorname : $absvorname
Telefon : $abstel
Mail-Adresse : $absmail
Nachricht : $nachricht
Gefunden : $gefunden
");

mail("$empmail", "$betreff", "$message", "From: $absmail");
header("Location:http://www.domain.de/html/versandbestatigung.html");

}
?>

}else{

echo '<meta http-equiv="refresh" content="0;url='http://www.domain.de/html/versandfehler.html'" />';

// lieber wäre mir an dieser Stelle der folgende code, aber das funktioniert nicht (warum eigentlich nicht?)
// header("Location:http://www.domain.de/html/versandfehler.html");
// exit;

}

<?php
?>



Am wichtigsten ist natürlich das Problem mit dem IE, mit dem anderen könnte ich zur not noch leben. Gibt es denn noch andere Möglichkeiten außer header und refresh um auf eine html-Seite umzuleiten?

Vielen Dank schon mal.
Gruß hanseat
hanseat
 
Beiträge: 1
Registriert: 21.09.2008, 11:16

Zurück zu Zahlen Captcha

Wer ist online?

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

cron