| (PERL) was für eine Datenbank ? | wie sicher schreiben ?
Torwächter
- datenbank
Hallo zusammen,
seit längerem habe ich einen Userbereich welcher über eine .db (eigentlich .txt aber die Endung is eben .db) läuft.
Nun bringt das aber große Probleme mit sich, wenn z.B. wieder einmal die 50MB Webspace voll sind und sich ein User einlogt (die Datenbank ist dann leer)
So wird z.B. einem User eingelogt:
............................................
-Datei einlesen (öffnen,lesen,schließen)
-Datei öffnen
foreach $zeile(Datei)
{
($name,$pass,$logs)split(..|..$zeile)
if (Usernameneingabe eq $name)
{
$logs = $logs + 1;
write DATEI "$name|$pass|$logs";
}
else
{write DATEI "$zeile";}
-Datei schließen
............................................
Ihr seht, ich laufe so immer Gefahr meine Datenbank zu verlieren.
FRAGE:
Soll ich eine andere Datenbank nehmen ? (MySQL...)
-wenn ja, wo finde ich eine gute Doku ?
Wie kann man die oben beschriebene Funktion so schreiben, dass meine Daten nicht bei jedem Login in Gefahr sind ?
Vielen Dank für eure Mühe
Greetings
Torwächter
Hi,
Nun bringt das aber große Probleme mit sich, wenn z.B. wieder einmal die 50MB Webspace voll sind und sich ein User einlogt (die Datenbank ist dann leer)
aber nur, weil Du kein File-Locking (flock) verwendest. Nein, das ist nicht trivial und erfordert, einiges zu erlernen.
Ihr seht, ich laufe so immer Gefahr meine Datenbank zu verlieren.
Du solltest Dir eines bewusst machen:
*Eine* *Datei* *ist* *_/keine/_* *Datenbank*
Da gehört wesentlich mehr zu, als nur Daten irgendwo abzulegen. Und ja, wenn Du von einer Datenbank redest, dann möchtest Du in Wirklichkeit auch eine verwenden.
Soll ich eine andere Datenbank nehmen ? (MySQL...)
Nein: Du sollst eine Datenbank verwenden. Die kümmert sich um solche Sicherheitsmechanismen.
-wenn ja, wo finde ich eine gute Doku ?
Zur Datenbank: beim Hersteller. Zur Einbindung in Perl: in perldoc DBI.
Wie kann man die oben beschriebene Funktion so schreiben, dass meine Daten nicht bei jedem Login in Gefahr sind ?
Bei der Verwendung einer (bewährten) Datenbank existiert Dein Problem nicht mehr.
Cheatah
Hallo Cheatah,
Bei der Verwendung einer (bewährten) Datenbank
existiert Dein Problem nicht mehr.
Heißt "bewährt" in diesem Kontext "transaktionssicher"?
Dann wäre mySQL (ohne Angabe des Tabellentreibers)
nämlich nicht ausreichend ...
Viele Grüße
<img src="http://www.schroepl.net/projekte/gzip_cnc/gzip_cnc.gif" border=0 alt=""> Michael