Die Mathe-Redaktion - 15.12.2017 17:05 - Registrieren/Login
Auswahl
ListenpunktHome
ListenpunktAktuell und Interessant ai
ListenpunktArtikelübersicht/-suche
ListenpunktAlle Links / Mathe-Links
ListenpunktFach- & Sachbücher
ListenpunktMitglieder / Karte
ListenpunktRegistrieren/Login
ListenpunktArbeitsgruppen
ListenpunktSchwätz / Top 15
ListenpunktWerde Mathe-Millionär!
ListenpunktFormeleditor fedgeo
Schwarzes Brett
Aktion im Forum
Suche
Stichwortsuche in Artikeln und Links von Matheplanet
Suchen im Forum
Suchtipps

Bücher
Englische Bücher
Software
Suchbegriffe:
Mathematik bei amazon
Naturwissenschaft & Technik
In Partnerschaft mit Amazon.de
Kontakt
Mail an Matroid
[Keine Übungsaufgaben!]
Impressum

Bitte beachten Sie unsere Nutzungsbedingungen, die Distanzierung, unsere Datenschutzerklärung und
die Forumregeln.

Sie können Mitglied werden oder den Newsletter bestellen.

Der Newsletter Okt. 2017

Für Mitglieder
Mathematisch für Anfänger
Wer ist Online
Aktuell sind 621 Gäste und 28 Mitglieder online.

Sie können Mitglied werden:
Klick hier.

Über Matheplanet
 
Informatik: Tutorial für ein Gästebuch
Freigegeben von matroid am Sa. 10. Dezember 2005 19:34:39
Verfasst von pendragon302 -   813228 x gelesen [Gliederung] [Statistik] Druckbare Version Druckerfreundliche Version
Internet

\(\begingroup\)Bild

In diesem Tutorial möchte ich euch zeigen, wie man ein datenbankbasiertes Gästebuch mit Blätterfunktion mit Hilfe von php und MySQL programmiert und euch meinen Quellcode, von vielen anderen möglichen Quellcodes, vorstellen. Es gibt sicher schon viele gute Tutorials zu diesem Thema im Internet, dennoch möchte auch ich mein Wissen weitergeben und Menschen, die auf der Suche nach Hilfe sind, ein wenig entgegenkommen.

 


pdf-Version des Artikels

Inhalt:

•        Einleitung
•        Datei verbindungmysgl.php
•        Erstellung der MySQL Tabelle gbuch
•        Datei gbuch.php
•        Datei gbauswertung.php
•        Datei gbdarstellung.php

Für dieses Tutorial muss ich einige Kenntnisse aus HTML voraussetzen, aber das sollte kein Problem sein, denn jemand der eine Homepage hat oder anfangen will eine Homepage zu erstellen, beschäftigt sich zuerst mit HTML und später erst mit php o.ä.

Lasst uns zuerst überlegen, was wir für ein Gästebuch überhaupt benötigen:
Wir brauchen erst einmal Eingabefelder, in denen man seinen Namen, seine Email-Adresse, die Adresse der eigenen Homepage und natürlich den Eintrag, den man dem Besitzer des Gästebuchs übersenden möchte, eingeben kann. Das Gästebuch, das ich nun beschreibe, besteht aus drei Skript-Dateien, geschrieben in der Skript-Sprache php.

Eine Datei sorgt dafür, daß die oben genannten Eingabefelder am Bildschirm erscheinen, und daß die früher geposteten Beiträge angezeigt werden. Wenn man in dem Eingabeformular seine Daten eingegeben hat, werden sie an die nächste Skript-Datei zum Auswerten geschickt, und in einer dritten werden die bereits vorhandenen Beiträge formatiert, um sie anzeigen zu können. Um die Syntax der einzelnen Funktionen zu sehen, solltet ihr auf http://de3.php.net/manual/de/ gehen. Dort ist ein Handbuch zu php und einigen MySQL-Befehlen. Jeder php-Befehl endet mit einem Semikolon, man muss bei den folgenden Quelltexten darauf achten, wo es sich um php-Code und wo es sich um HTML-Code handelt.

Wegen der Übersichtlichkeit habe ich mir eine php- Datei erstellt, die mich in die Datenbank einloggt und gleich die Datenbank auswählt, in der ich meine Tabellen gespeichert habe. Die Datei könnte wie folgt aussehen
1	<?php
2	
3	mysql_connect('MySQL server', 'MySQL user','MySQL passwort');
4	mysql_select_db("MySQL Datenbank");
5	
6	?>
Ihr müsst eure Daten natürlich anpassen, oft heißt der MySQL Server localhost, falls ihr zuhause einen lokalen Server bedient, sollte der MySQL-User den Namen root haben. MySQL Datenbank ist die Datenbank in der ihr eure Tabellen speichern wollt. Um diese Datei zu erstellen reicht der in Windows integrierte Editor aus. Einfach den Code oben kopieren und als verbindungmysql.php abspeichern. Ich persönlich nutze den Editor Weaversleaver. Ich würde euch auch raten einen php- Editor runterzuladen.
Die Funktionen mysql_connect und mysql_select_db sind mit ein wenig Englischkenntnissen selbsterklärend.

In unsere Mysql Datenbank müssen wir eine Tabelle erstellen, in denen wir unsere laufende ID speichern können. Das dient mehr administrativen oder statistischen Zwecken, falls zum Beispiel irgendjemand auf eurer Seite ziemlichen Mist in euer Gästebuch schreibt und ihr es dann wieder löscht könnt ihr trotzdem später noch sehen wie viele User insgesamt Beiträge verfasst haben. In den weiteren Spalten kommen dann noch Name, Email, Homepage, Beitrag und zu guter Letzt ist doch immer interessant zu welcher Zeit jemand etwas geschrieben hat. Also brauchen wir insgesamt 6 Spalten. Man kann so eine Tabelle auf drei Arten herstellen. Man könnte zum einen den Befehel direkt in MySQL Konsole eingeben, aber diesen Weg halte ich wegen der Unübersichtlichkeit für nicht geeignet, dann könnte man den MySQL Befehl in eine php- Datei schreiben und diese Datei dann ausführen, für Leute, die kein phpmyadmin zur Verfügung haben, sicher einer der günstigsten Wege, die dritte mir bekannte Möglichkeit ist wie eben erwähnt mit dem Programm phpmyadmin. In diesem Programm dann man in einer schönen grafischen Oberfläche seine Tabellen erstellen, bei Bedarf neue Spalten und Zeilen einfügen, Name ändern usw. Für Einsteiger sicher der idealste Weg aber leider bietet nicht jeder Provider dieses Tool an, doch falls man zuhause einen lokalen Webserver betreibt kann man mit phpmyadmin die Tabellen erzeugen und sich dann den nötigen php- Code zeigen lassen.

Der allgemeine Befehl sieht wie folgt aus:
1	CREATE TABLE `gbuch` (
2	    `ID` INT NOT NULL AUTO_INCREMENT ,
3	    `Name` VARCHAR( 100 ) NOT NULL ,
4	    `Email` VARCHAR( 150 ) NOT NULL ,
5	    `Homepage` VARCHAR( 150 ) NOT NULL ,
6	    `Beitrag` TEXT NOT NULL ,
7	    `Zeit` DATETIME NOT NULL ,
8	  PRIMARY KEY ( `ID` )
9	) TYPE = MyISAM;
Was bedeutet nun dieser Befehl?
Zeile 1: Hier steht was wir eigentlich machen und zwar wir erstellen eine Tabelle mit dem Namen gbuch.

Zeile 2:  Wir erstellen unsere erste Spalte mit dem Namen ID. Diese soll den Dateitypen INT haben was soviel wie ganze Zahl bedeutet. Danach steht der Ausdruck NOT NULL. NULL ist so was wie ein Platzhalter, Variablen erhalten zum Beispiel den Wert NULL wenn ihnen noch kein Wert zugewiesen wurde. Nun folgt der Ausdruck AUTO_INCREMENT, welcher soviel bedeutet wie, dass wenn ein neuer Eintrag in unsere Tabelle erfolgt der Wert von ID automatisch sich um Eins erhöht.

Zeile 3-5: Hier stehen die Namen Name, Email und Homepage. Sie sind alle vom gleichen Datentypen VARCHAR, das heißt, dass dort diese Felder eine Zeichenfolge bekommen mit unterschiedlicher Länge. Name kann 100 Zeichen lang sein, das reicht aus denn wer hat schon einen Namen mit mehr als hundert Zeichen und die Felder Email und Homepage haben eine Beschränkung von 150 Zeichen.

Zeile 6: In der Spalte Beitrag sind Einträge vom Typen TEXT, welche auf 65535 Zeichen beschränkt sind, das sollte für einen Eintrag ins Gästebuch ausreichen.

Zeile 7: Die Spalte Zeit hat das Format DATETIME, das sieht so aus
JJJJ-MM-TT HH:MM:SS also zum Beispiel 2005-12-03 23:26:44.

Zeile 8:  Hier steht das der PRIMARY KEY auf der Spalte ID liegt, das bedeutet soviel wie, dass es keine zwei Eintragungen geben kann mit gleicher ID.

Zeile 9: Sie gibt uns den Tabellentypen an. Der Typ MyISAM  ist der Voreingestellte Typ bei MySQL. Es gibt viele verschieden Typen von Tabellen doch für Anfänger reicht dieser Typ vollkommen aus.

Wenn wir unsere Tabelle erstellt haben, können wir mit dem eigentlichen Programmieren des Gästebuchs anfangen. Wir fangen mit der Datei an, in der unsere Eingabefelder erzeugt werden. Das schöne an php ist, dass wir HTML Befehle einbinden können. Ich habe diese Datei gbuch.php genannt, die Datei an die die Daten gesendet werden gbauswertung.php und wo alles formatiert wird gbdarstellung. Die Datei gbuch.php sieht wie folgt aus


 

  1. <?php

  2. echo "<h2>Gästebuch</h2><br>";


  3. echo "


  4. <table>

  5. <tr>  

  6.  <td>    

  7.   <div>  

  8.    <form  action=\"gbauswertung.php\"    

  9.             method=\"post\">                  
  10.    
  11.       <table>

  12.         <tr>      

  13.           <td><label>Name:</label></td>        

  14.           <td><input type=\"text\"

  15.                      name=\"name\"/></td>

  16.         </tr>    

  17.         <tr>

  18.           <td><label>Email:</label></td>

  19.           <td><input type=\"text\"

  20.                      name=\"email\"/></td>

  21.         </tr>

  22.         <tr>

  23.           <td><label>Homepage:</label></td>

  24.           <td><input type=\"text\"

  25.                      name=\"homepage\"/

  26.                      value=\"http://\"></td>

  27.         </tr>

  28.         <tr>

  29.           <td><label>Beitrag:</label></td>

  30.           <td><textarea name=\"beitrag\" cols=\"40\"

  31.                      rows=\"8\"></textarea></td>

  32.         </tr>

  33.         <tr>

  34.           <td><input type=\"submit\"

  35.                      value=\"Abschicken\"></td>

  36.         </tr>

  37.      </table>

  38.    </form>

  39.   </div>

  40.  </td>

  41. </tr>

  42. <tr>

  43.  <td>

  44.   <div>";

  45.    include "gbdarstellung.php";

  46. echo "

  47.   </div>

  48.  </td>

  49. </tr>

  50. </table>";

  51.    

  52. ?>



Ich werde versuchen das Script mit eigenen Worten zeilenweise zu beschreiben. Der HTML Kenner wird sich wundern und fragen, was die ganzen Backslashes da machen. Man muss bei php beachten, dass man das Zeichen " escapen muss, was soviel bedeutet, dass es beim Parsen vom php-Script nicht berücksichtigt wird. Dies erreicht man indem man vor dem Ausrufezeichen einen Backslash macht. Dies ist notwendig, weil in HTML viele Ausrufezeichen benötigt werden.
Würde man bei echo "<form action=\"gbauswertung\">" die Backslashs weglassen würde nur <form action= geparst und damit kann niemand was anfangen.

   
ZeileErklärung
1Beginn eines jeden php-Bereichs
2Die Funktion echo erzeugt eine Ausgabe die auch HTML-Code erhalten darf, hir wir eine Überschrift erzeugt
4Jede Zeile, die nach den Anführungsstrichen kommt wird im Browser gezeigt. Dieser echo Befehl geht bis Zeile 45
6-51Hier wird eine Tabelle erzeugt aber vorsicht es wird in der Tabelle später noch eine Tabelle erzeugt!
7-42Hier wird die erste Zeile in unserer ersten Tabelle erzeugt
8-41Dies ist nun unser erstes Feld in der ersten Tabelle bzw. ersten Zeile
9-40In diesem ersten Feld wird ein Bereich erzeugt, das hat den Vorteil um später eventuelle Styles einzubauen oder Hintergrundfarben etc. Darauf möchte ich hier aber erstmal nicht eingehen
10-39Nun kommt das Formular in welches wir benötigen um die nötigen Einträge in Gästebuch zu schreiben
10-11Die Daten werden an die Datei gbauswertung.php gesendet. Als mMethode wird POST benutzt. Es gibt noch eine andere Methode GET die speichert alle Einträge in der URL und da die URL eine Zeichenbegrenzung hat benutzen wir POST
12-38In unserem Formular wird wieder eine Tabelle erzeugt, das hat den Sinn um die Beschriftungen und Eingabefelder zu ordnen
13-17Die erste Zeile unserer zweiten Tablle
14Im ersten Feld der ersten Zeile unserer zweiten Tabelle kommt die Beschriftung bzw. Label "Name:"
15-16Daneben kommt dann das Texteingabefeld. Dert Wert, der hier eingegeben wird wird in der Variable 'name' gespeichert
18-22Die zeite Zeile unserer zweiten Tabelle
19Hier in das erste Feld kommt die Beschriftung "E-mail:" rein
20-21Hier kommt wieder eine Texteingabefeld wo der Wert der Eingabe in die Variable 'email' gespeichert wird.
23-28Analog wie die beiden vorherigen
29-33Analog zu den vorherigen bis auf, dass neben Beitrag keine Textfeld erzeugt wir sondern ein mehrzeiliges Textfeld, welches 40 Zeichen breit ist und 8 Zeilen hoch. Man will seinen Beitrag nichjt nur in einer Zeile verfassen.
34-37Hier in der letzen Zeile unserer zweiten Tabelle wir der Submittbutton erzeugt der den Befehl gibt alles an unsere Datei zu senden. Er trägt die Aufschrift "Abschicken"
43-50Die zweite Zeile unserer ersten Tabelle
44-49Das Feld in der Zeile
45-48Der Bereich in dem unsere bisherigen Einträge der anderen User dargestellt werden sollen. Dazu müssen wir aber in Zeile 45 unseren echo Befehl enden lassen, da in der nächsten Zeile ein anderer php Befehl kommt und dieser darf in dem echo Bereich nicht liegen. Deswegen kommen nach <div> ";. Damit schlieest sich der echo Befehl
46Mit der Funktion include können wir in php Dateien andere Dateien miteinbeziehen. Wir werden später alle Einträge aus unserer Datenbank mithilfe der Datei gbdarstellung.php formatieren und darstellen
47Da wir den alten echo Befehl beendet haben haben müssen wir um unsere Tabelle zu schliessen einen neuen echo Befehl erzeugen
53Ende eines jeden php Bereichs

In der zweiten Zeile der ersten Tabelle wird ein Bereich erzeugt der den Inhalt von der Datei gddarstellung.php beinhaltet. Bei der Übermittlung der Daten aus dem Formular wurden sie in die Variablen name, email, homepage und beitrag gespeichert.
Mit $_POST['name'], $_POST['email'],... können wir sie hier weiterverarbeiten. Sie tragen die Werte unserer Eingaben.
   
Die Datei gbauswertung sieht wie folgt aus:


 

  1. <?php
  2. include "verbindungmysql.php";

  3. if(trim($_POST['name']) !== "" and  
  4.   trim($_POST['beitrag'])!=="") {        


  5. $sql1="INSERT INTO gbuch
  6.           (Name,
  7.           Email,
  8.           Homepage,
  9.           Beitrag,
  10.           Zeit)
  11.     VALUES
  12.          ('".$_POST['name']."',
  13.           '".$_POST['email']."',
  14.           '".$_POST['homepage']."',
  15.           '".$_POST['beitrag']."',
  16.           now())";

  17. $senden=mysql_query($sql1) or die(mysql_error());
  18. }
  19. header("Location: url der Datei gbuch.php");
  20. ?>



 
ZeileErklärung
1Beginn des php Bereichs
2Hier wird die Datei verbindungmysql.php von oben mit einbezogen
4-5Abfrage ob die Felder Name und Beitrag Werte enthalten. Nur wenn beide nicht leer sind dann soll er weiter machen sonst geht er weiter zu Zeile 23
8-19Hier wird das Paket geschnürt welches wir an unsere Datenbank schicken möchten und in einer Variable gespeichert. Das Paket sieht wie folgt aus. Füge in die Tabelle gbuch in den Spalten Name, Email, Homepage, Beitrag, Zeit die Werte welche wir durch das Formular geschickt haben in die ersten wir Spalten und in die Spalte Zeit kommt der Wert now() also die augenblickliche Zeit. Dabei musst beachtet werden, dass die Werte, die wir in die Spalten schrieben wollen, die gleiche Reihenfolge haben
21Nun wir unser Paket versendet oder es soll eine Fehlermeldung kommen
23Egal ob die Felder Name und Beitrag was enthalten haben oder nicht, wir wechseln auf jeden fall wieder zurück zu der Seite wo die Datei gbuch.php ausgeführt wird. Auf meiner Homepage wäre dies pendragon302.pe.funpic.de/gbuch.php
24Ende der Datei bzw. des php Bereichs

Kommen wir nun zu unserer letzten und wohl längsten Datei gbdarstellung.php:

 

  1. <?php
  2. include "verbindungmysql.php";

  3. list($gesamt) = mysql_fetch_row(mysql_query("SELECT COUNT(*)              
  4.                                             FROM gbuch"));
  5.   $num_sites = ceil($gesamt/10);
  6. echo "Name und Beitrag sind Pflichtfelder. Danke<br>";

  7. while ($i<=$num_sites)
  8.      {
  9.         echo "<a href=\"URL der Datei
  10.               gbuch.php?seite=".$i."\">".$i."</a> ";
  11.         $i+=1;
  12.      }

  13. $seite=$_GET['seite'];

  14. if ($seite=='')
  15. {
  16.  $seite=1;
  17. }

  18. $start=($seite-1)*10;

  19. $sql="Select
  20.       Name,Email,Homepage,Beitrag,Zeit
  21.      
  22.      From
  23.       gbuch
  24.      order by
  25.       Zeit DESC
  26.       LIMIT
  27.       ".$start.",10";
  28.      
  29.  $empfang=mysql_query($sql) or die(mysql_error());
  30.  

  31. echo "Anzahl an Gästebucheinträgen: ".$gesamt."<br>";

  32. while ($row=mysql_fetch_assoc($empfang))
  33. {

  34. echo "
  35.  <table border=2>
  36.   <tr>
  37.    <td>";
  38.       if ($row['Email']!='')
  39.         {
  40.           if ($row['Homepage']!='' and
  41.               $row['Homepage']!='http://')
  42.              {
  43.               echo "
  44.                <a href=\"mailto:"
  45.                .$row['Email'].
  46.                "\">"
  47.                .$row['Name'].
  48.                "</a>(<a href="
  49.                .$row['Homepage'].
  50.                " target=_blank>Homepage</a>) schrieb um "
  51.                .$row['Zeit'].":";
  52.              }
  53.            else
  54.              {
  55.               echo "
  56.                <a href=\"mailto:"
  57.                .$row['Email'].
  58.                "\">"
  59.                .$row['Name'].
  60.                "</a> schrieb um "
  61.                .$row['Zeit'].":";
  62.              }
  63.           }
  64.        else
  65.           {
  66.            if ($row['Homepage']!='' and
  67.                $row['Homepage']!='http://')
  68.             {
  69.              echo  
  70.                 $row['Name'].
  71.                 " (<a href="
  72.                 .$row['Homepage'].
  73.                 " target=_blank>Homepage</a>)
  74.                 schrieb um "
  75.                 .$row['Zeit'].":";
  76.              }
  77.            else
  78.              {
  79.               echo    
  80.                  $row['Name'].
  81.                  " schrieb um "
  82.                  .$row['Zeit'].":";
  83.              }
  84.             }
  85. echo "
  86.   </td>
  87.  </tr>
  88.  <tr>
  89.   <td>";
  90. echo "Beitrag:<br>";
  91. echo $row['Beitrag'];
  92. echo "
  93.   </td>
  94.  </tr>
  95. </table>";
  96. }

  97. ?>
     
ZeileErklärung
1Beginn des php Bereichs
2Es wird wieder die Datei miteinbezogen die uns zur Datenbank verbindet
4-5Wir gehen hir von rechts nach links. Zuerst werden die Einträge in unserer Tabelle gbuch in der Datenbanmk gezählt. Diese werden mit der Funktions mysql_fetch_row in ein Array gespeichert und die Funktion list ordnet der Variable $gesamt die Anzahl an Zeilen zu
6Für unsere Blätterfunktion benötigen wir die anzahl an Seiten auf denen die Einträge dargestellt werden sollen. Haben wir 32 Einträge und wollen wir pro Seite 10 Beiträge stehen haben so benötigen wir 4 Seiten. Also müssen wir die Gesamtzahl an Einträgen durch 10 teilen und dann zur nächst höheren ganzen Zahl aufrunden. Die macht die Funktion ceil()
9-15Hier kommt nun eine while Schleife. Es sollen soviele Links erzeugt werden wie Seiten wir benötigen. Die Links sollen zu der Browserseite führen, die unsere Datei gbuch.php darstellt aber wir wollen auch gleich eine Variable mit Wert mit übergeben damit wir auch wissen auf welcher Seite wir welche Beiträge darstellen sollen.
16Um zu wissen welche Seite wir darstellen sollen bruachen wir die Variable $seite. den Wert der Variable holen wir uns aus der Addresszeile mit $GET_['seite']. Darin ist der Wert gespeichert der auch in der Addresszeile steht.
18-21Wenn die die Variable $seite nun leer ist soll sie den Wert 1 bekommen. Es soll also die erste Seite unseres Gästebuchs angezeigt werden.
23In der Variable $start wollen wir die erste Zeile aus unserer Datenbanktabelle gbuch eintragen. Auf der ersten Seite werden dann die Zeilen 0-9 auf der zweiten Seite die Zeilen 10-19 usw. dargestellt. In den MySQL Tabellen hat die Zeile eins die Position 0. Befinden wir uns auf Seite 3 hat die Variable $start den Wert 20
25-33Hier bereiten wir das Paket vor was uns die Datenbank geben soll. Wir wollen also die Zeilen aus den Spalten Name, Email, Homepage, Beitrag, Zeit aus der Tabelle gbuch absteigend nach der Zeit sortiert aber nur die Zeilen vom Wert $start beginnend und dann die nächsten 10. DESC sortiert absteigend ASC sortiert aufsteigend. Mit LIMIT setzen wir den Start fest und die Zahl danch soll die Menge der Einträge darstellen
35Hier wird nun unser Paket aus der Datenbank angefordert oder es soll wieder eine Fehlermeldung kommen
38Es ist natürlich schön zu wissen, wieviele Leute sich insgesamt ins Geästebuch eingetragen haben, also erzeugen wir einen String mit echo der uns das darstellt.
40-105Hier ist eine while Schleife die solange läuft wie wir Einträge aus unserer Tabelle geholt haben. Mit mysql_fetch_assoc haben wir die Dateien in ein Array geschrieben.
43-46Mit diesem echo Befehl starten wir eine Tabelle die erste Zeile und ein Feld
46-95Hier stehen einige if Abfragen, diese möchte ich einzeln beschreiben
47Abfrage ob der Wert Email in unserer momentanen Zeile nicht leer ist
48-72then-Teil unserer ersten if Abfrage mit einer zweiten if Abfrage in der gefragt wird ob der Wert Homepage nicht leer ist oder nur aus 'http://' besteht also trotzdem keine Eintrag vorgenommen wurde.
51-61then Teil unser zweiten Abfrage. Der user hat seine Email und Homepage angegeben.
Hier soll er nun schreiben "Mustername (Homepage)
schrieb um 0000.00.00 00:00:00"
63-71else-Teil der zweiten Abfrage. Der User hat also nur seine Email angegeben aber keine Homepage.
Hier soll er nun schreiben "Mustername schrieb um 0000.00.00 00:00:00"
73-93else-Teil der ersten if Abfrage. Hier wir kommt wieder eine zweite Abfrage bezüglich der Homepage wie im then-Teil der ersten Abfrage.
77-85then-Teil der zweiten Abfrage. Hier hat der User keine Email eingetragen aber eine Homepage.
Hier soll er nun schreiben "Mustername (Homepage) schrieb um 0000.00.00 00:00:00"
87-92else-Teil der zweiten Abfrage. Hier hat derUser weder Email noch Homepage eingetragen.
Hier soll er nun schreiben "Mustername schrieb um 0000.00.00 00:00:00"
97-98Hier wird nun eine zweite Zeile bzw. zweites Feld in unserer Tabelle erzeugt.
99-100In der zweiten Zeile steht der Beitrag, den der Besucher verfasst hat.
107Ende

Besonders wichtig ist, dass alle Dateien in einem Ordner gespeichert wurden.
Hoffe dieses Tutorial war einigermaßen verständlich, aus diesem Grund habe ich mich auch entschlossen ein Turorial über ein dateibasiertes Gästebuch an dieses nicht  dranzuhängen, sondern einen neuen Artikel dazu zu schreiben. Falls ihr noch Fragen habt könnt ihr mit gern Fragen stellen und falls ihr Verbesserungsvorschläge habt
könnt ihr sie auch gern mitteilen. Ich selbst hab auch erst vor ein paar Wochen angefangen mich in php einzuarbeiten als ich endlich auch mal eine eigene Homepage wollte. Da ich ein Gästebuch, einen Counter etc. auf meienr Page haben wollte war ich gezwungen mich in php einzuarbeiten. Wer sich das Gästebuch mal live ansehen möchte kann ja meine Seite
 besuchen.

Gruß
Artur Koehler



\(\endgroup\)
Link auf diesen Artikel Link auf diesen Artikel  Druckbare Version Druckerfreundliche Version  Einen Freund auf diesen Artikel aufmerksam machen Weitersagen Kommentare zeigen Kommentare  
pdfpdf-Datei zum Artikel öffnen, 82 KB, vom 22.10.2008 21:34:46, bisher 5899 Downloads


Arbeitsgruppe Alexandria Dieser Artikel ist im Verzeichnis der Arbeitsgruppe Alexandria eingetragen:
: Internet :: Programmierung :: Informatik :
Tutorial für ein Gästebuch [von pendragon302]  
In diesem Tutorial möchte ich euch zeigen, wie man ein datenbankbasiertes Gästebuch mit Blätterfunktion mit Hilfe von php und MySQL programmiert und euch meinen Quellcode, von vielen anderen möglichen Quellcodes, vorstellen. Es gibt sicher schon viele gute Tutorials zu diesem Thema im Internet,
[Die Arbeitsgruppe Alexandria katalogisiert die Artikel auf dem Matheplaneten]

 
Verwandte Links
 
Besucherzähler 813228
 
Aufrufstatistik des Artikels
Insgesamt 163 externe Besuche zwischen 2017.12 und 2017.12 [Anzeigen]
DomainAnzahlProz
http://matheplanet.com74.3%4.3 %
http://google.de15092%92 %
http://google.lu21.2%1.2 %
http://google.com.hk10.6%0.6 %
http://r.duckduckgo.com10.6%0.6 %
http://search.conduit.com10.6%0.6 %
http://www.vie-quotidienne.org10.6%0.6 %

Aufrufer der letzten 5 Tage im Einzelnen
Insgesamt 6 Aufrufe in den letzten 5 Tagen. [Anzeigen]
DatumAufrufer-URL
2017.12.08-2017.12.13 (5x)http://matheplanet.com/
2017.12.12 15:00https://www.google.de/

Häufige Aufrufer in früheren Monaten
Insgesamt 135 häufige Aufrufer [Anzeigen]
DatumAufrufer-URL
2012-2017 (66x)http://google.de/url?sa=t&rct=j&q=
201202-11 (18x)http://google.de/url?sa=t&rct=j&q=tutorial gästebuch
2012.12 (10x)http://google.de/url?sa=t&rct=j&q=tutorial gästebuch ohne mysql
2012.03 (9x)http://google.de/url?sa=t&rct=j&q=tuturial gästebuch
2013.06 (7x)http://google.de/url?sa=t&rct=j&q=php gästebuch mysql tutorial
2012.01 (6x)http://google.de/url?sa=t&rct=j&q=php gästebuch tutorial gbauswertung.php
2013.03 (6x)http://google.de/url?sa=t&rct=j&q=php gästebuch tutorial ohne mysql
2014.11 (5x)http://google.de/url?sa=t&rct=j&q=gästebuch programmieren php mysql
2013.04 (4x)http://google.de/url?sa=t&rct=j&q=php gaestebuch mit blätterfunktion
2012.05 (4x)http://google.de/search?safe=strict&q=turotial:gästebuch programmieren php m...

[Seitenanfang]

" Informatik: Tutorial für ein Gästebuch" | 10 Kommentare
 
Für den Inhalt der Kommentare sind die Verfasser verantwortlich.

Re: Tutorial für ein Gästebuch
von FlorianM am Sa. 10. Dezember 2005 19:43:43

\(\begingroup\)
Du hast die Überschrift bestimmt mit Word gemacht oder? biggrin\(\endgroup\)

 [Bearbeiten]

Re: Tutorial für ein Gästebuch
von pendragon302 am Sa. 10. Dezember 2005 19:53:58

\(\begingroup\)
@Florian

Jep, das ist mir auch eben grad aufgefallen smile

Gruß\(\endgroup\)

 [Bearbeiten]

Re: Tutorial für ein Gästebuch
von matroid am Sa. 10. Dezember 2005 22:55:41

\(\begingroup\)
Wenn man Web-Seiten dynamisch erzeugen will, muß man sich zunächst einmal über die Rollen- und Aufgabenverteilung der beteiligten Werkzeuge und Komponenten klar werden. Hier ein Versuch einer Erklärung:


Auf dem eigenen PC startet man einen Browser. Der Browser versteht HTML und zeigt mit HTML beschriebene Inhalte hat.

Ein Browser holt sich die HTML-Dateien, die er anzeigt von einem Web-Server.

Aus der Sicht des Browsers ist die angezeigte HTML-Datei etwas Statisches; der Web-Server liefert ihm die Datei, das ist alles.

Ein Web-Server ist eine Software, die Dateianforderungen von Browsern entgegennimmt und bedient.

Im einfachsten Fall gibt ein Web-Server dem Browser die Datei, die er haben wollte: ein Bild, eine mp3-Datei, eine auf dem Server fest hinterlegte htm-Datei.

Im fortgeschrittenen Fall hat der Web-Server die Daten für die Datenanforderung des Browser nicht schon fertig auf seiner Platte.
Der Browser bestellt beim Web-Server nur scheinbar eine bestimmte Datei. In Wirklichkeit sagt der Browser dem Web-Server, welches Programm der Web-Server ausführen soll, bzw. genauer: was der Browser als Datei ansieht, ist für den Web-Server ein Programm.
Ein php-Skript ist ein Programm, das der Web-Server im Auftrag des Browsers startet, und dessen Output eine HTML-Seite ist.
Auf diese Art erstellte HTML-Seiten nennt man: dynamisch erzeugt.
Man kann auf diese Art in jedem Augenblick und für jede Anfrage eine andere, individuelle HTML-Seite erzeugen. Beispielsweise kann man jedem Benutzer des Matheplaneten seine eigenen Forumthemen markieren, und jede neue Anfrage berücksichtigt die neuesten Daten, wozu nicht nur die Uhrzeit, sondern wesentlicher die neusten Beiträge der anderen Mitglieder gehören.

Die sich ändernden Daten, die das Salz in der Suppe der Web-Seite sind, liest das php-Skript aus einer Datenbank. In einer Datenbank kann man Daten ablegen und wieder gewinnen. Die Befehlssprache, mit der man mit der Datenbank spricht, neue Daten einfügt und vorhandene abruft, heißt SQL.

php ist eine Skriptsprache. Die mit php am häufigsten benutzte Datenbank heißt mySQL. Beides sind Open-Source-Anwendungen, als solche ohne Lizenzkosten einsetzbar.

Neben php gibt es weitere Skript-Sprachen, z.B. Perl, Python, ...
php ist eine sehr populäre und wie ich finde auch effiziente Skriptsprache.

Hier noch mal schematisch, der einfache Fall:
+-- Client-PC -+            +--- Server-Hardware ----------+
 +- Browser -+               +--- Web-Server-Software ----+
      |
      +------- fordert an ---> HTML-Datei
                                |
  zeigt an <-- sendet   --------+

Und zum Vergleich der Fall mit dynamisch erzeugten Web-Seiten:
+-- Client-PC -+            +--- Server-Hardware--------------------------+
 +- Browser -+               +--- Web-Server-Software ----+
      |                                     +-- php-Kern -+ +- Datenbank -+  
      |
      +------- fordert an ---> php-Programm --- läuft ab
                                                |
                                                +- benutzt -> Datenbank
                                                |
 zeigt an <-- sendet   ----- HTML-Datei <-------+

Mit php und Datenbank findet auf dem Web-Server deutlich mehr Aktion statt als im einfachsten Fall. Der php-Kern ist der Teil des Web-Servers, in dem die php-Befehle interpretiert werden, dort läußt das Programm an. Der php-Kern ist eine Erweiterung, über die heute alle Web-Server verfügen können. Die Datenbank ist dagegen nicht Teil der Web-Server-Software.

Abgesehen von HTML-Dateien kann man auch andere Dateitypen mit php erzeugen, z.B. kann man Bilder erzeugen (man denke an den Formelinterpreter).

Gruß
Matroid\(\endgroup\)

 [Bearbeiten]

Re: Tutorial für ein Gästebuch
von viertel am Do. 15. Dezember 2005 09:55:08

\(\begingroup\)
<style type="text/css">tt { color:blue; font-size:110%;}</style>
Hallo Artur,
ich hab mir die Sache mal durchgesehen. In fremden Sources entdeckt man ja fast immer etwas, was man noch nicht kennt.

Zuerst eine Anmerkung zum Stil.
Direkte Kommentare im Source wären sicherlich besser als die nachgestellten Kommentare. Zumindest solange es kurze Erläuterungen sind. So ist das Blättern zwischen Source und Text etwas lästig.

Interessant fand ich die echos über mehrere Zeilen. Der erzeugte Code sieht etwas ungewöhnlich aus.
Was mich aber richtig stutzig machte: der Umbruch der eingegebenen Texte geht verloren, da HTML Zeilenumbrüche im Quellcode komplett ignoriert. Benutze die Funktion nl2br() für den Text in Zeile 100:
echo nl2br($row['Beitrag']);

Gruß von PHP'ler zu PHP'ler
Dietmar\(\endgroup\)

 [Bearbeiten]

Re: Tutorial für ein Gästebuch
von pendragon302 am Do. 15. Dezember 2005 16:58:13

\(\begingroup\)
@viertel

Danke ersteinmal für den Kommentar.

An die Zeilenbrüche hatte ich nicht gedacht, als ich das Gästebuch getestet habe hatte ich meist nur ein Wort geschrieben, also sind mir die fehlenden Zeilenumbrüche nicht aufgefallen.

Hab mich letztendlich für die Kommentar in der Tabelle entschieden, weil ich einige längere Kommentare geschrieben. Wahrscheinlich wäre es am besten gewesen wenn ich die Mischung genommen hätte also die kurzen mit in den Quelltext und die langen seperat in der Tabelle. Werd es mir für das nächste mal merken.

Sind denn echo's über mehere Zeilen unüblich? Ich finde das macht es übersichtlicher als in jeder Zeile ein echo stehen zu haben.

Gruß\(\endgroup\)

 [Bearbeiten]

Re: Tutorial für ein Gästebuch
von trunx am Di. 13. Juni 2006 13:32:19

\(\begingroup\)
Hallo Artur,

auch wenn es vllt nicht mehr sehr aktuell ist, echo's über mehrere Zeilen sind natürlich möglich und wohl auch üblich, doch in deinem Fall, also z.B. bei der gbuch.php gibt es ja eigentlich nur einen einzigen php-Befehl, ansonsten nur html-code, einfacher hätte man geschrieben
<html>
...
<?php include("gbdarstellung.php"); ?>
...
</html>
Man kann, falls erforderlich, natürlich mehrere solcher php-Container im Quelltext haben; ein echo empfiehlt sich auf der anderen Seite dann, wenn innerhalb eines größeren php-Bereichs nur mal wenig html-code ausgegeben werden soll.

bye trunx\(\endgroup\)

 [Bearbeiten]

Re: Tutorial für ein Gästebuch
von Ex_Mitglied_40174 am Fr. 23. Februar 2007 22:40:39

\(\begingroup\)
hallo
aber wie kann man es machen, dass jeder im kommentar nur 1 wort reinschreiben darf, und dann erst, wenn jemand anderst nach seinem wort ein punkt gemacht hat, erst dann wieder ein kommentar mit einem wort reinschreiben darf?
ich will es so wie bei der endlosen story auf dieser seite machen: www.onlinewahn.de/ und da braucht man keinen namen und email adresse und homepage...
könnt ihr vielleicht den ganzen quellcode reinstellen, wo es schon so ist, wie ich es beschrieben habe?
wäre sehr dankbar...\(\endgroup\)

 [Bearbeiten]

Re: Tutorial für ein Gästebuch
von archre am So. 07. September 2008 14:13:14

\(\begingroup\)
hallo.
für anfänger bestimmt ein gutes tutorial, allerdings solltest du die sicherheit nicht ganz außen vor lassen, beispielsweise SQL injections wären bei deinem code ein leichtes\(\endgroup\)

 [Bearbeiten]

Re: Tutorial für ein Gästebuch
von Ex_Mitglied_40174 am Do. 21. Januar 2010 21:30:56

\(\begingroup\)
Sehr geehrte Damen und Herren,
ich habe mir gerade das Tutorial ausgedruckt und zwar wie man ein Gästebuch mit PHP erstellt.!

Mit dem schreiben der Befehle habe ich keine Probleme , aber wo was anfangt!

Eine Frage ob ich das richtig verstanden habe:
In die verbindungmysgl.php gehört
<?php

mysql-connect .......................................
mysql-select..........................................

?>
---------> Dies abspeichern unter verbindungmysgl.php

Jetzt ist die Frage gehören die Befehle
von 1 CREATE TABLE ´gbuch´ bis 9 ) TYPE = MyISAM noch in verbindungmysgl.phpoder bereits in gbuch.php ??????

------------------------------------------------
Diese Befehle 1. <?php 2. echo <h2>Gaestebuch</h2><br>"; bis 51. </table>"; gehört jedenfalls ins gbuch.php , denke ich habe ich richtig verstanden oder ?

-----------------------------------------------

Jetzt kommt die gddarstellung.php da gehört 1 <?php bis 23. heaeder (" Location: url der Datei gbuch.php);
24. ß> rein , stimmt so oder ? oder gehört das in gbuch.php noch rein ????

--------------------------

Jedenfalls gehört in die gbdarstellung.php von 1. >?php bis 107 ?> rein das ist mir völlig klar


BITTE ENTSCHULDIGEN SIE DAS ICH DAS SO HIER REINSCHREIBE ABER DANN WISSEN SIE DENKE ICH WAS ICH MEINE!

Hoffe das ich das so einigermaßen richtig verstanden habe, und meine Hochachtung für so ein tolles Tutorial, endlich mal wo ganz genau beschrieben wird wies gemacht wird und nicht nur halbe Sachen!

mfg Michael






\(\endgroup\)

 [Bearbeiten]

Re: Tutorial für ein Gästebuch
von kostja am Fr. 22. Januar 2010 10:47:45

\(\begingroup\)
Es wäre besser diese Frage im Forum zu stellen. Nicht viele Leute achten auf die Kommentare zu Artikeln, deshalb könnte diese Frage erst spät von den "Fachleuten" entdeckt werden.

Herzlichen Gruß
Kostantin\(\endgroup\)

 [Bearbeiten]

 
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest © 2001-2017 by Matroids Matheplanet
This web site was made with PHP-Nuke, a web portal system written in PHP. PHP-Nuke is Free Software released under the GNU/GPL license.
Ich distanziere mich von rechtswidrigen oder anstößigen Inhalten, die sich trotz aufmerksamer Prüfung hinter hier verwendeten Links verbergen mögen.
Lesen Sie die Nutzungsbedingungen, die Distanzierung, die Datenschutzerklärung und das Impressum.
[Seitenanfang]