Gästebuch via MySQL | Session und Captcha

Hallo, ich habe ein Problem.
Ich wollte bei meinem Gästebuch ein CAPTCHA rein tun, damit keine Bots mehr Spam einträge machen können. Nur leider will das irgendwie nicht so ganz funktionieren. Und nun geht überhaupt nichts mehr. :frowning:
nicht einmal mehr, wenn die Dateien original sind, ohne Captcha funktionierts. :frowning:
Ich finde nicht einmal mehr den fehler.

Kann mir jemand helfen? Ich wäre echt super froh und wenn das mit dem Captcha auch gehen würde, wäre ich auch noch froh. :smile:

guestbook.php

<?PHP function UF_ConvDate($ldDatum="",$lcFormat="D",$lcModus="R")
{ $ldRetVal = ""; if (!empty($ldDatum)) { if ($lcModus == "R") { // Lesen eines Feldwertes aus MySQL-Datums- oder Datums/Zeitfeld if ($lcFormat == "D") { // Datumsfeld list ($lcJahr, $lcMonat, $lcTag) = explode("-", $ldDatum); $ldRetVal = $lcTag . '.' . $lcMonat . '.' .$lcJahr; } if ($lcFormat == "DT") { // Datums-Zeitfeld $lcZeit = substr($ldDatum,strpos($ldDatum," "),10); $ldDatum = substr($ldDatum,0,strpos($ldDatum," ")); list ($lcJahr, $lcMonat, $lcTag) = explode("-", $ldDatum); $ldRetVal = $lcTag. '.' . $lcMonat . '.' . $lcJahr .$lcZeit; } } if ($lcModus == "W") { // Schreiben eines Feldwertes in MySQL-Datums- oder Datums/Zeitfeld if ($lcFormat == "D") { // Datumsfeld list ($lcTag, $lcMonat, $lcJahr) = explode(".", $ldDatum); $ldRetVal = "'".$lcJahr . '-' . $lcMonat . '-' .$lcTag."'"; } if ($lcFormat == "DT") { // Datums-Zeitfeld $lcZeit = substr($ldDatum,strpos($ldDatum," "),10); $ldDatum = substr($ldDatum,0,strpos($ldDatum," ")); list ($lcTag, $lcMonat, $lcJahr) = explode(".", $ldDatum); $ldRetVal = "'".$lcJahr . '-' . $lcMonat . '-' .$lcTag.$lcZeit."'"; } } } return $ldRetVal; } function UF\_Hyperlink($lcString="",$llDoHyperlink=true,$llDoLinebreak=false,$lcTarget="\_blank") { if ($llDoHyperlink) { $lcSearch = array ("/([\w\.\/\&\=\?\-]+)@([\w\.\/\&\=\?\-]+)\b/i", "/((ftp(7?):\/\/)|(ftp\.))([\w\.\/\&\~\=\?\-]+)\b/i", "/((http(s?):\/\/)|(www\.))([\w\.\/\&\~\=\?\-]+)\b/i"); $lcReplace = array ("[$1@$2", "](mailto:%241@%242)[$4$5](ftp%25243://%25244%25245)", "[$4$5](http%25243://%25244%25245)"); $lcString = preg\_replace ($lcSearch, $lcReplace, $lcString); } if ($llDoLinebreak) { $lcString = str\_replace("\r\n", " ", $lcString); } return $lcString; } $link = mysql\_connect("localhost","BENUTZER","PWD"); mysql\_select\_db("DATENBANK",$link); $page = $\_GET['page']; $maxItems = 5; $page = (integer)$page; if(!is\_int($page)) $page = 0; $countQuery = "SELECT COUNT(\*) FROM guestbook;"; $countResult = mysql\_query($countQuery,$link); $elements = mysql\_result($countResult,0); mysql\_free\_result($countResult); $startIndex = $page \* $maxItems; if($startIndex \> $elements) $startIndex = 0; $query = "SELECT \* FROM guestbook ORDER BY id DESC LIMIT $startIndex, $maxItems"; $result = mysql\_query($query,$link); $num = mysql\_num\_rows($result); ?\> <?PHP include '_meta/meta.html'; ?>

Guestbook

Name:

E-Mail:

Homepage:

Message:

<?PHP for ($i=0;$i < $num;$i++) {
$row = mysql\_fetch\_array($result); { ?\> Von <?PHP echo $row['name']; ?>

am <?PHP echo substr(UF_ConvDate($row['datum'],"D","R"),0,10); ?>

<?PHP echo (UF_Hyperlink(nl2br($row['message']))); ?>

Comment:

<?PHP echo (UF_Hyperlink(nl2br($row['comment']))); ?> <?PHP }} ?> <?PHP $startIndex = (integer)$startIndex;
if($startIndex != 0) { $tmpPage = $page - 1; echo "[";}else{ echo "= $elements){echo " \>";}else{$mod = ...](%5C%22guestbook.php?page=0%5C%22)[\>](%255C%2522guestbook.php?page=%2524nextPage%255C%2522)"; } ?\> **guestbook\_erg.php** <?PHP extract($_POST);
extract($HTTP\_SERVER\_VARS); $id = $\_POST['id']; $name = $\_POST['name']; $email = $\_POST['email']; $homepage = $\_POST['homepage']; $message = $\_POST['message']; $datum = $\_POST['datum']; $datum = date('Y-m-d'); if (empty($name)) { $status .= 'Bitte **Namen eingeben! '; } if (empty($email)) { $status .= 'Bitte E-Mail eingeben! '; } if (empty($message)) { $status .= 'Bitte Mitteilung eingeben!'; } if(!empty($name) && !empty($email) && !empty($usertext)) { function mysql\_die() { echo 'Fehler: '; echo mysql\_error(); exit; } $link = mysql\_connect("localhost","BENUTZER","PWD"); mysql\_select\_db("DATENBANK",$link); $query = "INSERT INTO guestbook (id,name,email,homepage,message,datum) values('$id','$name','$email','$homepage','$message','$datum')"; $result = mysql\_query($query) or mysql\_die(); echo " "; } if(empty($name) || empty($email) || empty($message)) { ?\> <?PHP include '_meta/meta.html'; ?>

Guestbook Fehler <?PHP echo $status ?>

[zurück](javascript:history.back())

<?PHP }
?\>captcha.php <?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="ABCDEFGHJKLMNPRSTUVWXYZabcdefghijkmnpqrstuvwxyz23456789"; $str=""; while(strlen($str) $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/XFILESF"; //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); ?\>Und das weiss ich nicht, wo das hinkommt <?php session_start();
if(isset($\_SESSION['captcha\_spam']) AND $\_POST["sicherheitscode"] == $\_SESSION['captcha\_spam']){ unset($\_SESSION['captcha\_spam']); } else{ die ("Der Sicherheitscode ist falsch!"); } ?\>**

Also das Gästebuch funktioniert wieder. :smile:
Es war ein kleiner schreibfehler. *hehe*

Aber eben, wie ich das mache mit dem Captcha, ist mir noch unklar, wäre froh um Hilfe.

Ich danke schon im voraus.

mfg SiMpLy

naja, nun brauch ich auch keine Hilfe mehr.
habe es unterdessen selbst geschafft, dass es funktioniert.
trotzdem danke
und falls wer die Code’s will, kann er mir ja bescheid geben.

mfg SiMpLy