PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Datenbank bzw. Benutzerverwaltung


knut
07.05.2002, 23:27
Hallo

Ich plane zur Zeit ein Projekt und bin gerade am Überlegen wie ich am besten die Daten der Benutzer dieses Projekts verwalten kann. Der Benutzer soll ich die Möglichkeit haben seine Daten bzw. sein Profil (email adresse, homepage usw.) zu ändern, er soll sich die Profile der anderen Benutzer ansehen können und ausserdem soll er die komplette Benutzerliste einsehen können. Weiters soll dass Script nachdem sich der Benutzer eingelogged hat erkennen können ob dieser noch online ist. Wenn das Script erkennt das ein User offline gegangen ist bzw. er sich ausgelogged hat soll es die Zeit die er online war in die Datenbank schreiben. Wenn ihr glaubt ich arbeite an einem Message-Board dann liegt ihr ziemlich richtig aber es wird nur etwas ähnliches. Im Moment stehe ich aber an weil mir noch kein System für die Benutzer-Verwaltung eingefallen ist.

Also, mein Problem ist dass ich für dieses Projekt nur Freewebspace zur Verfügung habe und dort meist nur die Standarddistribution installiert ist und es unmöglich ist eigene Module zu installieren. Mit MySQL zB. kann ich die Datenbank also nicht "bauen". Könnt ihr mir vielleicht Tipps geben wie oder womit ich ein intelligentes und vor allem schnelles Datenbank-System für mein Projekt "bauen" kann?

gruß
knut


Maik
08.05.2002, 00:32
Wenn dir das auch vielleicht nicht weiterhilft.
Das beste ist einfach MySQL, es gibt auch Freewebspace mit MySQL. Frag mich aber jetzt nicht wo.
Und wenn du MySQL nimmst dann würd ich das ganze in PHP machen.

Xothous

K21
08.05.2002, 07:33
www.tripod.de hat z.B. 50mb php/mysql webspace für lau

Jonas
08.05.2002, 16:48
Original von Xothous
Wenn dir das auch vielleicht nicht weiterhilft.
Das beste ist einfach MySQL, es gibt auch Freewebspace mit MySQL. Frag mich aber jetzt nicht wo.
Und wenn du MySQL nimmst dann würd ich das ganze in PHP machen.

Xothous

Warum? Perl tut mit MySQL zusammen genauso gut wie PHP, und auf lahmen Freehostern mit noch lahmerem MySQL merkt man Geschwindikeitsmäßig auch keinen Unterschied :D

Achso wegen deiner DB, solltest du keine DB haben:
Du könntest zum Beispiel für jeden User 2 Dateien anlegen a là loginname_profil.pl und loginname_log.pl. Der Loginname darf halt nur buchstaben, zahlen, und _ enthalten.
in die loginname_profil.pl kommen die normalen Profildaten, in jede Zeile eine Angabe. in loginname_log.pl machsts dann so, daß da drin jeder klick des users ans ende der datei angehängt wird, also immer in ne neue zeile[flock nicht vergessen]
so eine zeile könnte etwa so aussehen:
[SekundenSeit1970]:[IP]:[URL]
Die sekunden seit 1970 bekommst über time(). die weiteren angabn sind eingentlich unnötig, aber is denke ich ganz nett wenn du die ip mitprotokollierst...
naja nachher beim auslesen musst einfach immer die aktuelle zeitangabe minus die vorherige machen, und wenn zB etwas mehr als 7200 (= 2 H) rauskommt, kannst ja davon ausgehen daß es "ein neuer Besuch" ist...

knut
08.05.2002, 21:52
Erstmal Danke für eure Antworten.

MySQL is bestimmt nicht schlecht aber um es mit PERL nutzen zu können braucht man doch ein spezielles Modul, nicht? Und wie gesagt gibt es keine Freehoster (ohne Werbung!) die MySQL und PERL bieten und wenn doch dann sind diese ziemlich kurzlebig (F2S.com zB). Die Idee jeden Benutzer eine eigene Textdatei für sein Profil zu spendieren hatte ich auch schon und sie gefällt mir besser als alles zusammen in eine einzige Textdatei zu packen aber ein Nachteil ist die Geschwindigkeit. Ich hab mal einen Benchmark mit 1000 Files gemacht. Aus allen 1000 Files die Daten auslesen und in ein Array zu packen dauerte in etwa zweieinhalb Sekunden. Viiiiel zu lange. Aber wenn mir nix besseres einfällt dann dauert das Anzeigen der Memberlist eben etwas länger.

Gruß
Knut

Jonas
09.05.2002, 13:08
Naja, ich würde dir für jedes Mitglied eine eigene Datei empfehlen, zumindest für die Logs...

knut
09.05.2002, 18:03
also ich bin gerade draufgekommen das ich viel zu bequem programmiere (anfänger eben ;)). anstatt jedes einzelne "manuell" zu öffnen und einzulesen habe ich die viel langsamere "require" methode verwendet.

anstatt mit require mache ich es jetzt so:

$anfang = (times)[0];
$i=0;
opendir(TEST,"test");
while($datei = readdir(TEST))
{
$i++;
if($i > 2)
{
open(TEST,&quot;<test/$datei&quot;);
@test = <TEST>;
close(TEST);
}
}
closedir(TEST);

$ende = (times)[0];

printf &quot;Der Code hat fuer das Einlesen von $i Dateien %.2f Sekunden gebraucht!\n&quot;, $ende - $anfang;

hier die ergebnisse

Der Code hat f³r das Einlesen von 2068 Dateien 0.69 Sekunden gebraucht!

Der Code hat fuer das Einlesen von 2068 Dateien 0.63 Sekunden gebraucht!

Der Code hat fuer das Einlesen von 2068 Dateien 0.60 Sekunden gebraucht!

Der Code hat fuer das Einlesen von 1107 Dateien 0.34 Sekunden gebraucht!

mit require dauerte das einlesen von 1000 dateien 2,72 sekunden!

also, da ich mit weniger als 1000 members rechne bin ich mit dem ergebnis zufrieden.

gruß
knut