|
|
PHP & MySQL: Gästebuch v1.4 |
UmfrageHat Ihnen dieses Script geholfen? |
||
Gästebuch, FunktionAuf vielen Webseiten wird gerne ein Gästebuch geführt, um so
eine bessere "Kundenbindung" zu erzielen. Für die Programmierung des Gästebuches benötigen wir zwei Dateien und eine Datenbanktabelle. Als erstes erstellen wir, am Besten mit phpMyAdmin, in der
MySQL-Datenbank unsere Tabelle mit einem Datensatz. In phpMyAdmin öffnen wir die Seite SQL. Nun kopieren wir den Inhalt des
gesamten untenstehenden Scripts in das Feld SQL und drücken OK.
Dadurch erstellt phpMyAdmin die benötigte Tabelle. Generell: es ist immer besser, zuerst die Tabellen zu erstellen. Auch einen ersten Datensatz sollte immer gleich in die Tabellen, um so die php-Skripte einfach auf ihre Funktion prüfen zu können. Code MySQL - DatenbankPHP:Gästebuch v1.4, MySQL - Datenbank
Script Update:
29.04.08
Erklärungen zum CodeZu den Zeilen: 1: Hier steht als Kommentar der Inhalt dieses Scriptes. Dieser könnte auch weggelassen werden. 3 - 12: Die Definition unserer Tabelle 4: Die ID wird festgelegt, zudem wird angeben, dass diese sich
selbst vergibt mittels einem Zähler (auto_increment). 5: Es folgt das Feld "vname" mit dem Vornamen. Dieses Feld ist 40 Zeichen lang und muss keinen Inhalt haben. 6 - 8: Es folgen der Nachname, das Ort und die E-Mail-Adresse. 9: Es kommt der eigentliche Gästebucheintrag, wir haben den Feldtyp "text" verwendet, was 65535 Zeichen zulassen würde. Man könnte auch den Feldtyp "tinytext" verwenden, dies würde jedoch nur 255 Zeichen zulassen. 10: Mit "timestamp" wird das Speicherdatum des Beitrages festgehalten. Nun erstellen wir mit einem Editor eine Datei "gaestebuch.php"
und fügen folgendes Script ein: Code GästebuchErklärungen zum CodeZu den Zeilen: 1 - 6: Hier der nicht vollständige head-Teil. Dazu kann der Quelltext dieser Seite betrachtet werden. 5: Hier fügen wir das JavaScript ein, das uns den Mauszeiger in das Feld Nachname stellt. Eine Funktionalität die nicht zwingend erforderlich ist. Wir benötigen daraus nur die Funktion "startnname()". Das Script unter: formpruef-de.js 8: Nun eröffnen wir den body-Teil. Mit "onload" aktivieren wir mit dem eingebundenen JavaScript die Funktion um den Mauszeiger in das Feld Nachname zu bringen. 11: Jetzt inkludieren wir den Zugang zu unserer Datenbank. Dieser
sollte immer in einer eigenen Datei sein, um so bei einer Änderung
der Zugangsdaten diesen nur an einem Ort anzupassen. 12: Die ausgelagerten Funktionen werden eingebunden. Wir benötigen nur die Überprüfung der E-Mail-Adresse. 15 - 16: Wir setzen alle Variablen auf NULL, die wir in der nachfolgenden if-Anweisung allenfalls ändern. 19: Formulare können gespamt werden, um dies zumindest teilweise zu
verhindern, geben wir dem Formular eine dauernd ändernde Nummer mit. 21 - 94: Es folgt der Teil, der ausgeführt wird, wenn wir das Formular abschicken. 24 - 27: Mit $_POST[' '] werden die Variablen aus dem Formular übernommen und auf ihre Maximallänge überprüft. Sollten die Variablen länger sein, so wurde getrickst und wir brechen sofort ab! 29: Wir prüfen, ob die in Zeile 19 generierte Nummer auch richtig ist. Ist diese falsch, so wird der ganze Abauf mit "die" gleich gestoppt. 32 - 36: Wir entfernen aus allen Eingabefeldern allenfalls
vorhandene Tags, mit der Funktion "strip_tags". So ist es nicht
möglich irgendwelche Formatierungen (fett, unterstrichen) oder
funktionsfähige Links in die Felder einzugeben. 39: Sollten im Beitrag Worte mit mehr als 50 Zeichen eingegeben werden, so wird automatisch ein Zeilenumbruch eingefügt, um zu verhindern, dass dadurch die Webseitendarstellung verschlechtert wird. 41: Zu oft werden zwischen den Wörtern zuviele Leerstellen eingegeben, wir versuchen dies zu verbessern, indem immer automatisch aus zwei Lerstellen nacheinander nur eine gebildet wird. 44 - 52: Wir prüfen, ob die Pflichtfelder auch
ausgefüllt wurden. 47 - 51: Nun prüfen wir als Erstes, ob eine E-Mail-Adresse
eingegeben wurde, falls ja, prüfen wir diese mit der eingebundenen
Funktion "check_email". Diese Funktion haben wir in Zeile 12 eingebunden. 55 - 93: Die Mails werden versendet und der Datenbankeintrag
vorgenommen, sofern die Bedingungen in Zeile 55 erfüllt sind. 57 - 78: Die Mails werden generiert. 57 - 62: Der "header" der Mails wird formatiert. Die Mailadresse
ist anzupasse! 64 - 68: Nun erstellen wir den Text, der an den Webmaster gesendet wird. 69: Der Text wird zusammengefügt. 71: Das Mail an den Webmaster wird versendet. 73 - 78: Wir senden, sofern eine E-Mail-Adresse eingetragen
wurde, ein Bestätigungsmail an den Verfasser des Gästebucheintrages. 81 - 83: Wir fügen den Gästebucheintrag in die MySQL-Datenbank ein. 85: Möchten wir, dass der Eintrag auch für den Newsletterversand erfolgt, so fügen wir folgendes hier ein: PHP:Gästebuch v1.4, Newsletter-Teil
Script Update:
14.03.07
Zusätzlich muss natürlich auch in der MySQL-Datenbank eine weitere Tabelle eingefügt werden. Prinzipielle können wir das gleiche Script verwenden wie zu Erstellung des Gästebuches. Zu ändern ist: in Zeile 3 und 16 der Name in "newsletter", in Zeile 4 und 16 die "id_gaesteb" in z.B. "id_newsl", die Zeile 9 wird entfernt und in den Zeilen 16 und 17 wird der Beitrag entfernt. 87 - 89: Wir bestätigen den korrekten Eintrag. 92: Wir leeren alle Variablen die den Inhalt der Gästebucheintragungen enthalten, um so das Formular nun leer anzeigen zu lassen. 98 - 144: Es folgt das Formular. Als erstes legen wir die übliche Übergabemethode fest (method="post"), dann was zu geschehen hat, wenn wir das Formular absenden. Mit php bestimmen wir, dass die selbe Seite erneut aufgerufen wird. Die Angabe "name="meldung"" benötigen wir für das JavaScript, das uns den Mauszeiger in das erste Feld stellt. Nun werden die einzelnen Formularteile gefüllt, betrachten wir beispielhaft
das erste Feld. 108: Es erscheint allenfalls die entsprechende Fehlermeldung. Ist kein Fehler
vorhanden, ist die Variable NULL und somit erscheint auch keine Anzeige. 139: Der Code wird dem Formular mitgegeben. 140: Wir versenden das Formular. 152: Wir selektieren unsere Gästebucheinträge. 154: Die Anzahl Datensätze wird errechnet. 156 - 181: Die Schlaufe wird nun so oft durchlaufen, bis alle Eintragungen angezeigt sind. 179: Die php-Funktion "nl2br" wandelt die Zeilenumbrüche aus der Datenbankeintragung in korrekten HTML-Code um. 182: Wir schliessen die Verbindung zur Datenbank. 188 - 191: Die auf der Seite selbst nicht angezeigte Quellenangabe, ist nicht nur die Bedingung zur freien Nutzung dieses Skriptes, sondern ermöglicht auch in Zukunft, allenfalls benötigte Hilfe zu erhalten. Nun ist das Gästebuch bereits funktionsfähig. Code Gästebuch löschenPHP:Gästebuch löschen v1.4
Script Update:
29.04.08
Erklärungen zum CodeDieses Script hat mit dem eigentlichen Gästebuch viel gemeinsam. Wir gehen nun nur auf die neuen Teile ein. 4: Wir teilen den Suchmaschinen mit, dass wir keine Indizierung dieser Seite wünschen. 13 - 17: Es erfolgt das Löschen des Datensatzes mit der
entsprechenden ID, sofern ein Löschbutton angeklickt wurde. 48 - 51: Wir fügen ein Formular ein, das nur aus einem Button besteht. 66: Wir schliessen die Verbindung zur Datenbank. Die Datei zum Löschen der Gästebucheintragungen muss geschützt werden,
um so zu verhindern, dass jedermann die Eintragungen löschen kann. 1. Die Datei bekommt einen möglichst komplizierten Namen und wird
von keiner anderen Seiten verlinkt. 2. Die Datei liegt in einem .htaccess geschützten Bereich. Somit ist der Zugang nur mit Benutzername und Kennwort möglich. Die Seite ist damit gut geschützt. 3. Die Datei wird in einem Admin-Bereich mit einer Session geschützt. Die Seite ist gut geschützt. Generell: Admin-Seiten sollten nie per Link von den normalen Seiten aus
zugänglich sein! Also keine Verlinkung. Vielleicht hat Ihnen unser Skript ein paar Stunden Arbeit erspart?
|
Copyright © 1998 - 2010, Zudila AG, CH 8057 Zürich Diese Seite (www.zudila.ch/scripte/php_gaestebuch.php) wurde aktualisiert: 23.10.08
| Besucher heute: | 160 | Seitenaufrufe heute: | 541 | gerade online: | 2 |
| Besucher gestern: | 220 | Seitenaufrufe gestern: | 470 | max. online: | 135 |
| Besucher pro Tag: | 206,52 | Seitenaufrufe pro Tag: | 680,52 | Eigene Seitenaufrufe: | 37 |
www.zudila.ch info@zudila.ch