tinu: Gästebuch mit PHP&SQL, PHP und Textdatei oder Sonstiges?

Hallo allerseits!

Ich hab die Aufgabe ein Gästebuch zu programmieren und hab das zuvor noch nie gemacht. Es sollte mit einem Spamschutz (am besten wohl zufallsgenerierte Code-Bildchen) ausgestattet sein, ein paar Smilies und einem Administrationsbereich in welchem unerwünschte Einträge vom Administrator gelöscht, zensiert (also verändert) und bestimmte Worte gesperrt werden können. Zudem sollte die Darstellung der Einträge formatierbar sein (also nicht bloss name - text - strich - nächster name...).

Jetzt zu meiner Frage. Was ist dabei die einfachste Methode, bei der die obenstehenden Bedingungen gut erfüllt werden?
Ein PHP-Gästebuch bei welchem die neuen Einträge in einer SQL Datenbank gespeichert werden und die Einträge bei Abruf des Gästebuchs von der Datenbank abgerufen werden?
Ein PHP-Gästebuch bei welchem die Einträge in einer Textdatei/PHP-Datei/HTML-Date gespeichert werden?
Oder gibts eine noch bessere Möglichkeit die ich jetzt gänzlich vergessen habe?

Gruss
tinu

  1. hi,

    Ein PHP-Gästebuch bei welchem die neuen Einträge in einer SQL Datenbank gespeichert werden und die Einträge bei Abruf des Gästebuchs von der Datenbank abgerufen werden?

    Eine Tabelle in einer DB ist die beste Möglichkeit, Einträge zu speichern. Darüber hinaus nimmt Dir das Transaktionskonzept die Arbeit ab, etwaige Probleme mit gleichzeitigem Schreiben neuer Einträge selbst lösen zu müssen.

    roro

    1. hi roro

      Dankeschön! Klingt logisch. Dann werde ich das mal so versuchen.

      Gruss
      Tinu

      1. hi Tinu,

        ich habe am Anfang auch viel mit Text-Dateien rumgewurschtelt. Das Hauptproblem dabei sind Race-Conditions, die auftreten, wenn mehrere Prozesse auf einunddieselbe Datei schreibenderweise zugreifen. Wohl gibt es Mechanismen, die sowas locken, aber DBs, auch MySQL haben transaktionssichere Tabellen.

        Weiterere Vorteile einer DB:

        -Sortieren nach bestimmten Spalten (Feldern),
        -SELECTs auf bestimmte Records (WHERE Klausel) um z.B. einen bestimmten Datensatz, odere mehrere rauszufischen,
        -LIMIT in MySQL erlaubt es, Fenster zu setzen auf die Auswahl, z.B. Einträge von 0-20, 21-30, 31-40 usw. häppchenweise auszugeben,
        -Indizierung für optimale Suche usw.

        Alles Dinge, die mit FlatFiles (Text) nur schwer oder sehr umständlich, wenn überhaupt, machbar sind.

        Scriptsprachen wie PHP, PERL bieten Schnittstellen für DB-Zugriffe an, die in der Praxis recht einfach zu handhaben sind.

        In PERL z.B. das DBI, was schichtenweise aufgebaut ist und ab einem bestimmten Layer unabhängig von der eigentlichen DB-Engine ist. Damit ist es möglich, ein PERL-Script, was bisher auf einem ODBC-Treiber zu MySQL-Server lief, ruckzuck umzuschreiben für MySQL oder Postgresql ohne Fisimatenten (von einigen Besonderheiten des RDMS mal abgesehen).

        Einzig und artig sind für mich in meiner Praxis außer relationalen DBs noch die linearen DBs interessant, wie Berkeley-Datenbanken nahe an der Dateisystemebene.

        roro

        1. Sch... vertippt:

          [..] ODBC-Treiber zu MySQL-Server [..]

          sollte heißen:
          ODBC-Treiber zur MS-SQL-Server.

          roro

        2. hi Tinu,
          Weiterere Vorteile einer DB:

          -Sortieren nach bestimmten Spalten (Feldern),
          -SELECTs auf bestimmte Records (WHERE Klausel) um z.B. einen bestimmten Datensatz, odere mehrere rauszufischen,
          -LIMIT in MySQL erlaubt es, Fenster zu setzen auf die Auswahl, z.B. Einträge von 0-20, 21-30, 31-40 usw. häppchenweise auszugeben,
          -Indizierung für optimale Suche usw.

          Hey :D!

          Das mit LIMIT hatte ich ja ganz vergessen :). Von PERL hab leider null Ahnung und bei Datenbankzugriffen mittels PHP bin ich auch noch ziemlich unerfahren, aber das wird schon. Learning by doing :). Hab nun schon ne entsprechende Tabelle in MySQL angelegt und bastel nun am PHP-Zugriff.
          Danke nochmals für Deine Hilfe!

          LG
          tinu (oder tattergreis... hab grad gemerkt, dass ich ja hier bereits registriert bin :D)

  2. Liebe(r) tinu,

    Jetzt zu meiner Frage. [...]
    bei welchem die neuen Einträge in einer SQL Datenbank gespeichert werden und die Einträge bei Abruf des Gästebuchs von der Datenbank abgerufen werden?
    [...] die Einträge in einer Textdatei/PHP-Datei/HTML-Date gespeichert werden?
    Oder gibts eine noch bessere Möglichkeit die ich jetzt gänzlich vergessen habe?

    GB in XML-Dateien speichern

    Liebe Grüße aus Ellwangen,

    Felix Riesterer.

    --
    ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)