Hello,
Und da liegt ja eben mein hauptsächliches Problem.
Normalerweise (also so hab ich das in Erinnerung), werden die Dateien sowie Verzeichnise bei Mode "w" erstellt und dann wird in diese geschrieben.
Das gilt nur für Linux und 'mkdir -p pfad/zur/datei'. PHP hat dies in mkdir übernommen mittels des 'recursive'-Flags. Das hast Du aber gar nicht gesetzt, da Du ja mkdir gar nicht benutzt :-)
Der gesamte Aufbau ist außerdem äußerst gefährlich für Deinen Server. Die User könnten so fast überall auf dem System (wo PHP Zugriff hat) herumschreiben, wenn der Provider geschlafen hat, auch in den Datenbereichen anderer User / Domains.
Du solltest immer erst
-
Daten übernehmen
dazu müssen die Post-Parameter nicht umkopiert werden, sondern besser gefprüft werden
ob alle erwarteten Parameter gesendet wurden, ob keine unerwarteten gesendet wurden,
ob die erwarteten im erlaubten Wertebereich liegen -
gesendete Daten auswerten und die passenden Entscheidungen daraus ableiten
-
die entschiedenen Aktionen durchführen, berechnete Daten wegschreiben, usw.
-
aus den entstandenen Daten die Antwort berechnen
und ganz zum Schluss die Antwort senden
Versuch mal, das Script zu sortieren.
Das if/else gehört auf jeden Fall _vor_ die Aktionen
Außerdem solltest Du Benutzerdaten nicht innerhalb der Dokument Root speichern.
Du könntest den Nutzernamen, seine eMail und sein Passwort auch zusammen mit denen der anderen User in einer einzigen Datei speichern. Bei wenigen Usern (bis 500MB Dateigröße) bietet sich für diese Datei dann ein serialisiertes Array ("Spaltenarray") an. Darin solltest Du ca. 5.000 Userdatensätze unterbringen können.
Lies Dir dann als nächstes bitte die zwei Artikel durch
http://aktuell.de.selfhtml.org/artikel/programmiertechnik/dateisperren/
http://wiki.selfhtml.org/wiki/Artikel:Kontextwechsel
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg