Restliche Datenfelder vorbereiten:
$timestamp = time();
$articleid = (int) $_GET['id'];
// Kommentar in Datenbanktabelle 'comments' schreiben:
$sql = "insert into comments";
$sql .= "(articleid, name, mail, text, timestamp) values (";
$sql .= $articleid.", ";
$sql .= $_POST['name'].", ";
$sql .= $_POST['mail'].", ";
$sql .= $_POST['text'].", ";
$sql .= $timestamp.")";
$sqlResult = @mysql_query($sql, $dbh);
if(!$sqlResult) // Datensatz konnte nicht gespeichert werden:
$errorMessage .= '
Kommentar '.
'konnte nicht gespeichert werden
';
} // ENDE: if(isset($_POST['name']) and isset($_POST['mail']) …
// Artikel aus Datenbank lesen
$sql = "select * from articles where id = " . (int) $_GET['id'];
$sqlResult = mysql_query($sql, $dbh);
if(!$sqlResult) // Keine Ergebnismenge:
$errorMessage .= '
Artikel '.
'nicht gefunden
';
else // Ergebnismenge vorhanden:
// Datensatz des Artikels "holen":
$articleData = mysql_fetch_array($sqlResult, MYSQL_ASSOC);
// HTML-Ausgabe erzeugen:
$html .= ''."\n";
$html .= '
'."\n";
$html .= '
'.$articleData['title'].''."\n";
$html .= '
Das Artikelmagazin
'."\n";
if(strlen($errorMessage) > 0) // Fehlermeldung vorhanden:
// Fehlermeldung einfügen:
$html .= $errorMessage."\n";
$html .= '
'.$articleData['title'].'
'."\n";
$html .= ''."\n";
$html .= $articleData['text']."\n";
$html .= ''."\n";
$html .= ''."\n";
} // ENDE: Alles OK mit der Datenbank
else { // Nicht alles OK mit der Datenbank
$html .= ''."\n";
$html .= '
'."\n";
$html .= '
'.$articleData['title'].''."\n";
$html .= '
Das Artikelmagazin
'."\n";
// Fehlermeldung einfügen:
$html .= $errorMessage."\n";
$html .= ''."\n";
}
} // ENDE: if(isset($_GET['id']))
else { // kein GET-Parameter "id" vorhanden
$errorMessage .= '
Keinen
Artikel ausgewählt!
';
$html .= ''."\n";
$html .= '
'."\n";
$html .= '
'.$articleData['title'].''."\n";
$html .= '
Das Artikelmagazin
'."\n";
// Fehlermeldung einfügen:
$html .= $errorMessage."\n";
$html .= ''."\n";
}
// HTML ausgeben:
// Damit wird die Seite an den Browser gesendet:
echo $html;
?>
Erläuterung
Erkennbar ist, dass das Script prüft, ob Formulardaten des Kommentarformulars vorliegen. Wenn ja, werden die Daten für das Speichern in der Datenbank vorbereitet und anschließend als neuer Datensatz in der Datenbanktabelle comments gespeichert. Anschließend wird der HTML-Code der auszugebenden Artikelseite Stück für Stück erzeugt. Dabei werden die Daten des anzuzeigenden Artikels aus der Datenbank gelesen, sowie alle Kommentare, die zu diesem Artikel gehören. All diese Daten werden in den auszugebenden HTML-Code eingefügt. Falls zuvor ein Kommentar des aktuellenAnwenders gespeichert wurde, wird auch dieser bereits mit aus den Daten gelesen und ausgegeben. Aus Sicht des Anwenders, wird nach dem Absenden eines Kommentars zu einem Artikel, die Seite mit dem Artikel erneut angezeigt. Sein eigener Kommentar wird dabei