Moin!
In der viele unlogische Dinge passieren.
Nun ja... erster Versuch.
Weil du nicht MD5 zum Passworthashen benutzt.
hm. Da hat er mich nicht reingelassen... das habe ich für später vorgesehen, da muss ich noch was nachschauen. (Salt?)
Außerdem unlogisch: Für das Hinzufügen des neuen Users benutzt du einen Systemaufruf von
htpasswd2, zum Löschen und alle andere Aufgaben benutzt du es nicht.
siehe oben. Das ist quasi die Vorbereitung.
Sicherheitslücke: Du übergibst der Kommandozeile ohne Escaping Dateiname, Username und Passwort!!!
[x]gefixt. Allerdings ist der Dateiname "hart codiert", keine Benutzereingabe im eigentlichen Sinn.
Unschönheit: Deine Funktionsnamen fangen mal mit großen, mal mit kleinen Buchstaben an.
[x]gefixt.
Unschönheit 2: Deine Funktionen sitzen unlogisch platziert zwischen Hauptprogramm und Ausgabe.
Die habe ich normalerweise in einem Include. Seit in php die Funktionen auch unten stehen können sind die mir dort lieber. Ich progge eigentlich immer so. Programm - Routinen - Ausgabe.
Unschönheit 3: getDirName() geht auch viel einfacher: return dirname($_SERVER['SCRIPT_FILENAME']);
[x]gefixt.
Unschönheit 4: Indem das Skript selbst die Dateien .htacess und .htpasswd anlegt, werden diese bei vielen Providern nicht mehr per FTP zugänglich sein, Kopieren oder Löschen funktioniert dann nicht. Das ist durchaus sehr dramatisch!
Die Alternative wäre dem Benutzer anzuzeigen, dass diese nicht existieren. In der Konsequenz ist das aber auch unschön und nicht komfortabel. Diese werden übrigens auch nur angelegt, wenn die nicht existieren.
Zudem: hängen die Rechte, eine Datei zu löschen oder umzubenennen nicht an den Rechten des Verzeichnisses, in dem diese ist? Das heißt: die so angelegten Dateien sollten auch per FTP-löschbar sein.
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®
Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Seminare, Training, Development