Zaiendo Wir sind die Community


Neueste Ankündigungen:
Zaiendo.de ist auf FaceBook und Youtube.

Witz des Tages:
"Würden Sie meine Tochter auch heiraten, wenn sie kein Geld hätte?" "Natürlich!" "Dann wird nichts draus. Dummköpfe kann ich in meiner Familie nicht gebrauchen."

Teilen auf:
Twitter Facebook Stumble Upon Delicious Google

Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
[Tutorial] Gästebuch
» mit MySQL
#1
Dies ist ein Tutorial wie man ein komplettes Gästebuch mit Php und MySQL baut.

Zuerst erstellen wir eine neue Tabelle in unserer MySQL Datenbank.
Also öffnet euren PhpMyAdmin und führt diesen SQL Befehl aus:
Code:
CREATE TABLE gaestebuch (
id bigint(20) DEFAULT '0' NOT NULL,
name varchar(255) NOT NULL,
email varchar(255) NOT NULL,
homepage varchar(255) NOT NULL,
nachricht text NOT NULL
);
Wir haben nun die Spalten für die ID der Einträge, den Namen des Besuchers, seine Emailadresse, seine Homepage und die eigentliche Nachricht.

Als nächstes benötigen wir das Formular wo sich die Besucher eintragen können:
PHP-Code:
<form action="<?php echo $PHP_SELF ?>" method="post" name="neuereintrag"> <!-- Beginn des Formulars --> 
Mit action bestimmen wir welche Datei aufgerufen wird, wenn das Formular abgesendet wird. In diesem Fall schreiben wir alles in eine Php-Datei, daher der Befehl $PHP_SELF, er verweist auf die Seite auf der wir uns befinden.
method: Die Methode wie wir Daten weitergeben, mit Post oder Get.
Nun fügen wir noch die Felder zur Eingabe der Daten ein, also den Rest des Formulars:
Code:
Ihr Name:<input type="text" name="name" size="30">
type definiert den Typ des Elements, also ein Eingabefeld. Name- der Name der Variable die später verwendet wird.
Genauso machen wir nun noch die anderen Felder für die Emailadresse und die Homepage:
Code:
Ihre Email:<input type="text" name="email" size="30">
Ihre Homepageadresse:<input type="text" name="homepage" size="30">
Nun noch das Feld für die eigentliche Nachricht. Da die Nachricht vermutlich länger ist als 30 Zeichen und daher nicht mehr gut in ein normales Textfeld passen würde verwenden wir nun eine Textarea:
Code:
Ihre Nachricht:<textarea name="nachricht" cols="25" rows="30"></textarea>
Mit cols und rows geben wir die Anzahl der Spalten und Zeilen des Textareals an, ich habe 25x30 gewählt.
Zu guter Letzt bauen wir noch 2 Knöpfe ein, einen zum Absenden und einen zum Löschen der Formulareingaben:
Code:
<input type="submit" name="neuereintrag" value="Absenden">
<input type="reset" value="Leeren">
Wieder wird mit type der Typ angegeben, submit für das Absenden und reset um das Formular zu leeren. Per value geben wir an was auf den Knöpfen stehen soll.
Damit schließen wir das Formular
Code:
</form>
.

Nun geht es richtig los. Da wir ja nur eine Datei verwenden möchten, brauchen wir nun eine Überprüfung ob mit dem Laden der Seite ein neuer Eintrag übergeben wurde, ob also jemand zum ersten Mal auf die Php-Datei zugreift oder ob er gerade das Formular abgeschickt hat. Die sieht so aus:
PHP-Code:
<?php 
// Aufbau der Verbindung mit der MySQL Datenbank:
$verbindung mysql_pconnect"dein_server""deinloginname""deinloginpasswort");

if (!
$verbindung// Bei einem Fehlerhaften Aufbau (Falsche Eingabe) abbrechen und Fehler ausgeben
{
    echo 
"<br><center><b>- Es konnte keine Verbindung zur Datenbank hergestellt werden -</b></center>";
    exit;

Bei dein_server, deinloginname und deinloginpasswort trägst du natürlich die jeweiligen daten deiner MySQL Datenbank ein.
Nun wählen wir die vorher erstellte Datenbank aus:
PHP-Code:
mysql_select_db("deinesqldatenbank"); 
Statt deinesqldatenbank schreibst du natürlich wieder die Datenbank rein, die du benutzt.
Nun überprüfen wir ob der Absenden Button gedrückt wurde und fahren dann fort:
PHP-Code:
if($neuereintrag)

$id time(); //Zeitangabe
$name addslashes($name); 
Falls ein Benutzer Sonderzeichen, die mit Php in Konflikt kommen könnten eingegeben hat, werden die nun umgewandelt in PHP Spezialzeichen
PHP-Code:
$email addslashes($email);
$homepage addslashes($homepage);
$nachricht addslashes($nachricht);

$sqlbefehl "INSERT INTO gaestebuch (id, name, email, homepage, nachricht) VALUES ('$id', '$name', '$email', '$homepage', '$nachricht')"
Hier fügen wir in unsere Tabelle Gästebuch die eingegebenen Daten ein.
PHP-Code:
mysql_query($sqlbefehl) or die("Error: " mysql_error()); 
$sqlbefehl ausführen, bei Fehlern Fehlermeldung ausspucken.
PHP-Code:
echo "Eintrag erfolgreich hinzugefügt";
}

?>
Die Erfolgsmeldung wird ausgegeben.

Nun können sich Besucher ins Gästebuch eintragen.
Nur wie zeigen wir die Einträge an?
Hierzu verwenden wir die folgende Funktion:
PHP-Code:
<?php
    $sqlbefehl 
"SELECT * FROM gaestebuch ORDER BY id DESC"
Wir holen die Einträge aus dem Gästebuch und sortieren sie absteigend nach Datum, also der ID die wir vergeben haben. So steht der neueste Eintrag ganz oben.
PHP-Code:
$sqlanfrage mysql_query($sqlbefehl) or die("Error: " mysql_error());
//Ausführen, bei Fehler melden.
while($daten mysql_fetch_object($sqlanfrage))
{
$datum getdate($daten->id); 
Wir beginnen eine While-Schleife um alle Daten abzufragen.
PHP-Code:
echo "Eintrag von "stripslashes($daten->name) ."\n<br>"
Nun müssen wir die Php Spezialzeichen wieder entfernen um alles auszugeben. Wir geben per echo alle Daten aus dem Array aus:
PHP-Code:
echo "Email: <a href=\"mailto:".stripslashes($daten->email)."\">".stripslashes($daten->email)."</a>\n<br>"
echo 
"Homepage: ".stripslashes($daten->homepage)."\n<br>";
echo 
"Datum: $ndate[weekday] - $ndate[mday]/$ndate[mon]/$ndate[year] $ndate[hours]:$ndate[minutes]";
echo 
"<br>";  //Damit es schöner aussieht ;)
echo "Nachricht: <br>"
echo 
nl2br(stripslashes($daten->nachricht));
//nl2br bedeutet dass wir alle Zeilenumbrüche in <br> umwandeln
echo "\n<br><br>\n";
    }
?>

Und das wars auch schon Smile
Nun haben wir ein voll funktionsfähiges Gästebuch in Php mit Speicherfunktion in der MySQL Datenbank.
Das ganze kann man nun natürlich erweitern, mit Smilies, Wortfilter, Überprüfung ob die eingegebene Emailadresse korrekt (valid) ist und natürlich sollte man die Ausgabe auch mit CSS etwas verschönern, wir haben hier ja nun nur den reinen Code.

Viel Spaß und Erfolg beim Coden!
Sascia

EDIT: Den gesamten Code nochmal als Php Datei angehängt. Datenbank muss aber davor erstellt werden!
.php   gaestebuch.php (Größe: 2,11 KB / Downloads: 694)
Bitte Lizenz beachten!
WEBMASTER- Wir rocken das Internet!
Knuddel euch alle ganz doll! [Bild: sascia_sig.gif]
Antworten
#2
WOW! *Vergeblich nach einem "GroßeAugenMach"-Smilie such*

Das ist absoluter Hammer!

Vielen Dank für das Tutorial, werde es bei meiner HP gleich verwenden Cool

Lg
Lennart
[Bild: zaiendosig.php]
Antworten
#3
Das ist ein super Tutorial!
Klasse Smile
Vielleicht könnte man diesen Code komplett in einem zusammengefasst noch als Anhang ranhängen Wink
[Bild: signatur-streifenhoernchen.png]
Antworten
#4
Danke für den Hinweis, habe das nun gemacht Smile
Schön dass es euch gefällt!
WEBMASTER- Wir rocken das Internet!
Knuddel euch alle ganz doll! [Bild: sascia_sig.gif]
Antworten
#5
vielen dank, aber ist es wirklich nötig an jedem stücken code nen dickes
"Ich bin so ultra Lizensig das man meine dicken hinweis-buttons nicht mehr übersehen kann" mit dranzuhängen?

manchmal frag ich mich wo die revoluzzer sind, die einfach nur danke sagen,
vielleicht einfach nur da was geben wo sie was bekommen und das ganz
ohne "privatbutton" ?

ich würde viel lieber leute verlinken, die sich nicht in jedem codefetzen
auch noch ihre SEO-Tools reinbauen.
dieses übergroße schutzbedürfnis ist mit einem einzigen handstreich zu entfernen. man könnte auch sagen, völlig wirkungslos, denn wer will clont
jeden php-code.
dann doch lieber auf die vernunft setzten und reinschreiben das man sich über einen link freuen würde....wäre mal so eine anregung.
Antworten
Werbeagentur gesucht? PRinguin, die Digitalagentur. Für Web Entwicklung und Online Marketing.
Registriere dich (kostenlos) um diese Werbung zu verbergen.
#6
@Jana: Es ist doch jedem frei gestellt ob er seinen Code unter eine Lizenz stellt oder sagt: Macht damit was Ihr wollt nur lasst mich in Ruhe. Es ist ja nicht so als ob ein Zwang besteht dies zu tun, aber ich kann es zumindest Teilweise empfehlen. Ob es jetzt bei so Kleinigkeiten wie einem Gästebuch sinnvoll ist sei dahin gestellt. Aber wenn ich zum Beispiel mehrere Monate Arbeit in ein Script stecke, will ich auch das meine Arbeit durch einen entsprechenden Hinweis auf den "Hersteller" gewürdigt wird!

Dabei geht es nicht, wie Du beschreibst, nur um die Suchmaschinenplatzierung. Dieser Aspekt ist für mich nebensächlich. Es geht darum das das Script sich weiter verbreiten kann. Das kann es nur wenn die Leute wissen wo es her kommt u.s.w.
Was auf die Ohren? Gute Musik gibts bei Chaos-Radio-Nord
Antworten
#7
Also ich persönlich bin ein klarer Verfechter von Lizenzen.
Unter anderem aus dem Grund:
Wenn etwas unter der Creative Commons steht, darf ich es in aller Regel verbreiten.
Ich weiß genau ob ich es kommerziell verwenden darf, ob ich es verändern darf usw.
Was mir nicht passt ist dieses "Copyright Link auf jeder Seite der zurück zu meiner Seite verweist und nich entfernt werden darf"- bei winzigen Modifikationen oder Plugins.
Aber darauf hat Sascia ja komplett verzichtet- insofern ist die Lizenzangabe meiner Meinung nach sehr nützlich. Rolleyes
[Bild: zaiendosig.php]
Antworten
#8
Ich find Lizenzen gut, weil man dann eben genau weiß, was man mit ner Sache machen darf und was nich.
So gibts keinen Streit und alle sind happy Smile

Und wie Lennart sagte verlange ich ja kein "Copyright by Sascia" oder "Powered by XYexamplehomepage.net", das Gästebuch ist fast uneingeschränkt nutzbar, lediglich für kommerzielle Zwecke darf es nicht eingesetzt werden.
Gruß Sascia
WEBMASTER- Wir rocken das Internet!
Knuddel euch alle ganz doll! [Bild: sascia_sig.gif]
Antworten
#9
Keine Copyright-Pflicht? Gekauft Big Grin
Antworten


Verlinke dieses Thema:

Teile es auf:
Twitter Facebook Stumble Upon Delicious Google GMail LinkedIn



Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste