Hier mal der komplette Code, für den Fall, dass der Fehler nicht in dem v.g. Auszug zu finden ist.
Ich weiß, ist ziemlich lang und es ist spät, aber vlt. macht sich ja doch wer die Mühe und hilft mir bei der Fehlersuche.
<?php
function PostVar($variablen_name) {
$ergebnis = $_POST[$variablen_name];
if (get_magic_quotes_gpc()) $ergebnis = stripslashes($ergebnis);
return trim($ergebnis);
}
$eintrag = PostVar("eintrag");
$autor = PostVar ("autor");
$status = $_POST['status'];
$grenzwert = 1000;
$anzeigen = true;
$fehler = "";
$verbot = array
(
"<a href=" ,
"Viagra" ,
"[url"
);
$cuss = 0;
foreach ($verbot as $v)
{
if (preg_match("/$v/i" , $eintrag))
{
$cuss = $cuss + 1;
}
if (!preg_match("/$v/i", $eintrag))
{
$cuss = $cuss + 0;
}
}
if (empty($eintrag) && !empty($status)) $fehler .= "<li>Dein Eintrag ist leer</li>";
if (empty($autor) && !empty($status)) $fehler .= "<li>Du hast keinen Namen eingetragen</li>";
if (($cuss > 0) && !empty($status)) $fehler .= "<li>Du verwendest unerlaubte Zeichen oder Wörter</li>";
if (strlen($eintrag) > $grenzwert) $eintrag = substr($eintrag,0,$grenzwert);
if (!strpos($eintrag," ") or strpos($eintrag," " > 60)) $eintrag = wordwrap($eintrag, 60, " ", 1);
?>
<!-- Beginn Eintragungen -->
<h3>Gästebuch</h3>
<?php
if (!empty($fehler)) {
$anzeigen = false;
echo "<p><b>Leider konnte dein Eintrag nicht angenommen werden:</b></p>";
echo "<ul>$fehler</ul>";
} elseif ($status == "Vorschau") {
$anzeigen = false;
$datum = date ("\a\m j. n. Y \u\m H:i");
?>
<p><b>So sieht dein Eintrag derzeit aus:</b></p>
<hr />
<br />
<p><?php echo nl2br(htmlentities($eintrag)) ?></p>
<p><small><b><? echo htmlentities($autor)," ", "$datum" ?></b></small></p>
<br />
<hr />
<p><b>Benutze bitte das Formular, wenn du deinen Eintrag bearbeiten willst.</b></p>
<?php
} elseif ($status == "Eintragen") {
$query = "INSERT INTO guestbook SET
datum = now(),
eintrag = '".addslashes($eintrag)."',
autor = '".addslashes($autor)."'
";
$sql = mysql_query($query)
or die(mysql_error());
}
if ($anzeigen) {
?>
<p><b>Ich freue mich auf eure Beiträge. Ihr könnt diese mit dem Formular am Ende der Seite abgeben.
Aber beachtet bitte das <a href="impress.html">Impressum</a>, da eure Beiträge ansonsten gelöscht werden.<br />
» zum <a href ="#anker"> Eingabeformular</a></b></p>
<hr />
<br />
<?php
$query = "SELECT DATE_FORMAT(datum, 'am %e. %c. %Y um %k:%i')
AS datum, eintrag, autor, kommentar FROM guestbook WHERE YEAR(datum) = 2007 ORDER BY guestbook.datum DESC";
$sql = mysql_query($query)
or die (mysql_error());
while ($ds = mysql_fetch_object($sql)) {
$eintrag = $ds->eintrag;
$autor = $ds->autor;
$kommentar = $ds->kommentar;
$datum = $ds->datum;
?>
<p><?php echo nl2br(htmlentities($eintrag)) ?></p>
<p><small><b><? echo htmlentities($autor)," ", "$datum" ?></b></small></p>
<?php if (!empty($kommentar)) {
echo "<p><span style=\"font-size: 9pt;\"><br /><i>» <b>Kommentar</b>: " , nl2br(htmlentities($kommentar)) , "</i></span></p>";
} echo "";?>
<br />
<hr />
<br />
<?php
}
unset($eintrag,$autor);
}
?>
<a name="anker" id="runter" > </a>
<table border="0" style="width: 500px">
<tr>
<td>
<form action="guestbook.php" method="post">
<p>
<br />
<br />
<b>Dein Name:</b><br />
<input style="width: 500px;" type="text" maxlength="50" name="autor" value="<?php echo htmlentities($autor) ?>" />
</p>
<p>
<b>Dein Eintrag (max. <?php echo $grenzwert ?> Zeichen):</b><br />
<textarea style="width: 500px; height: 240px;" name="eintrag"><?php echo htmlentities($eintrag) ?></textarea>
</p>
<p>
<input type="submit" name="status" value="Vorschau" />
<input type="submit" name="status" value="Eintragen" />
</p>
</form>
</td>
</tr>
</table>
<!-- Ende Eintragungen -->
Danke schonmal an alle, die bis hierher gelesen haben :-)