dedlfix: SAFE MODE

Beitrag lesen

echo $begrüßung;

Warning: move_uploaded_file(): SAFE MODE Restriction in effect. The script whose uid is 650 is not allowed to access /var/www/****/html/pics/20070207 owned by uid 33 in /var/www/****/html/fotos.php on line 105

Das Verzeichniss "pics" kann ich ganz am Ende ohne Probleme mit mkdir(Ordnername, 0777) erstellen. Bei dem Verzeichniss zum Bild muss ich den chmod noch extra mit chmod(Ordnername, 0777) setzen. Der chmod von mkdir() wird da einfach nicht angewendet bzw. auf 755 (glaub ich - oder 750?) gesetzt. Wieso ist das so?

Das Handbuch zu mkdir() weiß zu berichten, dass die umask dabei eine Rolle spielt.

Die nächste Frage wär dann schon zum SAFE MODE.
Wenn ich die Datei nur in das Verzeichniss "pics" schieben will geht das ohne Probleme, in das Unterverzeichniss allerdings nicht. Ich kann das Verzeichniss $verz = "../pics/".$datum; erstellen aber die Datei nicht hinein schieben obwohl es auf dem gleichen Weg erstellt wurde und die selben Rechte besitzt wie das Übergeordnete Verzeichniss wo es funktioniert. Kann mir das bitte jemand erklären?

Das ist ein Feature des Safe-Modes. Die Fehlermeldung sagt schon alles aus. Das Script, das von dir als User 650 hochgeladen wurden und damit diesem gehört darf nicht auf das Verzeichnis zugreifen, das den Benutzer 33 (das wird der Apache sein) gehört, denn dieser hat es angelegt.

Wie finde ich einen Ausweg aus dieser "Zwickmühle"?

Wie so viele andere vor dir auch: Wechsle den Provider, warte auf PHP 6, verwende ein Upload-Script. Details dazu dürftest du zur Genüge finden, wenn du mach der Fehlermeldung (ohne die konkrete uid und den Verzeichnisnamen) eine Suchmaschine befragst, z.B. das hiesige Archiv.

echo "$verabschiedung $name";