Tutorialbeschreibung

Einfaches Gästebuch mit PHP

Einfaches Gästebuch mit PHP

Hier erkläre ich, wie man ein eigenes Gästebuch mit PHP programmiert (Datenbank erforderlich).
Grundkenntnisse in HTML sind von Vorteil.
Das Tutorial ist für Anfänger und leicht-Fortgeschrittene geeignet.


In diesem Tutorial werde ich euch erklären, wie Ihr mit Hilfe von PHP ein eigenes Gästebuch programmieren könnt.
Die meisten Gästebücher, die man kostenlos im Internet findet, lassen sich schlecht ins Design integrieren und  haben nervige Werbung auf jeder Seite.


Als erstes brauchen wir 2 Dateien:

-         Eine Datei enthält das Formular, um neue Einträge zuzufügen (ich nenne es z.B. neu.php)

-         Ein Dokument, um die Einträge auszugeben

Wenn ihr Dinge in PHP programmieren wollt, ist es unabdingbar ein wenig HTML zu können.

Schritt 1:
Als erstes bauen wir uns unser Formular.
Ich setzte voraus, dass ihr Tabellen und Formulare programmieren könnt:

<form action="" method="post">
<
table>
<
tr><td>Name:</td><td> <input type="text" name="username"></td></tr>
<
tr><td>Email:</td><td> <input type="text" name="email"></td></tr>
<
tr><td>Homepage:</td><td> <input type="text" name="homepage"></td></tr>
<
tr><td colspan="2">Nachricht:<br>
<
textarea name="nachricht" cols="35" rows="8"></textarea><td></tr>
<
tr><td colspan="2"><input type="submit" value="Eintragen" name="senden"></td></tr>
</
table>
</
form>

So, nun schreiben wir das ganze in eine PHP-Datei.

Mit dem Befehl „echo“ können Text und HTML-Codes angezeigt werden.

 


Unsere PHP-Datei sieht also so aus:

<?php
echo '
.
.#hier kommt der obere Code rein (Formular)
.
'
;
?>

Schritt 2:
Bis zu diesem Schritt haben wir PHP eigentlich noch gar nicht benutzt.

Das Prinzip eines Gästebuches ist folgendes:
Über ein Formular (das haben wir gerade erstellt) kann der Benutzer Daten (z.B. Name, Email, usw.) an eine Datenbank senden (das machen wir jetzt).

Diese Daten werden später abgerufen und ausgegeben und sind dann für alle sichtbar (das machen wir später).

 

Erstmal gehen wir in PHPMyAdmin (o.ä) und loggen uns ein.
Danach müssen wir zuerst die Datenbank anlegen, in die die Benutzer später die Einträge schreiben können.
Füllen wir diese Felder aus:

Neue Tabelle erstellenBilder
WIR BRAUCHEN 5 FELDER!

Vorerst brauchen wir 5 Felder, man kann später noch weitere hinzufügen.

Schritt 3:
Nun programmieren wir uns das Script, das das Formular in die Datenbank überträgt.

Dazu erstellen wir zuerst eine neue PHP-Datei (ich nenne sie „datenbank.php“).

<?
mysql_connect
("localhost","benutzername","passwort") or die
(
"Keine Verbindung moeglich");
mysql_select_db("datenbankname") or die
(
"Die Datenbank existiert nicht");
?>

 

Die Wörter „benutzername“, „passwort“ und „datenbankname“ müsst ihr entsprechend euren SQL-Zugangsdaten eintragen.

Jetzt geht es an den eigentlichen Code:
Wir haben ja schon die Datei „neu.php“ mit dem Formular. Darunter schreiben wir (vor das ?>) folgendes:

IF(isset($_POST["senden"])){
include(
'datenbank.php');
$username = $_POST["username"];
$email = $_POST["email"];
$homepage = $_POST["homepage"];
$nachricht = $_POST["nachricht"];
$code = "INSERT INTO gbuch (id, username, email, homepage, nachricht) VALUES('','$username','$email','$homepage','$nachricht')";
$eintragen = mysql_query($code);
IF(
$eintragen){
echo
'Eintrag hinzugefuegt';
}
}

Erläuterung:
- das (isset($_POST[….] )) bewirkt, dass der Code nur ausgeführt wird, wenn der „Eintragen“-Button geklickt wurde.

- Danach wird die Verbindung zur Datenbank aufgebaut.- Nun fügen wir einen SQL-Code ein. Frei übersetzt:
"Trage die Werte: „$username“, „$email“, „$homepage“, „$nachricht“ in die Datenbank mit dem Namen „gbuch“ in die Felder „……“.

- mysql_query() bewirkt, dass der Code auf dem Server ausgeführt wird. Ohne mysql_query würde überhauptnichts passieren…

Bilder

- if($eintragen){ bewirkt, dass, wenn die Daten in die Datenbank eingetragen wurden, die Nachricht „Eintrag hinzugefuegt“ erscheint.

Schritt 4:
Erstmal überprüfen wir in PHPmyAdmin, ob auch wirklich Daten angekommen sind.
Dazu klicken wir auf „Anzeigen“.
Bei mir hat alles geklappt und ich sehe nun folgendes:

Felderinhat-Tabelle erstellen PMABilder

Schritt 5:
So, nun müssen wir ja auch noch die Ausgabe der Nachrichten programmieren – wir wollen ja auch etwas auf unserer Homepage sehen

Bilder

Am besten machen wir dazu erstmal nur mit HTML eine kleine Tabelle, wo was stehen soll (wenn du das nicht aus dem Kopf kannst, nimm’ einen WYSIWYG-Editor).

Ich habe meine Ausgabe ungefähr so geplant:

Struktur - TabelleBilder

Nun nehmen wir den HTML-Code der Tabelle (also von <table> bis </table>) und erstellen eine neue Datei: „zeigen.php“.

Dann machen wir es so wie oben und schreiben über den Beginn des tabellencodes echo'

und dahinter wieder ';.

Nun sieht der Code ungefähr so aus:

<?php
echo '
<table>
.
.# hier steht euer html-code für die tabelle
.
</table>
'
;
?>

Jetzt kommt aber die Dynamik ins Spiel, d.h. wir lassen automatisch die Einträge aus der Datenbank in unsere Tabelle wandern

Bilder
.

Für SQL-Abfragen benutzt man den select-Befehl.
Unser Code sieht jetzt so aus:

<?php
include('datenbank.php');
$db2 = mysql_query("SELECT * FROM gbuch ORDER by id DESC");
while(
$db3 = mysql_fetch_array($db2)){
echo
'
<table border="1" cellspacing="1" id="nachricht" width="387">
<tr>
<td width="269">Username</td>
<td width="105">20.06.2006</td></tr><tr>
<td colspan="2">http://www.sonstwas.de</td>
</tr><tr><td colspan="2">Nachricht<br>Nachricht<br>Nachricht<br>Nachricht<br>Nachricht<br>Nachricht<br></td>
</tr>
</table>
'
;
}
?>

Erläuterung:
- die erste Zeile heißt „übersetzt“: Nehme Alles aus der Tabelle gbuch und sortiere es nach „id“.

- das $db3 = mysql_fetch_array bewirkt, dass im Array $db3 alle Werte aus der Datenbank abgespeichert werden. Diese können z.B. mit $db3["username"] abgerufen werden.

- Die While-Schleife sorgt dafür, dass dies für alle Datensätze geschieht, und nicht nur für einen.

 

Jetzt müssen wir nur noch die Texte, die ich zum Veranschaulichen in die Tabelle geschrieben habe, durch unseren Array ersetzen:

[]
<
table border="1" cellspacing="1" id="nachricht" width="387">
            <
tr>
                        <
td width="269">'.$db3[username]. '</td>
                        <
td width="105">20.06.2006</td></tr><tr>
                        <
td colspan="2">'.$db3[homepage]. '</td>
</
tr><tr><td colspan="2">'.$db3[nachricht]. '<td>
            </
tr>
</
table><p>
[
]

 

So, nun speichere alles ab, lade es hoch und probiere es aus.

Schritt 6:

Fällt dir was auf?

Wir haben kein dynamisches Datum!
Das bauen wir jetzt noch zusätzlich ein:
Wir gehen wieder zurück zur „neu.php“.
Wir ändern diese Zeile

$code = "INSERT INTO gbuch (id, username, email, homepage, nachricht) VALUES('','$username','$email','$homepage','$nachricht')";

in diese:

$zeit = time();
$code = "INSERT INTO gbuch (id, username, email, homepage, nachricht, zeit) VALUES('','$username','$email','$homepage','$nachricht',$zeit’)";

 

Da wir aber auch noch die IP-Adressen der Benutzer speichern wollen, falls das Gästebuch z.B. einer Spam-Attacke zum Opfer gefallen ist – ändern wir die Zeile nochmals ab in:

$code = "INSERT INTO gbuch (id, username, email, homepage, nachricht, zeit, ip) VALUES('','$username','$email','$homepage','$nachricht','$zeit','$REMOTE_ADDR')";

Jetzt, wie du sehen kannst, haben wir zwei neue Werte, die gespeichert werden müssen: Zeit/Datum und die IP-Adresse.

Folglich müssen wir auch in der Datenbank zwei neue Felder anlegen.
Dazu gehen wir wieder in PHPMyAdmin und wählen das hier aus (du musst links auf „gbuch“ klicken):

Datenbank: 2 neue Felder hinzufuegenBilder

Dann schreiben wir in das Formular folgendes:

Datenbank: 2 neue felder anlegen - InhaltBilder

Nun müssen wir nur noch das Datum in unser „Template“ eintragen:

Dazu navigieren wir an die Stelle in der „zeigen.php“, wo das Datum stehen soll (bei mir steht da 2..06.2006) und schreiben dort hin:

'.date("d.m.Y - H:i",$db3[zeit]).'

 

Das Gästebuch an sich ist damit eigentlich fertig.
Jetzt kannst du das ganze noch farbig machen, Bilder einfügen usw. – das hat aber mit PHP nichts mehr zu tun.

Das ist reines HTML und CSS.

Das ganze sah bei mir nach ein bisschen Formatierung des Codes so aus:

Endbild: Nach BearbeitungBilder

 


Das ganze ist nur ein Beispiel, wie man das Grundgerüst machen kann, das Design etc. habe ich hier komplett vernachlässigt.

 Hier gibt es nocheinmal alle Dateien zum Download (< 0,2MB):

hier klicken

Ich hoffe euch hat mein erstes Tutorial gefallen

Bilder
– Schreibt mir eure Meinung!

nicobats


Kommentare
Achtung: Du kannst den Inhalt erst nach dem Login kommentieren.
Alternative Portrait
-versteckt-(Autor hat Seite verlassen)
  • 19.11.2007 - 20:53

ich möchte dir danken dieses turial hat mich gelehrt das selbst der kleine man ein gb hinkrigt

Alternative Portrait
-versteckt-(Autor hat Seite verlassen)
  • 02.11.2007 - 00:44

Gutes Tutorial, in zusammenarbeit mit einem Flashgästebuch als OberflächeQ! Klappt wunderbar!

Alternative Portrait
-versteckt-(Autor hat Seite verlassen)
  • 18.03.2007 - 11:20

Verständlich und dazu auch noch kurz -> DANKE!

Portrait von sonje
  • 05.02.2007 - 01:15

Für Anfänger wie mich vielleicht ein Einstieg, danke dafür

Portrait von CIX88
  • 11.12.2006 - 20:50

Schönes Tutorial was man erweitern bzw. ergänzen sollte, um nicht HTML- oder PHP-Codes mit einschleusen zu lassen. Auch ein Zusatz zum Thema Spamschutz wäre von Vorteil.

Alternative Portrait
-versteckt-(Autor hat Seite verlassen)
  • 26.11.2006 - 22:19

Super Tutorial,

ich bin absoluter Anfänger auf dem PHP Gebiet und auch mit MySql kenne ich mich nicht aus, aber dieses Turotrial konnte mir sehr gut helfen.

Viele Dank

Gruß

Portrait von Bargo
  • 30.10.2006 - 22:49

hört sich gut an probier es demnächst aus!

Portrait von Newbie123
  • 04.10.2006 - 20:03

Schönes Tutorial einfach super erklärt und sogar wie man das auf PHPMyAdmin Installiert sehr schön

top TUT

Alternative Portrait
-versteckt-(Autor hat Seite verlassen)
  • 25.10.2006 - 14:25

Einfach nur klasse! schön formuliert und einfach gemacht, konnte super folgen, danke!

Portrait von sebachma
  • 19.09.2006 - 17:06

Geiles Tut!
Überprüf aber nocheinmal die Dateien die du zum Download angegeben hast!
Mit denen Klapts nämlich nich.
Aber wenn man es So macht wie du es beschrieben hast funtioniert es!

Portrait von Fenderman
  • 17.09.2006 - 17:28

Sehr schön erklärt, selbs ich als absoluter php noob hab es einigermaßen verstanden

Alternative Portrait
-versteckt-(Autor hat Seite verlassen)
  • 25.08.2006 - 09:48

Sehr schönes Tut, allerdings hat die "zeigen.php" einen Fehler bei mir. Wenn ich den Text schreibe, wird er nicht ausgegeben.
Woran kann es liegen?

Alternative Portrait
-versteckt-(Autor hat Seite verlassen)
  • 18.08.2006 - 11:22

schönes tut! Werde ich mal gebruchen ;)

5 Punkte

Alternative Portrait
-versteckt-(Autor hat Seite verlassen)
  • 17.08.2006 - 15:24

Gut erklärt und leicht verständlich. Kriegst von mit volle 5 Punkte.

Alternative Portrait
-versteckt-(Autor hat Seite verlassen)
  • 12.08.2006 - 14:07

sehr schönes tut, super erklärt und mit den bildern.
<br>

einzige was meiner meinung nach noch fehlt ist, dass eine Fehler meldung kommt, wenn z.B kein text angegeben hat.

aber super soweit ;)

Alternative Portrait
-versteckt-(Autor hat Seite verlassen)
  • 07.08.2006 - 16:17

ICh hab ne kleine Frage!
Erstmal Top Tutorial hab alles verstanden. Nur wenn ich jetzt zB sowas poste:
"ATATATASGUAIGFOISAIFJEOIHGOIHQIWHOIHGOI..."
, wird die Tabelle in die Breite gezogen. Ich hab mit wordwrap versucht ein Zeilenumbruch zu erzwingen, aber irgendwie funzt das net.
Kann mir das vll jemand erklären? Wäre sehr nett :)

Portrait von mobi
  • 01.08.2006 - 21:16

Sehr gutes Tut top :)

Portrait von Naitsab
  • 01.08.2006 - 10:14

heeey, ich bin gerade auch am schreiben eines gästebuch tutorials... hmm mist da warst du wohl schneller ;-)
dann werde ich meines noch etwas ausführlicher machen :-)
trotzdem top tutorial

Portrait von bigwik
  • 25.07.2006 - 18:40

Als Gästebuch-Skelett-Tutorial ist es sehr verständlich, selbst ich hab es verstanden und schon ausprobiert. Gute Arbeit. Volle 5 Punkte.

x
×
×