Ich habe ja vor kurzem mal ein Gästebuch in php geschrieben, in folge eines Homepageumbaus, hab ich dieses jetzt nochmal neu in die Seite eingebaut. Allerdings spuckt es mir immer aus, dass der Sicherheitscode falsch sei (also das Captcha).
Alles geht von der Seite gaestebuch.php aus, in der das Formular drin ist und beim Klick auf den Button wird man an die Datei gb.php weitergeleitet in der dieses steht:
Spoiler anzeigen
Alles anzeigen
Und dann noch die captcha.php, die auf der ursprünglichen Seite gaestebuch.php ausgeführt wird, von der man dann auf gb.php kommt. Ich glaube zwar nicht, dass es daran liegt, weil beim Bild wird alles richtig angezeigt:
Spoiler anzeigen
Alles anzeigen
LIVE-ANSICHT
Alles geht von der Seite gaestebuch.php aus, in der das Formular drin ist und beim Klick auf den Button wird man an die Datei gb.php weitergeleitet in der dieses steht:
PHP-Quellcode
- <?php
- $name=$_POST['name'];
- $text=$_POST['eintrag'];
- $mail=$_POST['email'];
- $code=$_POST['sicherheit'];
- if(trim($name)=="") die('Bitte gib deinen Namen an! <a href="javascript:window.history.back();">Zurück zum Gästebuch </a>');
- if(trim($text)=="") die('Bitte gib einen Nachrichtentext ein! <a href="javascript:window.history.back();">Zurück zum Gästebuch </a>');
- if(isset($_SESSION['captcha_spam']) AND $code == $_SESSION['captcha_spam']){
- unset($_SESSION['captcha_spam']);
- $datum = date("d.m.Y");
- $uhrzeit = date("H:i");
- if(trim($mail)=="")
- $daten="<br><table width='640' border='1'><tr><th width='640' scope='col'><div align='left'>".$_POST[name]." schrieb am ".$datum." - ".$uhrzeit.":</div></th></tr><tr><td>".$_POST[eintrag]."</td></tr></table><br>";
- else
- $daten="<br><table width='640' border='1'><tr><th width='640' scope='col'><div align='left'><a href=mailto:".$_POST[email].">".$_POST[name]."</a> schrieb am ".$datum." - ".$uhrzeit.":</div></th></tr><tr><td>".$_POST[eintrag]."</td></tr></table><br>";
- $datenbank = "daten.htm";
- $datei = fopen($datenbank,"a");
- $eintrag=strip_tags($eintrag);
- fwrite($datei, $daten);
- echo 'Danke fürs Eintragen! <a href="gaestebuch.php">Zurück zum Gästebuch </a>';
- } else {
- die ('Du hast den falschen Sicherheitscode eingegeben! <a href="javascript:window.history.back();">Zurück zum Gästebuch </a>');
- }
- ?>
Und dann noch die captcha.php, die auf der ursprünglichen Seite gaestebuch.php ausgeführt wird, von der man dann auf gb.php kommt. Ich glaube zwar nicht, dass es daran liegt, weil beim Bild wird alles richtig angezeigt:
PHP-Quellcode
- <?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="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
- $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, 55, 55, 0); //Farbe
- $ttf = $_SERVER['DOCUMENT_ROOT']."/x-games/GBF.TTF"; //Schriftart
- $ttfsize = 14; //Schriftgrösse
- $angle = rand(0,5);
- $t_x = rand(16,22);
- $t_y = 22;
- imagettftext($img, $ttfsize, $angle, $t_x, $t_y, $color, $ttf, $text);
- imagepng($img);
- imagedestroy($img);
- ?>
LIVE-ANSICHT

© 2008 by Teamgrill Productions