Zugriffsrechte

soa

Erfahrenes Mitglied
Hallo,

ich habe einen Bildupload, der soweit funktioniert.

-_> Leider wird der Befehl

chmod($pfad.$name, 777);

nicht mit ausgeführt, so dass sich das Bild nicht Anzeigen läßt.

Das Hochladen der Bilder mache ich mit

move_uploaded_file($servername,$pfad.$name);

Die Bilder liegen auch alle in dem entsprechendem Ordner.

Bei der Pfadangabe arbeite ich mit dem absoluten Pfad. Könnte das damit zusammen hängen, dass der befehl ignoriert wird ?


VG
SOA
 
Wie genau werden denn die Bilder dargestellt? Auch ueber ein PHP-Script oder direkt?
Schreibzugriff fuer jeden brauchst Du auf die Bilder uebrigens nicht setzen, 755 reicht da vollkommen.

Jedoch muessen die Bilder, zumindest im SafeMode, dem User gehoeren dem auch die PHP-Scripts gehoeren. Das kann zu einem Problem werden, denn hochgeladene Bilder gehoeren dem User mit dem die Scripts ausgefuehrt werden, was meist der User des Webservers ist und nicht der User dem die Scripts gehoeren.
Um den SafeMode zu umgehen empfehle ich Dir FTP zu nutzen, also nicht den Upload selbst per FTP vornehmen sondern ganz normal hochladen und dann mit PHP ueber FTP an die richtige Stelle schieben. So gehoeren die Dateien auch weiterhin dem User dem auch die Scripts gehoeren und Du kannst Dir solche "abenteuerlichen" (Christian wuerde wieder "EVIL EVIL EVIL" schreiben, womit er auch Recht hat) Rechte sparen.
 
Hier mal der Code:

PHP:
 if(empty($err)) 
  { 
  
  move_uploaded_file($servername,$pfad.$name);
  echo "Die Datei '.$name.' wurde erfolgreich hochgeladen!";
  $_SESSION["bild"] = $pfad.$name;
  chmod($pfad.$name, 777);

Safe_mode ist OFF.

Das Bild liegt in dem entsprechenden Ordner.

Der Owner der Datei ist der Webserver.

Ausgabe des Bildes:

PHP:
<br><br><br><br>
  <td valign="center"><img src="<?php echo $pfad.$name; ?>" alt="" height="<?php echo $groesse[1]; ?>"
 width="<?php echo $groesse[0] ?>" border="0"></td>

Witzig ist, dass die Rechte wie folgt aussehen:

- r-- --x --t // keine anhnung was das t da zu suchen hat.

VG
SOA
 
Hallo!
soa hat gesagt.:
- r-- --x --t // keine anhnung was das t da zu suchen hat.
php.net hat gesagt.:
<?php
chmod ("/somedir/somefile", 755);
// dezimal; möglicherweise falsch
chmod ("/somedir/somefile", "u+rwx,go+rx");
// String; falsch
chmod ("/somedir/somefile", 0755);
// oktal; richtiger Wert von mode
?>
Fällt Dir etwas auf?
Möglicherweise könnte die fehlende führende 0 die Ursache sein.

Und entgegen Dennis seiner Aussage ist auch 0755 EVIL EVIL EVIL (mir währe es neu dass man Bilder ausführen kann bzw. können muss ;) ).
Bei einem FTP-Upload werden Bilder per default auf 0644 gesetzt..... aber selbst 0444 (nur lesen für alle) sollte ausreichend sein.

Gruss Dr Dau
 
Das mit den vollen Zugriffsrechten war nur zum Testen .

644 ist toll und mit 0644 funktioniert die Sache. Ich denke oktal sollte man sich in diesem
Zusammenhang merken.

Vielen Dank.


:p
 
Zurück