Ordner erstellen mit PHP
-
hi alle
ich habe ein problem mit dem erstellen von unterordner mit php. folgendes:
/home/www/ ist der hauptpfad der bereits existiert. nun soll da ein main folder rein der mittels einer variable $user erstellt wird. also so:
mkdir("/home/www/$user", 0777);
das klappt soweit auch nur ist CHMOD nicht auf 777 sondern 755. das ganze mache ich also gleich so:
mkdir("/home/www/user");
mkdir("/home/www/user/img");
mkdir("/home/www/$user/cgi");was hier nun nicht funktioniert ist, dass die ordner doc, img und cgi
nicht erstellt werden. der ordner für user/doc"); oder mkdir("/home/www/$user", true); etc. ging leider alles nicht. jetzt wo könnte das problem liegen, weil wie gesagt, der $user ordner wird ja erstellt also an der premission kanns nicht liegen.gibt es noch eine möglichkeit odner mit unterordner zu erzeugen? vielen dank schonmal.
-
When safe mode is enabled, PHP checks whether the directory in which you are about to operate has the same UID (owner) as the script that is being executed.
oder
du hast keine Rechte eine Unterordner zu erstellen.
PHP läuft immer mit den Rechten des Webservers.
Wenn dieser User keine Rechte hat dann geht es auch nicht. Vielleicht hat der User ja Rechte um einen Hauptordner zu erstellen aber keine Unterordner.
-
gondaa schrieb:
CHMOD("/home/www/$user");
Das dürfte problematisch sein. Laut PHP-Referenz kennt die Funktion chmod() keinen Standardwert für den Berechtigungsparameter. Du müsstest die Funktion also schon wie folgt aufrufen:
chmod("/home/www/$user", 0777);
Prüfe mal per FTP, welche Berechtigungen dein $user-Verzeichnis nach dem Ausführen deines Skriptes hat.
Btf: Ich hoffe doch stark, dass dein Skript im Bezug auf $user gegen Parametermanipulation gesichert ist, oder?
@user
Ich interpretierte den von dir zitierten Text im Bezug auf das "Current Work Directory", also das momentane Arbeitsverzeichnis von PHP, das mit getcwd() ermittelt und mit chdir() gesetzt werden kann, und nicht darauf, in welchem Verzeichnis du Dateioperationen auszuführen versuchst.
-
ich hoffe mal das user nicht ../../etc/ genannt werden dürfen ;P
-
@user: wie kann ich überprüfen welcher benutzer benutzt wird und wie kann ich dafür sorgen das er auch rechte hat um unterordner zu erstellen?
@árn[y]ék: yepp, habs in der eile nur vergessen
@r0nny: nein dürfen sie nicht
-
erstelle eine ornder und sieh dir mit root dann an wer der berechtigte ist und welche rechte die anderen haben.