Gästebuch

Für das Gästebuch mit Dreameaver benötigen wir:

  1. eine Datenbank in mySQL
  2. eine Seite für die Eingabe
  3. eine Seite für die Anzeige

Datenbank erstellen

Erstelle zuerst eine Datenbank guestbook nach folgender Struktur. Am einfachsten mit PHPmyAdmin.

CREATE TABLE tab_guestbook(
id INTEGER NOT NULL AUTO_INCREMENT,
Name CHAR(30) NOT NULL,
Email CHAR(30) NOT NULL,
Kommentar TEXT NOT NULL,
Datum TIMESTAMP,
login INT
PRIMARY KEY (id)


Eingabe Seite
Eingabe.php

1.) Html Eingabeseite, offline Version (Flash Version siehe unten)

Verbindung zur Datenbank

Erstelle eine neue Seite und speichere sie unter dem Namen Eingabe.php (diese Seite)
Erstelle eine Verbindung zur Datenbank namens Gaestebuch und wähle dort die Datenbank guestbook.
Erstelle eine Datensatzgruppe im Fenster Bindungen

Tabelle und Formular

Erstelle ein Formular, namens Eingabe
Füge dort eine Tabelle ein mit den Formularfeldern und Abschicken-Button nach oben stehndem Muster.
Die Formularfelder bekommen der Reihe nach die Namen
Name, Email, Kommentar entsprechend den Feldern der mySQL Datenbank.
Entsprechend der mySQL-Datenbank CHAR(30) beträgt die Zeichenbreite der Formularfelder auch 30. Das Kommentar-Feld ist mehrzeilig.

Formularfelder in Datenbank einfügen

Wähle des Formular aus, klicke im Fenster Serververhalten auf das +Zeichen und wähle Datensatz einfügen

Dadurch werden die Einträge der Formularfelder in die Felder gleichen Namens der mySQL Datenbank guestbook gesendet. Anschließend soll die Datei Ausgabe.php aufgerufen werden, die wir im zweiten Schritt erstellen.

Formulareingaben überprüfen

Damit die Formularfelder den Eintrag (NOT NULL) erhalten wird ein Javascript erzeugt.
Markiere das Formular und klicke im Fenster Verhalten das +Zeichen. Wähle dort Formular überprüfen
Markiere die Zeile text "Name" in formular "Eingabe" und aktiviere die Option Erforderlich, Am Ende der Zeile erscheint dann ein (R)
Verfahre genauso mit der Zeile Kommentar
Bei Email aktiviere Erforderlich und Email Adresse

2.) Flashversion Eingabeseite online Version (captcha.swf, captcha2.php)

Anstatt die Html Formularfelder zu benutzen kann man auch mit Flash Eingabetextfelder, dynamische Textfelder oder Variablen, die in Flash definiert wurden verschicken. Auch hier wählt man Post oder Get. Um die Variablen mit Dreamweaver benutzen zu können, habe ich am Anfang der Seite ein Script per Hand eingefügt. siehe auch
<?php
$name = $_POST["txtName"];
$email = $_POST["txtEmail"];
$kommentar = $_POST["txtKommentar"];
$login=$_POST["login"];
?>

Im Formular, welches die Daten in die Datenbank einfügen soll habe ich versteckte Formlarfelder eingefügt (hidden fields) und diese mit den entsprechenen Variablenwerten versehen.

<input name="name" type="hidden" id="name" value="<?php echo $name; ?>">
<input name="email" type="hidden" id="email" value="<?php echo $email; ?>">
<input name="kommentar" type="hidden" id="kommentar" value="<?php echo $kommentar; ?>">
<input name="login" type="hidden" id="login" value="<?php echo $login; ?>">

Alles weitere kann man dann auf die gleiche Art machen, wie es oben erklärt wurde.

3.) Flashversion ohne Bestätigungsseite / kein Beispiel

Man kann auf die Bestätigungsseite auch ganz verzichten, dann ist der Spamschutz noch sicherer. Erstelle eine PHP Seite ohne jeglichen Html Code. In Dreamweaver in der Code-Ansicht alles löschen. Fügen dann folgenden Code dort ein und passe ihn an deine Datenbank an.

<?php require_once('../Connections/stratoDatenbank.php');
$name = $_POST["txtName"];
$email = $_POST["txtEmail"];
$kommentar = $_POST["txtKommentar"];
mysql_select_db($database_stratoDatenbank);
$sql = mysql_query("INSERT INTO stratobook (Name, Email, Kommentar) VALUES ( '$name','$email' , '$kommentar')");
header("Location: Ausgabe.php");
?>

Hier dürfen auch keine Kommentare oder leere Zeilen eingefügt sein, sonst funktioniert die Umleitung auf die Ausgabe.php nicht.


Anzeige des Gästebuchs
Ausgabe.php

Serververhalten

Fenster Serververhalten +Zeichen, Datensatzgruppe

Tabelle

  1. Tabelle mit Zeilen und Spalten erstellen
  2. Datensatzgruppe ohne Filter erstellen
  3. Felder aus dem Bindungen Fenster einfügen.
  4. Wiederholungsbereich definieren, anstatt alle, kann man hier eingeben, wieviele Einträge auf einer Seite angezeigt werden sollen
  5. Navigation erstellen

Einträge löschen
loeschen.php / online
loeschen_alle.php / offline

Auch hier gibt es wieder 2 Versionen. In den Dateien zum Runterladen befindet sich die Datei loeschen_alle.php. Lese zuerst die folgende Erklärung und anschließend weiter unten, die Infos zur online Version.

Erklärung

Infos zu loeschen.php / online
In diesem speziellen Falle hat man keine Tabelle, die alle Tabellenfelder anzeigt, aus der man dann gewünschte Felder löschen kann, sondern man hat am Anfang ein Formularfeld, in das man die Login Nummer eingibt. Als Action des Formulars wird die gleiche Seite angegeben, also "loeschen.php" Das Eingabefeld hat hier den Namen "login".

In der Datensatzgruppe, welche die Tabelle definiert, gibt man dann als Filterbedinung die Formularvariable "login" ein. Alles weitere dann wie in den generellen Erklärungen. Zum Schluss habe ich noch die Tabelle markiert und das Serverhalten: Bereich Anzeigen, Wenn Datensatzgruppe nicht leer ist eingeben.