Wie realisiere ich das: online in Liste eintragen.
Achim Sieger
- programmiertechnik
Hallo ihrs,
meine Frage ist sicherlich recht leicht zu beantworten, ich selber habe aber keine Ahnung weil ich mich noch nie damit beschäftigt habe.
Ich möchte gerne für meinen Verein eine Homepage machen, in der die Leute sich online für einen Kurs anmelden könen.
Das ganze soll so funktionieren, dass man über ein Formular eine Eingabe macht, die den Kurstermin und den Namen + Email Adresse etc enthält. Diese Daten sollen dann an eine Tabelle (?) geschickt werden.
Wenn ich dann die Tabelle per FTP vom Webserver lade und öffne, möchte ich gerne die Liste der Anmeldungen einsehen können.
Eventuell soll diese Liste mit dem aktuellen Stand der Anmeldungen auch über das Internet direkt auf der Homepage einsehbar sein.
Womit kann ich das realisieren und gibt es irgendwo Vorlagen, die ich auf meine Bedürfnisse anpassen kann ?
Vielen Dank für die Hilfe !
Gruß - Achim
Womit kann ich das realisieren und gibt es irgendwo Vorlagen, die ich auf meine Bedürfnisse anpassen kann ?
Hi!
Mit serverseitiger Programmierung und einer entsprechenden Datenbank.
Vorschlag:
PHP + MySQL
Alternative:
ASP + MS Access
Je nachdem was bei Deinem Provider möglich ist.
MfG
MarkX.
Hi,
Vorschlag:
PHP + MySQL
da er Anfänger ist, ist von PHP abzuraten. Perl über CGI tut's mindestens ebenso gut. Da zudem die Liste per FTP zugreifbar sein soll, ist eine Datenbank nicht wirklich hilfreich.
Alternative:
ASP + MS Access
Microsoft-Produkte sind _immer_ zu vermeiden, wenn man sich mit der Technik nicht _immens_ gut auskennt und die Probleme abzuschätzen in der Lage ist.
Cheatah
Hi!
da er Anfänger ist, ist von PHP abzuraten. Perl über CGI tut's mindestens ebenso gut. Da zudem die Liste per FTP zugreifbar sein soll, ist eine Datenbank nicht wirklich hilfreich.
Warum? Bist Du der Meinung, daß es mit Perl einfacher zu realisieren ist? Da bin ich anderer Ansicht. Eine Datenbankmanipulation mit PHP ist wirklich sehr simpel. Die Datenbankdatei kann er doch einfach per FTP runterladen. Kein Thema.
Microsoft-Produkte sind _immer_ zu vermeiden, wenn man sich mit der Technik nicht _immens_ gut auskennt und die Probleme abzuschätzen in der Lage ist.
Mag sein. Auch wenn ich selbst noch keine Probleme damit hatte.
MfG
MarkX.
Hi,
da er Anfänger ist, ist von PHP abzuraten.
Warum?
über die Sicherheitsrisiken und konzeptionellen Unzulänglichkeiten von PHP siehe bitte Archiv.
Bist Du der Meinung, daß es mit Perl einfacher zu realisieren ist?
Nein, aber auch nicht schwerer. Vor allem hat er mit weniger Problemen zu kämpfen, *die er nicht mal kennt*, geschweige denn _er_kennt.
Eine Datenbankmanipulation mit PHP ist wirklich sehr simpel.
Mit Perl ist sie auch nicht schwieriger.
Die Datenbankdatei kann er doch einfach per FTP runterladen. Kein Thema.
Argl. Von hinten durch die Brust ins Auge oder wie? Nimm's mir bitte nicht übel, aber sowas sollte man nur machen, wenn man keine andere Wahl hat...
Cheatah
Argl. Von hinten durch die Brust ins Auge oder wie? Nimm's mir bitte nicht übel, aber sowas sollte man nur machen, wenn man keine andere Wahl hat...
Gut Ok. Ganz ernsthaft gefragt: Wie würdest Du das machen mit dem FTP-Zugriff für die Datenbank? Wie wäre Dein Ansatz?
MfG
MarkX.
Hi,
Wie würdest Du das machen mit dem FTP-Zugriff für die Datenbank?
ich würde _keine_ Datenbank verwenden, wenn ich nur Daten anhängend schreiben will. Es gibt kaum eine weniger problematische Anwendung für Dateien. _Wenn_ ich - aus welchen Gründen auch immer - eine Datenbank einsetze, dann würde ich keinen FTP-Zugriff machen, sondern mir ein Export-Frontend bauen, welches z.B. im einfachsten Fall einen CSV-Dump der Tabelle erzeugt.
Cheatah
_Wenn_ ich - aus welchen Gründen auch immer - eine Datenbank einsetze, dann würde ich keinen FTP-Zugriff machen, sondern mir ein Export-Frontend bauen, welches z.B. im einfachsten Fall einen CSV-Dump der Tabelle erzeugt.
Verstehe Bahnhof. Hast Du Quellen parat, wo ich was dazu finde. Interessiert mich nämlich.
Danke!
MarkX.
Hi MarkX,
_Wenn_ ich - aus welchen Gründen auch immer - eine Datenbank einsetze, dann würde ich keinen FTP-Zugriff machen, sondern mir ein Export-Frontend bauen, welches z.B. im einfachsten Fall einen CSV-Dump der Tabelle erzeugt.
Verstehe Bahnhof.
"CSV" heißt "comma separated variable", wie Dir Google sofort erklärt hätte.
Wobei "comma" nicht wörtlich zu verstehen ist, sondern durch "eindeutig erkennbares Feldtrennzeichen" ersetzt werden darf (in vielen Anwendungsfällen kann das auch ein whitespace sein - immer dann, wenn ein solches nicht Inhalt eines der dadurch zu trennenden Felder sein darf), also ein Format, welches jeden Datensatz durch eine Zeile der Datei darstellt und die Felder eines Datensatzes durch eindeutige Trennzeichen voneinander abgrenzt. (Die Archiv-Suche verwendet beispielsweise genau so ein Datenformat für ihre Indexdateien.)
Ein ausschließlich schreibender und noch dazu nur anhängender Zugriff auf eine Datei läßt sich ganz einfach dadurch realisieren, daß die Datei im "append"-Modus geöffnet wird. Eine solche Datei ist dann nach dem Download auf dem Client mit beliebiger Trivial-Software (Editor, Viewer etc.) problemlos lesbar.
Eine Datenbank verwendet man eher dann, wenn man sehr viel komplexere Dinge tun will - beispielsweise hochperformant bestimmte Datensätze über Index-Zugriffspfade aus riesigen Datenmengen herausholen, oder mehrere Datenobjekte in einer unteilbaren Operation (Transaktion) konsistent ändern.
Und weil die entsprechende Datenstruktur zu diesem Zweck intern sehr viel komplexer aufgebaut ist, nützt es wenig, die komplette Datenbank auf den Client zu transportieren - weil nur eine entsprechend spezialisierte, proprietäre Software dieses Datenformat lesen kann (und folglich auf dem Client installiert sein muß).
Wenn aber tatsächlich eine Kombination beider Anwendungsfälle vorliegt (die Daten müssen also in komplexer Weise manipuliert werden, sollen aber trotzdem in trivialer Weise gelesen werden) dann ist das Datenbanksystem üblicherweise in der Lage, die komplexe Darstellungsform in die triviale zu konvertieren - üblicherweise durch eine Export-Funktion. Und das CSV-Format hat sich für diesen Zweck weitgehend durchgesetzt und wird von vielen verschiedenen Anwendungen (Tabellenkalkulationen etc.) verstanden (ggf. nach entsprechender Konfiguration dieser Anwendung, der man ja beispielsweise das konkrete Feldtrennzeichen mitteilen muß).
Aber ein solcher Anwendungsfall liegt hier offensichtlich nicht vor - deshalb reicht eine einfache, am Ende erweiterte Datei. Wobei dies nicht bedeutet, daß nicht trotzdem Bedarf an serverseitiger Programmlogik zur Synchronisation der Dateizugriffe bestünde ...
Viele Grüße
Michael
Hi,
Wobei dies nicht bedeutet, daß nicht trotzdem Bedarf an serverseitiger Programmlogik zur Synchronisation der Dateizugriffe bestünde ...
anhängende Schreibzugriffe sind atomar, da braucht nichts synchronisiert zu werden.
Cheatah
Hi Cheatah,
anhängende Schreibzugriffe sind atomar, da braucht nichts synchronisiert zu werden.
oh - echt? Auch im Allgemeinen? Wer sagt denn dem OS, wie viele Zeilen angehängt werden sollen?
{ open(">>"); print(); sleep(10000); print(); close(); }
Viele Grüße
Michael
Hallo Achim,
das ist mit PHP und einer Mini-Datenbank oder auch nur einem Textfile lösbar. Vielleicht solltest du dir mal ein paar PHP-Tutorials durchlesen, bei denen Daten in Textfiles auf den Server geschrieben werden (z.B. ein simples Gästebuch). Das dürfte leicht so anpassbar sein, dass es für dich nutzbar ist. Das Einbinden der Daten kann dann ja über den include-Befehl von PHP erfolgen.
Viele Grüße
Ben
Vielleicht solltest du dir mal ein paar PHP-Tutorials durchlesen, bei denen Daten in Textfiles auf den Server geschrieben werden (z.B. ein simples Gästebuch).
Moin moin,
aber bei Textfiles sollte darauf geachtet werden, dass der Webserver(bzw. eher die Others) dann auch Schreibrechte bekommt.
Aber eine MySQL-DB und PHP ist die bessere Lösung...
gruß
Sascha
Hi Sascha
Aber eine MySQL-DB und PHP ist die bessere Lösung...
Kommt darauf an. Er möchte die Daten ja vorrangig herunterladen und ansehen. Dafür wäre ein Textfile wohl sinniger, da er ja anscheinend noch keine Ahnung von PHP und MySQL hat.
Viele Grüße
Ben
Er möchte die Daten ja vorrangig herunterladen und ansehen. Dafür wäre ein Textfile wohl sinniger, da er ja anscheinend noch keine Ahnung von PHP und MySQL hat.
Hi Ben,
okay überredet ;-) aber es ist ein Sicherheitsrisiko.. da der Werbserver dann Schreibrechte besitzen muss..
und wenn eine Datenverwaltung betrieben werden möchte ist dies ziemlich umständlich...
aber egal wie gesagt überredet ;-)
gruß sascha
Hallo Sascha,
okay überredet ;-) aber es ist ein Sicherheitsrisiko.. da der Werbserver dann Schreibrechte besitzen muss..
was ist daran unsicherer, Schreibrechte auf das Dateisystem zu haben, als Schreibrechte auf die Datenbank zu haben? Da kann man auch Müll reinschreiben und Hintertüren öffen.
Der Webserver (wwwrun bei Standard-Installation) benötigt doch nur ein Verzeichnis, in dem er sich austoben darf. Alle anderen Verzeichnisse bleiben für ihn verborgen oder sind nur lesbar (document root). Natürlich sollte man die Daten ausserhalb der Dokument root unterbringen, damit sie nicht mit dem HTTP-Browser abgerufen werden können. Und Others sollten schon gar keine Rechte auf das verzeichnis haben.
Wenn Achim dort komplexte Daten in Textdateien abspeichern will, dann sollte er sich auch sie beiden recht nütlichen PHP-Funktionen serialze und unserialize anschauen. Das erspart ihm, über die Datenorganisation lange nachdenken zu müssen.
Zum Lesen der datei nimmt man dann File(). Die Datei wird im Ganzen eingelesen und da in jeder Zeile jetzt ein verpacktes Array steht, kann man nach dem unserialize() eicht was korrigieren, hinzufügen oder entfernen und es dann wieder selialisiert in die Zeile zurückschreiben. Aber dran denken, dass am Ende der Zeile immmer ein Newline steht (stehen muss).
Liebe Grüße aus http://www.braunschweig.de
Tom
Hi Thomas,
Der Webserver (wwwrun bei Standard-Installation) benötigt doch nur ein Verzeichnis, in dem er sich austoben darf.
habt Ihr alle noch nie auf einem WWW-Server gearbeitet, auf dem CGI-Anwendungen unter der Benutzerkennung des Owners der Datei ausgeführt werden?
(http://httpd.apache.org/docs/suexec.html)
Ich kann mir das Arbeiten ohne einen solchen Mechanismus gar nicht mehr richtig vorstellen ...
Viele Grüße
Michael
Hallo Michael,
das ist ja toll, dass ich das nun auch endlich mal lerne *gg*
Das geht dann aber nicht mit PHP als API-Modul, oder?
Gibts da auch ne Möglichkeit? Oder habe ich nur falsch gelesen?
Liebe Grüße aus http://www.braunschweig.de
Tom