Anzeige
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.
Portrait von chenjung
  • 21.12.2010 - 15:09

Hm so ganz gehts nicht!? Meldet immer fehler in Zeile 4 $db3

hat einer einen Tipp?

Portrait von livestrong1
  • 19.12.2010 - 18:33

Funktioniert nach längerem Herumprobieren auch bei mir bis auf die Zeit, bei der Zeit fehlt ein ' bei den Values!! Sonst nicht schlecht

Portrait von TK814
  • 14.11.2010 - 17:31

Sehr gutes Tutorial. Hat echt geholfen.

Alternative Portrait
-versteckt-(Autor hat Seite verlassen)
  • 02.11.2010 - 22:39

also ich muss sagen, das tutorial hat mir sehr geholfen...
besten dank für die gegebene mühe...

Portrait von Supersuzi
  • 13.09.2010 - 08:14

klasse erklärt, Danke fürs teilen

Portrait von Supersuzi
  • 13.09.2010 - 08:15

der Download geht nur leider nicht mehr...

Portrait von silver129
  • 01.09.2010 - 18:42

sehr gut, kann man alles leicht nachvollziehen.

Portrait von flos113
  • 17.06.2010 - 13:54

sehr gut, ziemlich einfach alles nachzuvollziehen

Alternative Portrait
-versteckt-(Autor hat Seite verlassen)
  • 10.06.2010 - 10:59

gut gemacht, aber leider nicht übersichtilich!!!

Portrait von Nachtfuchs
  • 08.04.2010 - 18:28

Download ist leider nicht mehr aktiv!

Ansonsten sehr schön geschrieben, aber ein paar Sachen hätte man noch hinzufügen "können" wie z.B. das kein *Schandcode* ausgeführt wird etc.

THX!

Portrait von bunderos
  • 13.03.2010 - 00:56

Ist wohl eher für Leute gedacht, die lediglich ein Gästebuch haben wollen ohne unbedingt zu verstehen, was man warum tut.

Aber diesen Zweck erfüllt das Tutorial wunderbar.

Portrait von Chester_Mainstreet
  • 23.02.2010 - 11:36

Wirklich net schlecht. nur download der datei geht nich

Portrait von icehawk2
  • 17.01.2010 - 17:08

Für totale Anfänger, vll. an einigen Stellen unverständlich aber ansonsten super Tutorial geworden. . .

Thx

Alternative Portrait
-versteckt-(Autor hat Seite verlassen)
  • 05.09.2009 - 04:35

Hey nicobats,

sehr gutes tutorial
hat mir sehr geholfen:)

nur beim letzten mit dem datum ändern das immer das aktuell mit zeit gezeit wird muss man
'.date("d.m.Y - H:i"),$db3[zeit] .'

nicht

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

also so musste ich es machen wil sonst hat er es bei mir nicht genommen nur zur info lerne nämlich gerade html und php für weiterführende schule schonmal

grüzz markus

Portrait von bDf
bDf
  • 24.07.2009 - 22:05

schön wäre es einen funktionierenden download zu haben...
aber ansonsten find ich persöhnlich es ziemlich mager wenn es für anfänger wie z.b. mich gedacht sein sollte, es wird am anfang nur ein quellcode gezeigt aber nichts dazu gesagt wieso das so ist.

aber trotzdem danke

Portrait von TheMario
  • 21.07.2009 - 13:44

Sehr sehr gute tut hat mir sehr geholfen bin grade dabei php zu lernen und dabei ist sowas perfekt ^^ danke

Portrait von BillGatez
  • 12.07.2009 - 19:00

Das ist ein sehr gutes Tutorial
Perfect für menem Homeserver

Alternative Portrait
-versteckt-(Autor hat Seite verlassen)
  • 14.06.2009 - 22:03

Sehr schönes Turtorial!!!

Portrait von samohtt
  • 24.05.2009 - 01:28

Fänd ich auch ganz nett, wenn ich die Dateien wieder zum Download angeboten würden. Meine erstellte PHP Datei enthält schon in Schritt1 irgendeinen Fehler, sodass sie überhaupt nicht funktioniert und der eigentliche Quelltext unterhalb dem Formular als Klartext angezeigt wird.
Und hast Du nicht auch die form action vergessen?

Grüße
samohtt

Portrait von Stanislas
  • 06.03.2009 - 00:42

Supi und Einfach mal wiedaaaa :)
Danke kann man dazu nur sagen :)

x
×
×