Moderiertes Gästebuch

Werbung
Moderiertes Gästebuch
mit Zugriffsschutz auf Administrationsseite
unter Verwendung einer MySQL-Datenbank
erstellt mit dem Dreamweaver
Übungsziel Gästebuch mit Datenbank ........................................................... 3
Tabelle zum Speichern der Gästebucheinträge erstellen .................................. 4
Neue Datenbank mit phpMyAdmin erstellen ................................................... 4
Die Tabelle erstellen ................................................................................... 4
Felder eingeben ......................................................................................... 4
Sitemap des fertigen Gästebuchs ................................................................. 5
Eingabeformular (gb_eingabe.php) im DRW erstellen...................................... 6
MySQL-Verbindung erstellen ............................................................... 6
Erstellung Datensatzgruppe ................................................................ 8
Einfügen von Datensätzen .................................................................. 8
Assistent: "Einfügeformular für Datensätze" ......................................... 8
Formularüberprüfung ................................................................................ 10
Exkurs: Formulare überprüfen per JavaScript (mit dem DRW)........................ 10
Exkurs: Formularüberprüfung mit der DRW -Extension checkform.mxp ........... 11
Anzeige der Gästebucheinträge .................................................................. 11
Datensatzgruppe erstellen ................................................................................ 11
Einen wiederholten Bereich einfügen .............................................................. 12
Datensatzgruppen-Navigationsleiste einfügen ............................................... 14
Datensatzgruppen-Navigationsstatus einfügen .............................................. 15
Gästebuch-Administrations-Seite (gb_admin.php) einfügen ........................... 16
Datensatzgruppe erstellen .................................................................................... 19
Wiederholten Bereich einfügen............................................................................. 19
Formular zum Freischalten erstellen.................................................................... 20
Datensatz aktualisieren................................................................................................ 21
Formular zum Sperren erstellen........................................................................... 21
Formular zum Löschen erstellen .......................................................................... 22
Datensatz löschen ........................................................................................................ 22
Zugriffsschutz für Administrationsseiten einfügen ......................................... 23
Datei: gb_login.php ...................................................................................................... 23
Serververhalten "Benutzer anmelden" hinzufügen ............................................ 24
Datei: gb_admin.php ................................................................................................... 24
Serververhalten "Zugriff auf Seite beschränken" einfügen ............................... 24
Serververhalten "Benutzer abmelden" ................................................................ 25
Anhang: Quellcode ................................................................................... 26
Datensicherung: gaestebuch2012.sql ........................................................................ 26
Datenbank: gaestebuch2012 ...................................................................................... 28
Die Datenbank gaestebuch2012 enthält 2 Tabellen: ......................................... 28
Tabelle: gaestebuch .............................................................................................. 28
Tabelle: nutzer ....................................................................................................... 28
Dateiliste: ............................................................................................... 29
Datei: gaestebuch.css ....................................................................................... 29
Datei: gb_admin.php ........................................................................................ 29
Datei: gb_anzeige.php ...................................................................................... 32
Datei: gb_eingabe.php ...................................................................................... 34
Datei: gb_funktionen.inc.php ........................................................................... 37
Datei: gb_login.php ........................................................................................... 37
Datei: gb_verweigert.php ................................................................................. 38
© Mag. Erwin Mayer, Nov 2012
VBS Akademiestraße
Datei: connections/vb_gb.php ......................................................................... 39
© Mag. Erwin Mayer
Beispiel: Moderiertes Gästebuch
Seite 2/39
Aufgabenstellung:
Erstellen Sie ein Gästebuch mit folgenden Anforderungen (Pflichtenheft):
 Die Benutzer des Gästebuchs können Einträge gestalten, die nach Genehmigung
(Freischaltung) durch den Gästebuch-Administrator veröffentlicht werden.
 Die neuesten Einträge sollen zuerst angezeigt werden.
 Die Administrationsseite (gb_admin.php) soll das Freischalten, Sperren und Löschen
der Daten benutzerfreundlich ermöglichen.
 Der Zugriff auf die Administrationsseite soll geschützt sein.
Vorschlag für die Reihenfolge der Erstellung:
 Anlegen der Tabelle gaestebuch in der Datenbank gaestebuch2012 mit Hilfe von
phpMyAdmin
 Eingabe von Testdaten
 Erstellung Eingabeformular (gb_eingabe.php)
 Erstellen der Anzeigeseite (gb_anzeige.php)
 Erstellung der notwendigen Funktionen (gb_function.inc.php) und Einbindung mit
include in die entsprechenden Seiten.
 Formatierung mit CSS (gb_style.css)
 Erstellung der Administrationsseite (gb_admin.php)
 Anlegen der Tabelle nutzer in der Datenbank gaestebuch2012 mit Hilfe von
phpMyAdmin für den Zugriffsschutz
 Zugriffsschutz für die Administrationsseite einfügen
zusätzliche Features:


Anstatt der Werte 1 und 0 für freigabe geben Sie das Wort "freigeschaltet" bzw. "gesperrt" aus.
Das Datum (jetzt im Format JJJJ-MM-TT) ist im deutschen Format "18. Okt. 2010" ausgeben.
Hinweis: Schreibe dazu eine Funktion dtdatum(Datum im Datenbankformat), die das Format der
Datenbank in die deutsche Schreibweise umwandelt.
Lesen Sie dazu das Kapitel 10.4. aus dem Herdt-Skriptum PHP5 – Grundlagen (Erstellung dynamischer
Webseiten)

Auf der Administrationsseite werden die einzelnen Tabelle werden mit rotem Hintergrund (=gesperrt)
bzw. grünem Hintergrund (=freigeschaltet) ausgegeben werden.
Hinweis: Schreibe dazu eine Funktion gesperrt(Prüfkennzeichen), der das Prüfkennzeichen übergeben
wird und die den Text gesperrt bzw. freigeschaltet ausgibt.
Verwenden Sie diese Funktion auch für die Formatierung der Hintergründe (rot und grün) der
entsprechenden Tabellen mit Klassenformaten mit demselben Namen:
"class='gesperrt'" bzw. "class='freigeschaltet'"
Schreibe Sie alle diese Funktionen in die Datei gb_functions.inc.php und
binden Sie diese Datei mit include in die gb_admin.php und
gb_anzeige.php ein.
Übungsziel Gästebuch mit Datenbank
Diese Übung soll eine Einführung in die Arbeit mit MySQL-Datenbanken mit Hilfe
des Dreamweavers bieten.
Darüber hinaus soll der Umgang mit dem MySQL-Datenbanken-Verwaltungstool
phpMyAdmin geübt werden.
© Mag. Erwin Mayer
Beispiel: Moderiertes Gästebuch
Seite 3/39
Tabelle zum Speichern der Gästebucheinträge erstellen
Neue Datenbank mit phpMyAdmin erstellen
Starten Sie phpMyAdmin (hier Version 3.5.2)
und legen Sie eine neue Datenbank an, wenn Sie keine vorhandene verwenden.
Reiter Datenbank:
Die Tabelle erstellen
Klicken Sie auf
Und geben Sie folgende Felder ein:
Felder eingeben
Name
Beschreibung
Zusätzliche Angaben:
ID
Autozähler (auto_increment) zur
eindeutigen Identifikation eines
Datensatzes
name
Für den Namen des Absenders
email
Für die E-Mail-Adresse
betreff
Für den Betreff
meldung
Für die Botschaft
datum
Datum des Eintrags
freigabe
Standardwert = 0, wird auf 1
gesetzt, wenn der Datensatz
bzw. Eintrag gesichtet und für
OK befunden wurde
Veröffentlichung
UNSIGNED = ohne Verwendung des
Vorzeichens
SMALLINT reicht für 65535 Einträge
Primärschlüsselfeld
VARCHAR(255) reicht für maximal 255
Zeichen
VARCHAR(255) reicht für maximal 255
Zeichen
VARCHAR(255) reicht für maximal 255
Zeichen
TEXT (Zeichenkette mit maximal 65535
Zeichen = 64 KB)
DATE = Feld zum Speichern des Datums
im Format YYYY-MM-DD ('2010-10-31')
TINYINT (= sehr kleine Ganzzahl von 128 bis +127 reicht hier, da der Wert nur
-1 und 1 annehmen kann)
© Mag. Erwin Mayer
Beispiel: Moderiertes Gästebuch
Seite 4/39
Nun ist die Tabelle zum Speichern der Gästebucheinträge fertig!
Sitemap des fertigen Gästebuchs
Gästebuch
gb_eingabe.php
gb_anzeige.php
neuen Gästbucheintrag
erstellen
zeigt freigeschaltete Gästbucheinträge seitenweise an
Tabelle: gaestebuch
Administration
mit Zugriffsschutz
ID
name
email
betreff
meldung
datum
freigabe
Anmeldung
gaestebuch.css
Enthält alle CSS-Formate
gb_funktionen.inc.php
Enthält die Funktionen:
gesperrt() gibt "gesperrt" bzw "freigeschaltet" aus
dtdatum() wandelt Datum in Datum mit deutscher
Schreibweise um
Verwaltungsseite (geschützte Seite)
gb_login.php
enthält Anmeldungsformular
--Serververhalten: Benutzer anmelden
Anmeldung erfolgreich --> Sprung zur
Anmeldung fehlgeschlagen --->zurück zur Anmldg
Tabelle: nutzer
eingebundene Dateien:
gb_admin.php
zeigt alle Gästbucheinträge zum
Freigeben/Sperren/Löschen
an.
--Serververhalten: Zugriff auf Seite beschränken
--Serververhalten: Benutzer abmelden
Bei unberechtigtem Aufruf --> zur Anmeldung
id
name
passwort
© Mag. Erwin Mayer
Beispiel: Moderiertes Gästebuch
Seite 5/39
Eingabeformular (gb_eingabe.php) im DRW
erstellen
Öffnen Sie eine neue dynamische Datei und speichern Sie sie unter dem Namen
gb_eingabe.php. Eine offene Datei ist Voraussetzung um eine MySQLVerbindung erstellen zu können.
Eingabeformular zum Eingeben neuer Einträge (gb_eingabe.php), bereits mit
CSS formatiert
MySQL-Verbindung erstellen
Wie erstellt man eine MySQL-Verbindung?
Fenster: Datenbanken
Reiter: Datenbanken
Klick auf
MySQL-Verbindung
Es erscheint folgender Dialog (MySQL-Verbindung):
Sie geben ein:
MySQL-Server: localhost,
lokale Standardpasswörter XAMPP in passwords.txt
Benutzername: root,
Kennwort keines und als Datenbank wählen Sie die gewünschte
(existierende) Datenbank (hier gaestebuch2012) aus.
Dann testen Sie die Verbindung: Klick auf „Testen“
Der DRW weist Sie darauf hin, dass ein Kennwort wünschenswert wäre:
Sie klicken das Kontrollkästchen (Diese Meldung nicht mehr zeigen ) an und
bestätigen mit OK
Nun sollte folgende Meldung erscheinen: Verbindung wurde erfolgreich erstellt!
© Mag. Erwin Mayer
Beispiel: Moderiertes Gästebuch
Seite 6/39
Alles klar!?
Der DRW hat nun eine Verbindung (vb_gb) erstellt:
Im Reiter Datenbanken
sehen Sie nun die Verbindung zur Tabelle gaestebuch(geöffnet):
Zusätzlich wurden nun zwei Verzeichnisse angelegt:
Das Verzeichnis Connections müssen Sie beim Veröffentlichen auf den
Webserver mitübertragen.
Das Verzeichnis _mmServerScripts veröffentlichen Sie aus Datenschutzgründen
keinesfalls, am besten löschen Sie die Verbindungsskripte mit
Site/Erweitert/Verbindungsskripte entfernen
Gegebenenfalls sind vorher noch in der Verbindungsdatei vb_gb.php (im
Verzeichnis Connections) noch Anpassungen (an den Datenbanknamen des
Webservers bzw. Usernamen, usf) vorzunehmen.
(Sie können auch gleich den Datenbanknamen des Host-Servers lokal
verwenden, dann ersparen Sie sich die Änderungsarbeit!)
Abb.: vb_gb.php
Im Moment testen wir unser Gästebuch jedoch nur lokal.
Nun weiter mit unserem Eingabeformular (gb_eingabe.php).
Für den Zugriff auf die Datenbank benötigen wir eine Datensatzgruppe. Falls man
diese vergisst, so wird man daran erinnert!
© Mag. Erwin Mayer
Beispiel: Moderiertes Gästebuch
Seite 7/39
Erstellung Datensatzgruppe
Entweder über die Bedienfeldgruppe Anwendung, Reiter: Bindungen
+ oder über das Symbol erstellen Sie eine Datensatzgruppe.
Abb.: neue Datensatzgruppe (record set), geöffnet
Einfügen von Datensätzen
Wir haben nun zwei Möglichkeiten:
 Formular selbst erstellen und Daten in Datenbank übertragen lassen (mit
Serververhalten Datensatz einfügen) oder den
 Assistenten „Einfügeformular für Datensätze“ zu verwenden, der uns das
Formular „automatisch“ generiert, zu verwenden. Wir wählen die letztere,
die bequemere Methode:
Assistent: "Einfügeformular für Datensätze"
Wir wählen unsere Verbindung: vb_gb
Unsere Tabelle: gaestebuch
Wohin soll er nach dem erfolgreichen Einfügen des Datensatzes gehen?
Wir könnten eine eigene Datei (gb_bestaetigung.php) mit der entsprechenden
Erfolgsmeldung ("Datensatz eingetragen!") erstellen mit einem Link auf die -noch
nicht existierende - Anzeige (gb_anzeige.php)
© Mag. Erwin Mayer
Beispiel: Moderiertes Gästebuch
Seite 8/39
Abb.: ausgefülltes Dialogfeld
Der DRW schlägt uns nun alle Felder vor, die in der Tabelle vorhanden sind, wir
benötigen aber nicht alle.
Beachten Sie:
ID benötigen wir nicht, wird automatisch erzeugt (auto_increment)
freigabe benötigen wir auch nicht: wird automatisch vergeben: 0 (über
Standardwert in der Datenbanktabelle)
Änderungen:
meldung soll ein mehrzeiliges Textfeld sein. -> ändern
Bei datum wollen wir das aktuelle Datum eintragen lassen: als verstecktes Feld
übertragen
Wir haben zwei Möglichkeiten:
im Codefenster (die Funktion date('Y.m.d')erzeugt ein Datumsformat, wie es in
der MySQL-Datenbank verwendet wird (z. B. 2010.12.31).
<input name="datum" type="hidden"
id="datum" value="<?php echo date('Y.m.d'); ?>">
Oder im Eigenschaftsfenster:
Als Resultat finden wir in der
Fenster: Serververhalten
Datensatz einfügen(Formular, Verbindung, Tabelle)
Zusätzlich noch ein dynamisches Textfeld (datum) welches wir vorhin
erstellt haben
Aufgabe: Testen (einen oder mehrere Datensätze erstellen) und
Datenbanktabelle in phpMyAdmin anschauen
© Mag. Erwin Mayer
Beispiel: Moderiertes Gästebuch
Seite 9/39
Wenn wir das Sprungziel nach der Eingabe noch nicht ausgefüllt haben, so
könnten wir dies jederzeit ändern(Dies könnte ev.die Datei gb_bestaetigung
oder gleich gb_anzeige.php sein!):
Dazu öffnen Sie das Serververhalten Datensatz einfügen:
Sie tragen hier das entsprechende Sprungziel ein!
Formularüberprüfung
Jedes Formular welches eingegebene Daten in eine Datenbank schreibt gehört
überprüft (siehe Datenintegrität bzw. Datenkonsistenz).
Dazu bietet der Dreamweaver das Verhalten Formularüberprüfung (siehe
Merkblatt) an:
 Formular zur Gänze markieren (bequem mit dem TAG-Editor auf <form>).
 Dann Fenster Tag-Inspektor, Reiter Verhalten anklicken.
 Dann [+] markieren Formular überprüfen
Diese Formularüberprüfung bietet nur schlichte, englische Überprüfung per
JavaScript(ob ein Wert erforderlich ist, eine Zahl in einem bestimmten Bereich
und ob eine E-Mail-Adresse ein @-Zeichen enthält).
Exkurs: Formulare überprüfen per JavaScript (mit dem
DRW)
www.erwin-mayer.at/mmwd_beispiele/Formulare_ueberpruefen_per_JavaScript.pdf
© Mag. Erwin Mayer
Beispiel: Moderiertes Gästebuch
Seite 10/39
Exkurs: Formularüberprüfung mit der DRW -Extension
checkform.mxp
Eine bessere Leistung bietet die Dreamweaver –Extension von Yaromat.
 Zuerst installieren: chekform.mxp doppelt anklicken (DreamweaverExtension-Manager öffnet sich) oder über Menü: Hilfe/Erweiterungen
verwalten/dann Installieren.
Zugriff über
 Formular zur Gänze markieren (bequem mit dem
TAG-Editor auf <form>).
 Dann Fenster Tag-Inspektor, Reiter Verhalten
anklicken.
 Dann [+] markieren yaromat  checkform aufrufen
und
 für alle Formularfelder die entsprechenden Optionen
festlegen
www.erwinmayer/mmwd_beispiele/Formularueberpruefung_mit_der_DRW_extension_checkform.pdf
Extension: www.erwin-mayer/mmwd_beispiele/checkform.mxp
Anzeige der Gästebucheinträge
Sie speichern eine neue dynamische Seite unter dem Namen gb_anzeige.php
ab.
Für das Grundgerüst nehmen Sie eine Tabelle mit drei Zeilen und drei Spalten.
Für die Daten setzen Sie bei ein paar Datensätzen freigabe auf 1
(=Veröffentlichen).
So soll das fertige Gästebuch (gp_anzeige.php ) aussehen (CSS-formatiert)
Datensatzgruppe erstellen
Nun werden die Daten eingefügt: In der
Fenster: Bindungen
klicken Sie auf die Schaltfläche mit dem Pluszeichen(
Datensatzgruppe.
© Mag. Erwin Mayer
Beispiel: Moderiertes Gästebuch
), und wählen Sie
Seite 11/39
Alternativ können Sie auch das entsprechende Symbol
"Datensatzgruppe" aus der Symbolleiste Anwendungen verwenden.
Sie legen nun eine neue Datensatzgruppe (Recordset) an:
Benennen Sie die Datensatzgruppe immer mit einem sinnvollen Namen (hier:
rs_ausgabe).
Sie wissen dann später: Alle Felder (Spalten) aus dem Gästebuch, die
freigeschaltet (freigabe = 1) worden sind, also angezeigt werden sollen.
Spalten nehmen wir immer alle, wir können später noch genauer auswählen.
Wir wollen jedoch nur jene Beiträge veröffentlichen, die als Kennzeichen
(Datenbankfeld: freigabe) einen 1er enthalten. Als Filter verwenden wir daher
das Feld freigabe, wenn es dem von uns eingegebenen Wert = 1 entspricht.
Wir sortieren die Beiträge nach der Zeit absteigend (der letzte Beitrag sollte oben
stehen).
Wenn Sie auf Testen klicken, so sehen Sie die aktuelle Auswahl an Datensätzen,
die jetzt getroffen würde
In der Fenster: Bindungen klicken Sie auf das
Plus (+) vor der neuen Datensatzgruppe
(rs_anzeigen), um sie zu öffnen:
Nun können die einzelnen Datenbankfelder per
Drag and Drop auf das Entwurfsfenster gezogen
und auf dem richtigen Platz fallengelassen werden.
Das Feld name fügen wir in der ersten Zelle der Tabelle ein. Die E-Mail-Adresse
gleich daneben (abgegrenzt mit runden Klammern). In die Zelle daneben kommt
das Datum, usf.
In den letzten beiden Zeilen können Sie die Zellen verbinden.
Wenn Sie jetzt die Anzeige testen, so sehen Sie nur den ersten Datensatz!
Wir müssen noch einen wiederholten Bereich einsetzen!
Einen wiederholten Bereich einfügen
Markieren Sie dazu die Tabelle mit den eingefügten Datenbankfeldern
und klicken Sie auf das Symbol Wiederholter Bereich oder alternativ
Fenster: Serververhalten auf das Pluszeichen(
)und wählen dann
aus dem Menü Bereich wiederholen.
Wir möchten nur 3 Gästebucheinträge gleichzeitig auf einer Seite sehen daher:
© Mag. Erwin Mayer
Beispiel: Moderiertes Gästebuch
Seite 12/39
Nach der Tabelle noch ein RETURN eingefügt (zwecks Abstand der Einträge
zueinander) und schon ist das Gästebuch fertig:
Fertiges Gästebuch (in der Entwurfsansicht):
© Mag. Erwin Mayer
Beispiel: Moderiertes Gästebuch
Seite 13/39
Datensatzgruppen-Navigationsleiste einfügen
Wir geben nun die ersten drei Datensätze von unserem Gästebuch aus. Was
geschieht, wenn mehr als diese zur Veröffentlichung freigegeben wurden. Um
alle möglichen Datensätze durchblättern zu können benötigen wir eine
Navigationsleiste.
Wir fügen die Navigationsleiste einfach mit Hilfe des Symbols
Datensatzgruppen-Navigationsleiste ein.
Exkurs:
Dies würde alternativ auch über das Menü der
Fenster: Serververhalten gehen,
erfordert jedoch mehrere einzelne Aktionen
Beispiel:
Da auf der ersten Seite die ersten beiden Links unnötig sind (Sie befinden sich ja
auf der ersten Seite und es gibt daher kein zurück) müssten sie beide
ausblenden (nicht anzeigen), da sie funktionslos sind. Auch das ist möglich:
(Menü: Bereich anzeigen, Anzeigen, wenn nicht erste Seite)
Genauso verhält es sich mit der letzten Seite, hier ist der Link Vor und Letzter
sinnlos.
(Menü: Bereich anzeigen, Anzeigen, wenn nicht letzte Seite)
Zusammenfassung:
Symbol
Menübefehl
AnzeigeSymbol
Menübefehl
zur Anzeige
Darstellung
Zur ersten
Seite
verschieben
Zur
vorherigen
Seite
verschieben
Zur nächsten
Seite
verschieben
Zur letzten
Seite
verschieben
Anzeigen,
wenn nicht
erste Seite
Erster
Anzeigen,
wenn nicht
erste Seite
Zurück
Anzeigen,
wenn nicht
letzte Seite
Vor
Anzeigen,
wenn nicht
letzte Seite
Letzter
Nun ist jedenfalls klar warum so viele Aktionen in der
Fenster: Serververhalten auftauchen.
All dies lässt sich auf einen Streich erledigen, in zwei Versionen (Text und
Grafik):
Wir fügen die Navigationsleiste einfach mit Hilfe des Symbols
Datensatzgruppen-Navigationsleiste ein.
Symbol: Datensatzgruppen-Navigationsleiste
© Mag. Erwin Mayer
Beispiel: Moderiertes Gästebuch
Seite 14/39
Darstellung (im Entwurf, dann im Browser) Textversion:
Darstellung (im Entwurf, dann im Browser) Bilderversion:
Datensatzgruppen-Navigationsstatus einfügen
Zu guter letzt wollen wir auch noch zur besseren Orientierung den
DatensatzgruppenNavigationsstatus ausgeben:
Im Entwurf sieht dies so aus:
Dies ist auch einzeln zu haben:
Symbole
Im Menü: Anzahl
der Datensätze
anzeigen
Start-Datensatz
End-Datensatz
Erste
Datensatznummer
anzeigen
Letzte
Datensatznummer
anzeigen
Datensätze
gesamt
Datensätze
gesamt anzeigen
Nun ist die Gästebuch-Seite wirklich fertig!
So soll das fertige Gästebuch (gp_anzeige.php ) in Entwurfsansicht aussehen
(CSS-formatiert)
© Mag. Erwin Mayer
Beispiel: Moderiertes Gästebuch
Seite 15/39
Gästebuch-Administrations-Seite (gb_admin.php)
einfügen
Zur einfachen Verwaltung so eines moderierten Gästebuchs ist unbedingt eine
Verwaltungsseite notwendig. Sie müssen ja permanent Beträge freischalten bzw.
unerwünschte Beiträge löschen.
Eine Verwaltung mit phpMyAdmin ist dem User nicht zuzumuten bzw. die Arbeit
direkt am Server (wie wir es vorhin zum Testen gemacht haben) ist für Ungeübte
riskant (ein falscher Klick und die Tabelle ist gelöscht!).
© Mag. Erwin Mayer
Beispiel: Moderiertes Gästebuch
Seite 16/39
© Mag. Erwin Mayer
Beispiel: Moderiertes Gästebuch
Seite 17/39
So soll die fertige Administrationsseite für das Gästebuch aussehen:
 Schaltfläche zum Löschen eines Datensatzes,
 Schaltfläche zum Freischalten eines Datensatzes und
 Schaltfläche zum Sperren eines Datensatzes (wenn man das Freischalten
rückgängig machen wollte).
Darüber hinaus wurden die einzelnen Tabelle mit einem CSS-Format formatiert,
die von Prüf-Kennzeichen abhängig sind (freigeschaltet = grün, noch nicht
freigeschaltet = rot).
© Mag. Erwin Mayer
Beispiel: Moderiertes Gästebuch
Seite 18/39
Wir speichern zuerst eine neue dynamische Seite unter dem Namen
gb_admin.php ab. Als Überschrift verwenden wir Administration Gästebuch
(Format h1).
Dann fügen wir eine vierzeilige, dreispaltige Tabelle ein, um dem Layout einen
Rahmen zu geben (siehe Layout unten).
Datensatzgruppe erstellen
Wir erstellen eine neue Datensatzgruppe (rs_admin):
Diese Datensatzgruppe unterscheidet sich von der vorherigen dadurch, dass wir
keinen Filter setzen (hier wollen wir ja alle Datensätze zeigen).
Testen Sie ruhig diese Datensatzgruppe durch Klick auf die Schaltfläche Testen,
sie müssten nun alle vorhandenen Datensätze sehen.
Wiederholten Bereich einfügen
Über die gesamte Tabelle (mit einem Return Abstand) fügen wir einen
wiederholten Bereich ein. Das haben wir schon einmal gemacht, aber hier wollen
wir alle Datensätze (sortiert vom Letzten zum Ersten) anzeigen.
Darstellung Seite gb_admin.php (im Entwurf):
© Mag. Erwin Mayer
Beispiel: Moderiertes Gästebuch
Seite 19/39
Formular zum Freischalten erstellen
Wir wollen nun per Formular-Schaltfläche das Prüf-Feld der Datenbanktabelle
gaestebuch aktualisieren (mit 1 = freigeschaltet).
Um in der ersten Zelle der letzten Zeile ein Formular zu erstellen fügen wir
zuerst den Formular-Tag ein. Siehe Symbol aus der FormulareSymbolleiste.
In diesem Formular müsse wir noch die nowendigen
Daten mitgeben, damit upgedatet werden kann. Die
ID (welcher Datensatz soll upgedatet werden) und
das zu aktualisierende Feld freigabe (soll den Wert
1 erhalten). Und dann benötigen wir noch die
Schalfläche Freischalten , um diesen Vorgang
auszulösen.
ID übergeben
Die ID übergeben wir mit einem versteckten Feld (Name:
hf_frei_ID_freischalten).
Die jeweilige ID übernehmen wir dynamisch aus der Datensatzgruppe.
Auch dies geht ganz einfach, indem wir auf das Symbol
im
Eigenschaftsfenster des versteckten Feldes klicken. Es öffnet sich nun folgender
Dialog, wo wir die ID auswählen:
So sieht die Lösung aus:
Pruef mit Wert 1 übergeben
Wir fügen in das Formular ein neues versteckes Feld ein (Name:
hf_frei_freigabe).
Den Wert 1 tragen wir direkt ein.
Lösung:
Schaltfläche Freischalten einfügen
Aus der Symbolleiste Formulare fügen Sie eine Schaltfläche
ein(Beschriftung: Freischalten).
Ergebnis:
Damit wären alle Formularelemente vorhanden, um den jeweiligen Datensatz
aktualisieren zu können. Wenn nun diese Voraussetzung erfüllt sind, können wir
das notwendige Serververhalten (Datensatz aktualisieren) einfügen.
© Mag. Erwin Mayer
Beispiel: Moderiertes Gästebuch
Seite 20/39
Datensatz aktualisieren
Der Cursor befindet sich im nun erstellten Formular (haben wir nicht
unbenannt).
Sie wählen nun aus der Symbolleiste Anwendungen das Symbol
Datensatz aktualisieren aus.
Beachten Sie im folgenden Dialog vor allem folgende Eingaben bzw. Änderungen:
ID weisen wir den Wert unseres versteckten Feldes hf_ID_frei zu.
freigabe weisen wir den Wert des versteckten Feldes hf_frei_freigabe zu.
Nach dem Aktualisieren soll zur selben Datei gb_admin.php gesprungen
werden. Layout siehe unten
Nun können Sie das "Freischalten" testen!
Damit wir das Freischalten auch leicht rückgängig machen können ("Sperren") ist
ein weiteres Formular (form2) notwendig.
Formular zum Sperren erstellen
Der Vorgang gleicht dem Erstellen des Formulars zum Freischalten, mit
folgenden Unterschieden:
ID weisen wir den Wert unseres versteckten Feldes hf _sperr_ID zu.
freigabe weisen wir den Wert (jetzt freigabe = 0)des versteckten Feldes
hf_sperr_freigabe zu.
Nach dem Aktualisieren soll auch wieder zur Datei gb_admin.php gesprungen
werden. Layout siehe oben.
© Mag. Erwin Mayer
Beispiel: Moderiertes Gästebuch
Seite 21/39
Formular zum Löschen erstellen
Man könnte auch einen Link erstellen und die ID mit der GET-Methode (per URLParameter) übergeben. Weil es hier vom Layout her besser passt und auch
einfacher ist werden wir dies per Formular (form3) erledigen.
Darüber hinaus benötigen wir noch eine Datei, ähnlich der
Sie fügen wiederum den Formular-Tag ein und dann einverstecktes Feld
(Name: hf_ID_loesch) mit dynamischen Wert der ID (aus rs_admin).
Datensatz löschen
Sie wählen nun aus der Symbolleiste Anwendungen das Symbol
Datensatz löschen aus.
Es erscheint nun folgender Dialog, den Sie entsprechend ausfüllen:
Der Primärschlüsselwert, die ID, ist in der Formularvariablen hf_ID_loesch
vorhanden!
Unsere fertige Gästebuch-Admin-Seite (im Entwurf):
© Mag. Erwin Mayer
Beispiel: Moderiertes Gästebuch
Seite 22/39
Zugriffsschutz für Administrationsseiten einfügen
Erst wenn die Website ausreichend getestet wurde fügen Sie den Zugriffsschutz
ein. Für die Benutzerauthentifizierung entsprechenden Symbole finden Sie in der
Symbolleiste Daten:
Hier wird eine Session (davon später mehr) gestartet, die bis zum Schließen des
Browsers bzw. bis zum Abmelden erhalten bleibt.
Legen Sie zuerst in phpmyadmin die Tabelle nutzer an und geben Sie
mindestens einen Datensatz ein:
Tabelle: nutzer
ID
Feldname
Feldtype
tinyint(3)
Feldlänge
Zusätze
3
not_null
primary_key
unsigned
auto_increment
benutzername
varchar(255)
30
not_null
passwort
varchar(255)
30
not_null
Datei: gb_login.php
Sie erstellen eine neue Seite, in der Sie eine Tabelle (siehe Abb.) einfügen.
Sie können auch mit dem Einfüge-Assistenten (Assistent: „Einfügeformular für
Datensätze“) arbeiten,
Beachten Sie die Übereinstimmung der Länge der Textfelder mit der Länge der
Datenbankfelder (hier 20)!
Abb.: Benutzeranmeldung (gb_login.php)
© Mag. Erwin Mayer
Beispiel: Moderiertes Gästebuch
Seite 23/39
Serververhalten "Benutzer anmelden" hinzufügen
In die Seite gb_login.php fügen Sie dieses Serververhalten ein:
Abb.: Dialog Benutzer anmelden (gb_login.php)
Datei: gb_admin.php
In der Datei gb_admin.php fügen Sie das Serververhalten „Zugriff auf Seite beschränken“
ein. Dieses Serververhalten wird für alle Seiten eingefügt, für die der Zugriffsschutz gelten
soll.
Darüber hinaus bieten Sie noch die Möglichkeit zu Abmelden (Beendigung der Session).
Serververhalten "Zugriff auf Seite beschränken" einfügen
Dieses Serververhalten fügen Sie in die gb_admin.php ein:
Abb.: Dialog "Zugriff auf Seite beschränken"
© Mag. Erwin Mayer
Beispiel: Moderiertes Gästebuch
Seite 24/39
Serververhalten "Benutzer abmelden"
Dieses Serververhalten fügen Sie auch in die gb_admin.php ein. Nachdem sich der
Administrator abgemeldet hat, soll zur "normalen" Anzeige gesprungen werden.
Abb.: Dialog Benutzer abmelden
Abb.: Verwaltungsseite (gb_admin.php ) mit Link Abmelden
Zum Abschluß sichern Sie die Datenbank (sql-Datei) und testen Sie die Anwendung.
© Mag. Erwin Mayer
Beispiel: Moderiertes Gästebuch
Seite 25/39
Anhang: Quellcode
Datensicherung: gaestebuch2012.sql
---------
phpMyAdmin SQL Dump
version 3.5.2
http://www.phpmyadmin.net
Host: localhost
Erstellungszeit: 03. Nov 2012 um 21:26
Server Version: 5.5.25a
PHP-Version: 5.4.4
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
/*!40101
/*!40101
/*!40101
/*!40101
SET
SET
SET
SET
@OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
@OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
@OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
NAMES utf8 */;
--- Datenbank: `gaestebuch2012`
--- ---------------------------------------------------------- Tabellenstruktur für Tabelle `gaestebuch`
-CREATE TABLE IF NOT EXISTS `gaestebuch` (
`ID` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(20) NOT NULL,
`email` varchar(255) NOT NULL,
`betreff` varchar(255) NOT NULL,
`meldung` text NOT NULL,
`datum` date DEFAULT NULL,
`freigabe` tinyint(3) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=17 ;
--- Daten für Tabelle `gaestebuch`
-INSERT INTO `gaestebuch` (`ID`, `name`, `email`, `betreff`, `meldung`, `datum`,
`freigabe`) VALUES
(6, 'Valentin!', '[email protected]', 'Hi!', 'Wann treffen wir uns?', '2012-09-24', 1),
(7, 'Julius', '[email protected]', 'Ich bin da!', 'Liebe Freunde! Ich bin wieder in
Wien!', '2012-09-24', 1),
(9, 'Walter', '[email protected]', 'Treffen in Wien', 'Auch gibt es
niemanden, der den Schmerz an sich liebt, sucht oder wünscht, nur, weil er Schmerz
ist, es sei denn, es kommt zu zufälligen Umständen, in denen Mühen und Schmerz
ihm große Freude bereiten können. Um ein triviales Beispiel zu nehmen, wer von …
… Aber wer hat irgend ein Recht, einen Menschen zu tadeln, der die Entscheidung
trifft, eine Freude zu genießen, die keine unangenehmen Folgen hat, oder einen,
der Schmerz vermeidet, welcher keine daraus resultierende Freude nach sich
zieht?Alles klar! Ich werde ganz schnell schreiben! Eurer ', '2012-10-08', 1),
(10, 'Armin Harry', '[email protected]', 'Hinweis', 'Alles klar! Ich werde ganz schnell
schreiben! Euer Armin', '2012-10-08', 1),
(11, 'Susanne', '[email protected]', 'Lustig!', 'Hier steht der lustige
Text...', '2012-10-08', 1),
(12, 'hihi', 'hihi', 'hihi', 'hihi', '2012-10-08', 0),
(13, 'hihi', '[email protected]', 'hihi', 'hihi', '2012-10-08', 0),
(15, 'Zorro', '[email protected]', 'Lob!', 'Wunderbares Gästebuch!', '2012-11-03',
1),
© Mag. Erwin Mayer
Beispiel: Moderiertes Gästebuch
Seite 26/39
(16, 'Hermann', '[email protected]', 'Bemerkung', 'Die neue Webseite ist zum
Fürchten', '2012-11-03', 1);
-- ---------------------------------------------------------- Tabellenstruktur für Tabelle `nutzer`
-CREATE TABLE IF NOT EXISTS `nutzer` (
`ID` tinyint(3) unsigned NOT NULL AUTO_INCREMENT,
`benutzername` varchar(255) NOT NULL,
`passwort` varchar(255) NOT NULL,
PRIMARY KEY (`ID`),
KEY `ID` (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;
--- Daten für Tabelle `nutzer`
-INSERT INTO `nutzer` (`ID`, `benutzername`, `passwort`) VALUES
(1, 'mayer', '12345');
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
© Mag. Erwin Mayer
Beispiel: Moderiertes Gästebuch
Seite 27/39
Datenbank: gaestebuch2012
Die Datenbank gaestebuch2012 enthält 2 Tabellen:
Tabelle: gaestebuch
Feldname Feldtype Feldlänge
Zusätze
ID
int
5
not_null primary_key unsigned auto_increment
name
string
20
not_null
email
string
255
not_null
betreff
string
255
not_null
meldung
blob
65535
not_null blob
datum
date
10
binary
freigabe
int
3
not_null unsigned
Die Tabelle gaestebuch enthält 9 Datensätze:
ID
name
email
betreff
meldung
datum freigabe
6
Valentin!
[email protected]
Hi!
Wann treffen wir uns?
2012-091
24
7
Julius
[email protected]
Ich bin da!
Liebe Freunde! Ich bin wieder in
Wien!
2012-091
24
10
Armin
Harry
[email protected]
Hinweis
Alles klar! Ich werde ganz schnell
schreiben! Euer Armin
2012-101
08
11 Susanne
[email protected] Lustig!
Hier steht der lustige Text...
2012-101
08
12 hihi
hihi
hihi
hihi
2012-100
08
13 hihi
[email protected]
hihi
hihi
2012-100
08
15 Zorro
[email protected]
Lob!
Wunderbares Gästebuch!
2012-111
03
16 Hermann
[email protected]
Bemerkung
Die neue Webseite ist zum
Fürchten
2012-111
03
Tabelle: nutzer
Feldname
ID
Feldtype Feldlänge
int
Zusätze
3
not_null primary_key multiple_key unsigned auto_increment
benutzername string
255
not_null
passwort
255
not_null
string
Die Tabelle nutzer enthält 1 Datensatz:
ID benutzername passwort
1
mayer
© Mag. Erwin Mayer
12345
Beispiel: Moderiertes Gästebuch
Seite 28/39
Dateiliste:
gaestebuch.css
gb_admin.php
gb_anzeige.php
gb_eingabe.php
gb_funktionen.inc.php
gb_login.php
gb_verweigert.php
Datei: gaestebuch.css
[01]
[02]
[03]
[04]
[05]
[06]
[07]
[08]
[09]
[10]
[11]
[12]
[13]
[14]
[15]
[16]
body {
font-family: Arial, Helvetica, sans-serif;
background: #FF8080;
}
.gesperrt {
background: #FF0000;
}
.freigegeben {
background: #80FF00;
}
table {
background: #FFFFF2;
}
td {
background: #FFFF00;
}
Datei: gb_admin.php
[01]
[02]
[03]
[04]
[05]
[06]
[07]
[08]
[09]
[10]
[11]
[12]
[13]
[14]
[15]
[16]
[17]
[18]
[19]
[20]
[21]
[22]
[23]
[24]
[25]
[26]
[27]
[28]
[29]
[30]
[31]
[32]
[33]
[34]
[35]
<?php require_once('Connections/vb_gb.php'); ?>
<?php ?>
<?php
//initialize the session
session_start();
// ** Logout the current user. **
$logoutAction = $_SERVER['PHP_SELF']."?doLogout=true";
if ((isset($_SERVER['QUERY_STRING'])) && ($_SERVER['QUERY_STRING'] != "")){
$logoutAction .="&". htmlentities($_SERVER['QUERY_STRING']);
}
if ((isset($_GET['doLogout'])) &&($_GET['doLogout']=="true")){
//to fully log out a visitor we need to clear the session varialbles
#session_unregister('MM_Username');
#session_unregister('MM_UserGroup');
# korrigiert em--------------------------------------------------------session_destroy();
$logoutGoTo = "gb_anzeige.php";
if ($logoutGoTo) {
header("Location: $logoutGoTo");
exit;
}
}
?>
<?php
$MM_authorizedUsers = "";
$MM_donotCheckaccess = "true";
// *** Restrict Access To Page: Grant or deny access to this page
function isAuthorized($strUsers, $strGroups, $UserName, $UserGroup) {
// For security, start by assuming the visitor is NOT authorized.
$isValid = False;
© Mag. Erwin Mayer
Beispiel: Moderiertes Gästebuch
Seite 29/39
[36]
// When a visitor has logged into this site, the Session variable
MM_Username set equal to their username.
[37]
// Therefore, we know that a user is NOT logged in if that Session variable
is blank.
[38]
if (!empty($UserName)) {
[39]
// Besides being logged in, you may restrict access to only certain users
based on an ID established when they login.
[40]
// Parse the strings into arrays.
[41]
$arrUsers = Explode(",", $strUsers);
[42]
$arrGroups = Explode(",", $strGroups);
[43]
if (in_array($UserName, $arrUsers)) {
[44]
$isValid = true;
[45]
}
[46]
// Or, you may restrict access to only certain users based on their
username.
[47]
if (in_array($UserGroup, $arrGroups)) {
[48]
$isValid = true;
[49]
}
[50]
if (($strUsers == "") && true) {
[51]
$isValid = true;
[52]
}
[53]
}
[54]
return $isValid;
[55] }
[56]
[57] $MM_restrictGoTo = "gb_verweigert.php";
[58] if (!((isset($_SESSION['MM_Username'])) &&
(isAuthorized("",$MM_authorizedUsers, $_SESSION['MM_Username'],
$_SESSION['MM_UserGroup'])))) {
[59]
$MM_qsChar = "?";
[60]
$MM_referrer = $_SERVER['PHP_SELF'];
[61]
if (strpos($MM_restrictGoTo, "?")) $MM_qsChar = "&";
[62]
if (isset($QUERY_STRING) && strlen($QUERY_STRING) > 0)
[63]
$MM_referrer .= "?" . $QUERY_STRING;
[64]
$MM_restrictGoTo = $MM_restrictGoTo. $MM_qsChar . "accesscheck=" .
urlencode($MM_referrer);
[65]
header("Location: ". $MM_restrictGoTo);
[66]
exit;
[67] }
[68] ?>
[69] <?php include("gb_funktionen.inc.php"); ?>
[70] <?php
[71] function GetSQLValueString($theValue, $theType, $theDefinedValue = "",
$theNotDefinedValue = "")
[72] {
[73]
$theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;
[74]
[75]
switch ($theType) {
[76]
case "text":
[77]
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
[78]
break;
[79]
case "long":
[80]
case "int":
[81]
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
[82]
break;
[83]
case "double":
[84]
$theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" :
"NULL";
[85]
break;
[86]
case "date":
[87]
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
[88]
break;
[89]
case "defined":
[90]
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
[91]
break;
[92]
}
[93]
return $theValue;
[94] }
[95]
[96] $editFormAction = $_SERVER['PHP_SELF'];
[97] if (isset($_SERVER['QUERY_STRING'])) {
[98]
$editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
[99] }
© Mag. Erwin Mayer
Beispiel: Moderiertes Gästebuch
Seite 30/39
[100]
[101] if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form1")) {
[102]
$updateSQL = sprintf("UPDATE gaestebuch SET freigabe=%s WHERE ID=%s",
[103]
GetSQLValueString($_POST['hf_frei_freigabe'], "int"),
[104]
GetSQLValueString($_POST['hf_ID_frei'], "int"));
[105]
[106]
mysql_select_db($database_vb_gb, $vb_gb);
[107]
$Result1 = mysql_query($updateSQL, $vb_gb) or die(mysql_error());
[108]
[109]
$updateGoTo = "gb_admin.php";
[110]
if (isset($_SERVER['QUERY_STRING'])) {
[111]
$updateGoTo .= (strpos($updateGoTo, '?')) ? "&" : "?";
[112]
$updateGoTo .= $_SERVER['QUERY_STRING'];
[113]
}
[114]
header(sprintf("Location: %s", $updateGoTo));
[115] }
[116]
[117] if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form2")) {
[118]
$updateSQL = sprintf("UPDATE gaestebuch SET freigabe=%s WHERE ID=%s",
[119]
GetSQLValueString($_POST['hf_sperr_freigabe'],
"int"),
[120]
GetSQLValueString($_POST['hf_sperr_ID'], "int"));
[121]
[122]
mysql_select_db($database_vb_gb, $vb_gb);
[123]
$Result1 = mysql_query($updateSQL, $vb_gb) or die(mysql_error());
[124]
[125]
$updateGoTo = "gb_admin.php";
[126]
if (isset($_SERVER['QUERY_STRING'])) {
[127]
$updateGoTo .= (strpos($updateGoTo, '?')) ? "&" : "?";
[128]
$updateGoTo .= $_SERVER['QUERY_STRING'];
[129]
}
[130]
header(sprintf("Location: %s", $updateGoTo));
[131] }
[132]
[133] if ((isset($_POST['ID'])) && ($_POST['ID'] != "")) {
[134]
$deleteSQL = sprintf("DELETE FROM gaestebuch WHERE ID=%s",
[135]
GetSQLValueString($_POST['ID'], "int"));
[136]
[137]
mysql_select_db($database_vb_gb, $vb_gb);
[138]
$Result1 = mysql_query($deleteSQL, $vb_gb) or die(mysql_error());
[139]
[140]
$deleteGoTo = "gb_admin.php";
[141]
if (isset($_SERVER['QUERY_STRING'])) {
[142]
$deleteGoTo .= (strpos($deleteGoTo, '?')) ? "&" : "?";
[143]
$deleteGoTo .= $_SERVER['QUERY_STRING'];
[144]
}
[145]
header(sprintf("Location: %s", $deleteGoTo));
[146] }
[147]
[148] mysql_select_db($database_vb_gb, $vb_gb);
[149] $query_rs_admin = "SELECT * FROM gaestebuch ORDER BY ID DESC";
[150] $rs_admin = mysql_query($query_rs_admin, $vb_gb) or die(mysql_error());
[151] $row_rs_admin = mysql_fetch_assoc($rs_admin);
[152] $totalRows_rs_admin = mysql_num_rows($rs_admin);
[153] ?>
[154] <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
[155] <html>
[156] <head>
[157] <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
[158] <title>Administration Gästebuch</title>
[159] <link href="gaestebuch.css" rel="stylesheet" type="text/css">
[160] </head>
[161]
[162] <body>
[163] <h1>Administration Gästebuch</h1>
[164] <p> <a href="<?php echo $logoutAction ?>">Abmelden</a></p>
[165] <?php do { ?>
[166] <div id="datensatz">
[167]
<table width="80%" border="0" cellpadding="2" class="<?php echo
gesperrt($row_rs_admin['freigabe']); ?>">
[168]
<tr>
[169]
<td><?php echo $row_rs_admin['name']; ?></td>
© Mag. Erwin Mayer
Beispiel: Moderiertes Gästebuch
Seite 31/39
[170]
<td><?php echo $row_rs_admin['email']; ?></td>
[171]
<td><?php echo dtdatum($row_rs_admin['datum']); ?></td>
[172]
<td><?php echo gesperrt($row_rs_admin['freigabe']); ?></td>
[173]
</tr>
[174]
<tr>
[175]
<td colspan="4"><?php echo $row_rs_admin['betreff']; ?></td>
[176]
</tr>
[177]
<tr>
[178]
<td colspan="4"><?php echo $row_rs_admin['meldung']; ?></td>
[179]
</tr>
[180]
<tr>
[181]
<td><form name="form1" method="POST" action="<?php echo
$editFormAction; ?>">
[182]
<input name="hf_ID_frei" type="hidden" id="hf_ID_frei" value="<?php
echo $row_rs_admin['ID']; ?>">
[183]
<input name="hf_frei_freigabe" type="hidden" id="hf_frei_freigabe"
value="1">
[184]
<input type="submit" name="Submit" value="freischalten">
[185]
<input type="hidden" name="MM_update" value="form1">
[186]
</form></td>
[187]
<td><form name="form2" method="POST" action="<?php echo
$editFormAction; ?>">
[188]
<input name="hf_sperr_ID" type="hidden" id="hf_sperr_ID"
value="<?php echo $row_rs_admin['ID']; ?>">
[189]
<input name="hf_sperr_freigabe" type="hidden" id="hf_sperr_freigabe"
value="0">
[190]
<input type="submit" name="Submit2" value="sperren">
[191]
<input type="hidden" name="MM_update" value="form2">
[192]
</form></td>
[193]
<td><form name="form3" method="post" action="">
[194]
<input name="hf_ID_loesch" type="hidden" id="hf_ID_loesch"
value="<?php echo $row_rs_admin['ID']; ?>">
[195]
<input type="submit" name="Submit3" value="Löschen">
[196]
</form></td>
[197]
<td> </td>
[198]
</tr>
[199]
</table>
[200]
<p> </p>
[201] </div>
[202] <?php } while ($row_rs_admin = mysql_fetch_assoc($rs_admin)); ?>
[203] <p> </p>
[204] </body>
[205] </html>
[206] <?php
[207] mysql_free_result($rs_admin);
[208] ?>
Datei: gb_anzeige.php
[01] <?php require_once('Connections/vb_gb.php'); ?>
[02] <?php
[03] $currentPage = $_SERVER["PHP_SELF"];
[04]
[05] $maxRows_rs_ausgabe = 3;
[06] $pageNum_rs_ausgabe = 0;
[07] if (isset($_GET['pageNum_rs_ausgabe'])) {
[08]
$pageNum_rs_ausgabe = $_GET['pageNum_rs_ausgabe'];
[09] }
[10] $startRow_rs_ausgabe = $pageNum_rs_ausgabe * $maxRows_rs_ausgabe;
[11]
[12] mysql_select_db($database_vb_gb, $vb_gb);
[13] $query_rs_ausgabe = "SELECT * FROM gaestebuch WHERE freigabe = 1 ORDER BY ID
DESC";
[14] $query_limit_rs_ausgabe = sprintf("%s LIMIT %d, %d", $query_rs_ausgabe,
$startRow_rs_ausgabe, $maxRows_rs_ausgabe);
[15] $rs_ausgabe = mysql_query($query_limit_rs_ausgabe, $vb_gb) or
die(mysql_error());
[16] $row_rs_ausgabe = mysql_fetch_assoc($rs_ausgabe);
[17]
[18] if (isset($_GET['totalRows_rs_ausgabe'])) {
[19]
$totalRows_rs_ausgabe = $_GET['totalRows_rs_ausgabe'];
[20] } else {
[21]
$all_rs_ausgabe = mysql_query($query_rs_ausgabe);
© Mag. Erwin Mayer
Beispiel: Moderiertes Gästebuch
Seite 32/39
[22]
$totalRows_rs_ausgabe = mysql_num_rows($all_rs_ausgabe);
[23] }
[24] $totalPages_rs_ausgabe = ceil($totalRows_rs_ausgabe/$maxRows_rs_ausgabe)-1;
[25]
[26] $queryString_rs_ausgabe = "";
[27] if (!empty($_SERVER['QUERY_STRING'])) {
[28]
$params = explode("&", $_SERVER['QUERY_STRING']);
[29]
$newParams = array();
[30]
foreach ($params as $param) {
[31]
if (stristr($param, "pageNum_rs_ausgabe") == false &&
[32]
stristr($param, "totalRows_rs_ausgabe") == false) {
[33]
array_push($newParams, $param);
[34]
}
[35]
}
[36]
if (count($newParams) != 0) {
[37]
$queryString_rs_ausgabe = "&" . htmlentities(implode("&", $newParams));
[38]
}
[39] }
[40] $queryString_rs_ausgabe = sprintf("&totalRows_rs_ausgabe=%d%s",
$totalRows_rs_ausgabe, $queryString_rs_ausgabe);
[41] ?>
[42] <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
[43] <html>
[44] <head>
[45] <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
[46] <title>Gästebuch Anzeige</title>
[47] <link href="gaestebuch.css" rel="stylesheet" type="text/css">
[48] </head>
[49]
[50] <body>
[51] <h1>Unser Gästebuch</h1>
[52] <p><a href="gb_eingabe.php">Eingeben</a></p>
[53] <?php do { ?>
[54] <table width="80%" border="0" cellpadding="2">
[55]
<tr>
[56]
<td><?php echo $row_rs_ausgabe['name']; ?></td>
[57]
<td><?php echo $row_rs_ausgabe['email']; ?></td>
[58]
<td><?php echo $row_rs_ausgabe['datum']; ?></td>
[59]
</tr>
[60]
<tr>
[61]
<td colspan="3"><strong><?php echo $row_rs_ausgabe['betreff'];
?></strong></td>
[62]
</tr>
[63]
<tr>
[64]
<td colspan="3"><?php echo $row_rs_ausgabe['meldung']; ?></td>
[65]
</tr>
[66] </table>
[67] <p> </p>
[68] <?php } while ($row_rs_ausgabe = mysql_fetch_assoc($rs_ausgabe)); ?>
[69] <p>
[70] <table border="0" align="center">
[71]
<tr>
[72]
<td align="center"><?php if ($pageNum_rs_ausgabe > 0) { // Show if not
first page ?>
[73]
<a href="<?php printf("%s?pageNum_rs_ausgabe=%d%s", $currentPage, 0,
$queryString_rs_ausgabe); ?>"><img src="First.gif" border=0></a>
[74]
<?php } // Show if not first page ?>
[75]
</td>
[76]
<td align="center"><?php if ($pageNum_rs_ausgabe > 0) { // Show if not
first page ?>
[77]
<a href="<?php printf("%s?pageNum_rs_ausgabe=%d%s", $currentPage,
max(0, $pageNum_rs_ausgabe - 1), $queryString_rs_ausgabe); ?>"><img
src="Previous.gif" border=0></a>
[78]
<?php } // Show if not first page ?>
[79]
</td>
[80]
<td align="center"><?php if ($pageNum_rs_ausgabe <
$totalPages_rs_ausgabe) { // Show if not last page ?>
[81]
<a href="<?php printf("%s?pageNum_rs_ausgabe=%d%s", $currentPage,
min($totalPages_rs_ausgabe, $pageNum_rs_ausgabe + 1), $queryString_rs_ausgabe);
?>"><img src="Next.gif" border=0></a>
[82]
<?php } // Show if not last page ?>
[83]
</td>
© Mag. Erwin Mayer
Beispiel: Moderiertes Gästebuch
Seite 33/39
[84]
<td align="center"><?php if ($pageNum_rs_ausgabe <
$totalPages_rs_ausgabe) { // Show if not last page ?>
[85]
<a href="<?php printf("%s?pageNum_rs_ausgabe=%d%s", $currentPage,
$totalPages_rs_ausgabe, $queryString_rs_ausgabe); ?>"><img src="Last.gif"
border=0></a>
[86]
<?php } // Show if not last page ?>
[87]
</td>
[88]
</tr>
[89] </table>
[90] </p>
[91] <p>Datensätze <?php echo ($startRow_rs_ausgabe + 1)
?> bis <?php echo min($startRow_rs_ausgabe + $maxRows_rs_ausgabe,
$totalRows_rs_ausgabe) ?> von  <?php echo $totalRows_rs_ausgabe ?>
[92] <p> </p>
[93] </body>
[94] </html>
[95] <?php
[96] mysql_free_result($rs_ausgabe);
[97] ?>
Datei: gb_eingabe.php
[01] <?php require_once('Connections/vb_gb.php'); ?>
[02] <?php
[03] function GetSQLValueString($theValue, $theType, $theDefinedValue = "",
$theNotDefinedValue = "")
[04] {
[05]
$theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;
[06]
[07]
switch ($theType) {
[08]
case "text":
[09]
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
[10]
break;
[11]
case "long":
[12]
case "int":
[13]
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
[14]
break;
[15]
case "double":
[16]
$theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" :
"NULL";
[17]
break;
[18]
case "date":
[19]
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
[20]
break;
[21]
case "defined":
[22]
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
[23]
break;
[24]
}
[25]
return $theValue;
[26] }
[27]
[28] $editFormAction = $_SERVER['PHP_SELF'];
[29] if (isset($_SERVER['QUERY_STRING'])) {
[30]
$editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
[31] }
[32]
[33] if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
[34]
$insertSQL = sprintf("INSERT INTO gaestebuch (name, email, betreff,
meldung, datum, freigabe) VALUES (%s, %s, %s, %s, %s, %s)",
[35]
GetSQLValueString($_POST['name'], "text"),
[36]
GetSQLValueString($_POST['email'], "text"),
[37]
GetSQLValueString($_POST['betreff'], "text"),
[38]
GetSQLValueString($_POST['meldung'], "text"),
[39]
GetSQLValueString($_POST['hf_datum'], "date"),
[40]
GetSQLValueString($_POST['hf_freigabe'], "int"));
[41]
[42]
mysql_select_db($database_vb_gb, $vb_gb);
[43]
$Result1 = mysql_query($insertSQL, $vb_gb) or die(mysql_error());
[44]
[45]
$insertGoTo = "gb_anzeige.php";
[46]
if (isset($_SERVER['QUERY_STRING'])) {
[47]
$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
[48]
$insertGoTo .= $_SERVER['QUERY_STRING'];
© Mag. Erwin Mayer
Beispiel: Moderiertes Gästebuch
Seite 34/39
[49]
}
[50]
header(sprintf("Location: %s", $insertGoTo));
[51] }
[52]
[53] mysql_select_db($database_vb_gb, $vb_gb);
[54] $query_rs_eingabe = "SELECT * FROM gaestebuch";
[55] $rs_eingabe = mysql_query($query_rs_eingabe, $vb_gb) or die(mysql_error());
[56] $row_rs_eingabe = mysql_fetch_assoc($rs_eingabe);
[57] $totalRows_rs_eingabe = mysql_num_rows($rs_eingabe);
[58] ?>
[59] <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
[60] <html>
[61] <head>
[62] <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
[63] <title>Gästebuch Eingabe</title>
[64] <link href="gaestebuch.css" rel="stylesheet" type="text/css">
[65] <script language="JavaScript" type="text/JavaScript">
[66] <!-[67] function MM_findObj(n, d) { //v4.01
[68]
var p,i,x; if(!d) d=document;
if((p=n.indexOf("?"))>0&&parent.frames.length) {
[69]
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
[70]
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++)
x=d.forms[i][n];
[71]
for(i=0;!x&&d.layers&&i<d.layers.length;i++)
x=MM_findObj(n,d.layers[i].document);
[72]
if(!x && d.getElementById) x=d.getElementById(n); return x;
[73] }
[74]
[75] function YY_checkform() { //v4.65
[76] //copyright (c)1998,2002 Yaromat.com
[77]
var args = YY_checkform.arguments; var myDot=true; var myV=''; var
myErr='';var addErr=false;var myReq;
[78]
for (var i=1; i<args.length;i=i+4){
[79]
if (args[i+1].charAt(0)=='#'){myReq=true;
args[i+1]=args[i+1].substring(1);}else{myReq=false}
[80]
var myObj = MM_findObj(args[i].replace(/\[\d+\]/ig,""));
[81]
myV=myObj.value;
[82]
if (myObj.type=='text'||myObj.type=='password'||myObj.type=='hidden'){
[83]
if (myReq&&myObj.value.length==0){addErr=true}
[84]
if ((myV.length>0)&&(args[i+2]==1)){ //fromto
[85]
var
myMa=args[i+1].split('_');if(isNaN(parseInt(myV))||myV<myMa[0]/1||myV >
myMa[1]/1){addErr=true}
[86]
} else if ((myV.length>0)&&(args[i+2]==2)){
[87]
var rx=new RegExp("^[\\w\.=-]+@[\\w\\.-]+\\.[az]{2,4}$");if(!rx.test(myV))addErr=true;
[88]
} else if ((myV.length>0)&&(args[i+2]==3)){ // date
[89]
var myMa=args[i+1].split("#"); var myAt=myV.match(myMa[0]);
[90]
if(myAt){
[91]
var myD=(myAt[myMa[1]])?myAt[myMa[1]]:1; var myM=myAt[myMa[2]]-1;
var myY=myAt[myMa[3]];
[92]
var myDate=new Date(myY,myM,myD);
[93]
if(myDate.getFullYear()!=myY||myDate.getDate()!=myD||myDate.getMonth()!=myM){addErr
=true};
[94]
}else{addErr=true}
[95]
} else if ((myV.length>0)&&(args[i+2]==4)){ // time
[96]
var myMa=args[i+1].split("#"); var
myAt=myV.match(myMa[0]);if(!myAt){addErr=true}
[97]
} else if (myV.length>0&&args[i+2]==5){ // check this 2
[98]
var myObj1 = MM_findObj(args[i+1].replace(/\[\d+\]/ig,""));
[99]
if(myObj1.length)myObj1=myObj1[args[i+1].replace(/(.*\[)|(\].*)/ig,"")];
[100]
if(!myObj1.checked){addErr=true}
[101]
} else if (myV.length>0&&args[i+2]==6){ // the same
[102]
var myObj1 = MM_findObj(args[i+1]);
[103]
if(myV!=myObj1.value){addErr=true}
[104]
}
[105]
} else
[106]
if (!myObj.type&&myObj.length>0&&myObj[0].type=='radio'){
[107]
var myTest = args[i].match(/(.*)\[(\d+)\].*/i);
© Mag. Erwin Mayer
Beispiel: Moderiertes Gästebuch
Seite 35/39
[108]
var myObj1=(myObj.length>1)?myObj[myTest[2]]:myObj;
[109]
if
(args[i+2]==1&&myObj1&&myObj1.checked&&MM_findObj(args[i+1]).value.length/1==0){add
Err=true}
[110]
if (args[i+2]==2){
[111]
var myDot=false;
[112]
for(var j=0;j<myObj.length;j++){myDot=myDot||myObj[j].checked}
[113]
if(!myDot){myErr+='* ' +args[i+3]+'\n'}
[114]
}
[115]
} else if (myObj.type=='checkbox'){
[116]
if(args[i+2]==1&&myObj.checked==false){addErr=true}
[117]
if(args[i+2]==2&&myObj.checked&&MM_findObj(args[i+1]).value.length/1==0){addErr=tru
e}
[118]
} else if (myObj.type=='select-one'||myObj.type=='select-multiple'){
[119]
if(args[i+2]==1&&myObj.selectedIndex/1==0){addErr=true}
[120]
}else if (myObj.type=='textarea'){
[121]
if(myV.length<args[i+1]){addErr=true}
[122]
}
[123]
if (addErr){myErr+='* '+args[i+3]+'\n'; addErr=false}
[124]
}
[125]
if (myErr!=''){alert('Die gewünschte Information ist unvollständig oder
enthält Fehler:\t\t\t\t\t\n\n'+myErr)}
[126]
document.MM_returnValue = (myErr=='');
[127] }
[128] //-->
[129] </script>
[130] </head>
[131]
[132] <body>
[133] <h1>Unser Gästebuch</h1>
[134] <p><a href="gb_anzeige.php">Anzeigen</a></p>
[135] <h3>Eingabeformular</h3>
[136] <p>  </p>
[137]
[138] <form action="<?php echo $editFormAction; ?>" method="post" name="form1"
onSubmit="YY_checkform('form1','name','#q','0','Name muß vorhanden
sein.','email','#S','2','Ist keine E-Mail-Adresse','betreff','#q','0','Betreff muß
eingegeben werden');return document.MM_returnValue">
[139]
<table align="center">
[140]
<tr valign="baseline">
[141]
<td nowrap align="right">Name:</td>
[142]
<td><input type="text" name="name" value="" size="32"></td>
[143]
</tr>
[144]
<tr valign="baseline">
[145]
<td nowrap align="right">Email:</td>
[146]
<td><input type="text" name="email" value="" size="32"></td>
[147]
</tr>
[148]
<tr valign="baseline">
[149]
<td nowrap align="right">Betreff:</td>
[150]
<td><input type="text" name="betreff" value="" size="32"></td>
[151]
</tr>
[152]
<tr valign="baseline">
[153]
<td nowrap align="right" valign="top">Meldung:
[154] </td>
[155]
<td><textarea name="meldung" cols="32" rows="3"></textarea></td>
[156]
</tr>
[157]
<tr valign="baseline">
[158]
<td nowrap align="right"><input name="hf_freigabe" type="hidden"
id="hf_freigabe" value="0">
[159]
<input name="hf_datum" type="hidden" id="hf_datum" value="<?php echo
date('Y.m.d'); ?>"></td>
[160]
<td><input type="submit" value="Datensatz einfügen"></td>
[161]
</tr>
[162]
</table>
[163]
<input type="hidden" name="MM_insert" value="form1">
[164] </form>
[165] <p> </p>
[166] </body>
[167] </html>
[168] <?php
[169] mysql_free_result($rs_eingabe);
[170] ?>
© Mag. Erwin Mayer
Beispiel: Moderiertes Gästebuch
Seite 36/39
Datei: gb_funktionen.inc.php
[01] <?php
[02] function gesperrt($freigabe)
[03]
{
[04]
# Funktion zur Steuerung der Ausgabe des Kennzeichens "freigabe" der
Datenbank-Tabelle gaestebuch
[05]
if ($freigabe == 0)
[06]
{
[07]
return "gesperrt";
[08]
}
[09]
if ($freigabe == 1)
[10]
{
[11]
return "freigegeben";
[12]
}
[13]
}
[14]
[15] function dtdatum($datum)
[16]
{
[17]
# gibt das Datenbankdatum auf Deutsch in Langform aus
[18]
# Ausgangsdatum Datum der DB im Format JJJJ-MM-TT z. B 2012-10-15
[19]
# Zieldatum: Sa, 15. Oktober 2012
[20]
setlocale(LC_ALL,"german");
[21]
$jahr = substr($datum,0,4);
[22]
$monat = substr($datum,5,2);
[23]
$tag = substr($datum,8,2);
[24]
return strftime("%a, %d. %b %Y",mktime(0,0,0,$monat,$tag,$jahr));
[25]
[26]
}
[27]
[28] ?>
Datei: gb_login.php
[01] <?php
[02] session_start();
[03] ?>
[04] <?php require_once('Connections/vb_gb.php'); ?>
[05] <?php
[06] mysql_select_db($database_vb_gb, $vb_gb);
[07] $query_rs_zugang = "SELECT * FROM nutzer";
[08] $rs_zugang = mysql_query($query_rs_zugang, $vb_gb) or die(mysql_error());
[09] $row_rs_zugang = mysql_fetch_assoc($rs_zugang);
[10] $totalRows_rs_zugang = mysql_num_rows($rs_zugang);
[11] ?>
[12] <?php
[13] // *** Validate request to login to this site.
[14] #session_start();
[15]
[16] $loginFormAction = $_SERVER['PHP_SELF'];
[17] if (isset($accesscheck)) {
[18]
$GLOBALS['PrevUrl'] = $accesscheck;
[19]
session_register('PrevUrl');
[20] }
[21]
[22] if (isset($_POST['benutzername'])) {
[23]
$loginUsername=$_POST['benutzername'];
[24]
$password=$_POST['passwort'];
[25]
$MM_fldUserAuthorization = "";
[26]
$MM_redirectLoginSuccess = "gb_admin.php";
[27]
$MM_redirectLoginFailed = "gb_verweigert.php";
[28]
$MM_redirecttoReferrer = false;
[29]
mysql_select_db($database_vb_gb, $vb_gb);
[30]
[31]
$LoginRS__query=sprintf("SELECT benutzername, passwort FROM nutzer WHERE
benutzername='%s' AND passwort='%s'",
[32]
get_magic_quotes_gpc() ? $loginUsername : addslashes($loginUsername),
get_magic_quotes_gpc() ? $password : addslashes($password));
[33]
[34]
$LoginRS = mysql_query($LoginRS__query, $vb_gb) or die(mysql_error());
[35]
$loginFoundUser = mysql_num_rows($LoginRS);
[36]
if ($loginFoundUser) {
[37]
$loginStrGroup = "";
© Mag. Erwin Mayer
Beispiel: Moderiertes Gästebuch
Seite 37/39
[38]
[39]
//declare two session variables and assign them
[40]
# korrigiert em
[41]
$_SESSION['MM_Username'] = $loginUsername;
[42]
$_SESSION['MM_UserGroup'] = $loginStrGroup;
[43]
[44]
//register the session variables
[45]
# session_register('MM_Username');
[46]
#session_register('MM_UserGroup');
[47]
[48]
if (isset($_SESSION['PrevUrl']) && false) {
[49]
$MM_redirectLoginSuccess = $_SESSION['PrevUrl'];
[50]
}
[51]
header("Location: " . $MM_redirectLoginSuccess );
[52]
}
[53]
else {
[54]
header("Location: ". $MM_redirectLoginFailed );
[55]
}
[56] }
[57] ?>
[58] <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
[59] <html>
[60] <head>
[61] <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
[62] <title>Anmeldung Gästebuch</title>
[63] <link href="gaestebuch.css" rel="stylesheet" type="text/css">
[64] </head>
[65]
[66] <body>
[67] <h1>Anmeldung</h1>
[68] <form name="form1" method="POST" action="<?php echo $loginFormAction; ?>">
[69]
<table border="0" cellpadding="2">
[70]
<tr>
[71]
<td scope="col">Benutzername</td>
[72]
<th scope="col"><input name="benutzername" type="text"
id="benutzername"></th>
[73]
</tr>
[74]
<tr>
[75]
<td>Passwort</td>
[76]
<td><input name="passwort" type="password" id="passwort"></td>
[77]
</tr>
[78]
<tr>
[79]
<td> </td>
[80]
<td><input type="submit" name="Submit" value="Anmelden"></td>
[81]
</tr>
[82]
</table>
[83] </form>
[84] <p>  </p>
[85] </body>
[86] </html>
[87] <?php
[88] mysql_free_result($rs_zugang);
[89] ?>
Datei: gb_verweigert.php
[01] <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
[02] <html>
[03] <head>
[04] <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
[05] <title>Zugriff verweigert</title>
[06] <link href="gaestebuch.css" rel="stylesheet" type="text/css">
[07] </head>
[08]
[09] <body>
[10] <h1>Zugriff verweigert</h1>
[11] <p><a href="gb_login.php">Zur Anmeldung</a></p>
[12] </body>
[13] </html>
?php
# FileName="Connection_php_mysql.htm"
© Mag. Erwin Mayer
Beispiel: Moderiertes Gästebuch
Seite 38/39
Datei: connections/vb_gb.php
# Type="MYSQL"
# HTTP="true"
define("local","TRUE"); #lokale Ausführung
#define("local","FALSE"); #Ausführung am Webserver
if (local)
{
$hostname_vb_gb = "localhost";
$database_vb_gb = "gaestebuch2012";
$username_vb_gb = "root";
$password_vb_gb = "";
}
else
{
# Datenbank, Benutzername und Passwort des Webservers
$hostname_vb_gb = "localhost";
$database_vb_gb = "gb2012";
$username_vb_gb = "xyxyxy";
$password_vb_gb = "geheim";
}
$vb_gb = mysql_pconnect($hostname_vb_gb, $username_vb_gb, $password_vb_gb) or
trigger_error(mysql_error(),E_USER_ERROR);
?>
© Mag. Erwin Mayer
Beispiel: Moderiertes Gästebuch
Seite 39/39
Herunterladen