You are not logged in.

  • Login

Dear visitor, welcome to Coder Forum. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

1

Tuesday, March 24th 2009, 4:44pm

PHP-Upload & Rechte

Holla :]
Habe mal wieder in Problemchen nach einem Webspacewechsel meiner Website. Ich habe einen einfach PHP-Upload darauf, der sich wie folgt aufbaut:

PHP Quellcode

1
2
3
4
5
6
$dir = $_SERVER['DOCUMENT_ROOT'].'/upload/'.time().'/';
if(!file_exists($dir)) {
 mkdir($dir,0777);
}
$pic = $dir.md5(uniqid(rand(),true)).'.jpg';
move_uploaded_file($_FILES['file']['tmp_name'],$pic);

Das hat bisher immer gut geklappt. Bisher.
Auf dem neuen Webspace erstellt er zwar den Ordner, lädt aber keine Bilder in diese. Dann habe ich es zum Test via FTP versucht, ob ich ein Foto in das Verzeichnis laden kann. Als ich dann die Meldung "Permission denied" erhielt, schaute ich mir die Benutzer des Ordners an und sah "apache apache" (Filezilla). Alle anderen haben meinen Nutzernamen als Benutzer, also liegt es warscheinlich daran.
Also habe ich unter das mkdir() noch die Zeile

PHP Quellcode

1
chown($dir,'meinbenutzername');

eingefügt und neu versucht. Wieder klappte es nicht und der Benutzer war wieder "apache apache". Gibt es eine andere Möglichkeit, Bilder in diese ständig-erstellten Verzeichnisse zu laden?
Vielen Dank :)

2

Tuesday, March 24th 2009, 5:23pm

Hi,
du kannst das ownership auf others erweitern. Also chmod 0777.
Lg

3

Wednesday, March 25th 2009, 1:11pm

Das heißt, du meinst, ich soll einfach noch ein

PHP Quellcode

1
chmod($dir,0777);

druntersetzen?

4

Wednesday, March 25th 2009, 5:01pm

Den Chmod einmalig auf 777 zu setzen sollte reichen, da er sich normalerweise nicht wieder von alleine verstellt.

5

Wednesday, March 25th 2009, 8:06pm

Wieder klappte es nicht und der Benutzer war wieder "apache apache". Gibt es eine andere Möglichkeit, Bilder in diese ständig-erstellten Verzeichnisse zu laden?


Per FTP oder via PHP Script?

Denn wenn der owner "apache" ist, dann wird auch dein php Script als owner "apache" ausgeführt und es sollte, solange Schreibrechte gesetzt sind, kein Problem geben.
Dafür musst du nichtmal 0777 setzen.

Um den Ordner für den FTP User "freizugeben" müsstest du dann, wie geschrieben, mehr Rechte geben.

6

Wednesday, March 25th 2009, 10:36pm

Ich hab die Ordner jetzt überall 0777 und trotzdem funktioniert's nicht :/
Der Ordner wird erstellt, hat auch 0777, aber das Script lädt einfach die Bilder nicht rein /:

7

Thursday, March 26th 2009, 7:54am

Dann teste es doch mal, was die Funktion sagt:

PHP Quellcode

1
2
3
4
5
if(move_uploaded_file($_FILES['file']['tmp_name'],$pic)){
   echo 'erfolgreich';
}else{
    echo 'nicht erfolgreich';
}


und schau dir nochmal genau $pic an, wenn es fehlschläft.

PHP Quellcode

1
echo $pic;

Similar threads

Social bookmarks