Glück auf!
Ich habe ein Script für ein Gästebuch aus einem Buch
mehr oder weniger 1 zu 1 übernommen. Ich habe lediglich
"Kleinigkeiten" im Design angepasst und <? durch <?php
angepasst.
Hier der entsprechende Link
zu meiner Gästebuchseite.
Die Vorschau funktioniert bei mir einwandfrei. Jedoch
übernimmt er bei Eintrag die Daten für eintrag, autor
und datum nicht in die Tabelle guestbook. Meldet mir aber auch
keinen Fehler.
Da ich nicht riskieren will, dass ich beim Kürzen des
Skriptes wesentliche Dinge vergesse, hier einmal das
Skript in voller Länge (ich hoffe ihr verzeiht dies
und verliert nicht allein aufgrund der Länge des Skriptes
die Lust mir zu helfen):
<!-- Verbindung zur Datenbank aufbauen -->
<?php include ("../MySQL/mysql2.inc"); ?>
<?php
function PostVar($variablen_name) {
$ergebnis = $_POST[$variablen_name];
if (get_magic_quotes_gpc()) $ergebnis = stripslashes($ergebnis);
return trim($ergebnis);
}
function format ($text) {
$ergebnis = htmlentities($text);
$ergebnis = str_replace("\r\n\r\n","<br /><br />",$text);
return $ergebnis;
}
$eintrag = PostVar("eintrag");
$autor = PostVar ("autor");
$status = $_POST['status'];
$grenzwert = 1000;
$anzeigen = true;
$fehler = "";
if (empty($eintrag)) $fehler .= "<li>Dein Eintrag ist leer</li>";
if (empty($autor)) $fehler .= "<li>Du hast keinen Namen eingetragen</li>";
if (strlen($eintrag) > $grenzwert) $eintrag = substr($eintrag,0,$grenzwert);
if (!strpos($eintrag," ") or strpos($eintrag," " > 60)) $eintrag = wordwrap($eintrag, 60, " ", 1);
?>
<!-- Eintragungen -->
<h3>Gästebuch</h3>
<br />
<?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");
?>
<h4>So sieht dein Eintrag derzeit aus:</h4>
<hr width="500" align="left" />
<p><?php echo format($eintrag) ?></p>
<p><small><b><? echo htmlentities($autor)," ", "$datum" ?></b></small></p>
<hr width="500" align="left" />
<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) {
$query = "SELECT DATE_FORMAT(datum, 'am %e. %c. %Y um %k:%i')
AS datum, eintrag, autor FROM guestbook ORDER BY datum DESC";
$sql = mysql_query($query)
or die (mysql_error());
while ($ds = mysql_fetch_object($sql)) {
$eintrag = $ds->eintrag;
$autor = $ds->autor;
$datum = $ds->datum;
?>
<p><?php echo format($eintrag)?></p>
<p><small><b><? echo htmlentities($autor)," ", "$datum" ?></b></small></p>
<hr width="500" align="left" />
<?php
}
unset($eintrag,$autor);
}
?>
<table border="0" style="width: 500px">
<tr>
<td>
<form action="guestbook.php" method="post">
<p>
<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 format($eintrag) ?></textarea>
</p>
<p>
<input type="submit" name="status" value="Vorschau" />
<input type="submit" name="status" value="Eintragen" />
</p>
</form>
</td>
</tr>
</table>
Ich wäre dankbar für sämtliche Tipps, die mir bei der Lösung
meines Problems helfen könnten.
Bitte helft mir trotz der Komplexität des Problems!
Beste Grüße
zwerg Alex