PHP-Problem mit unlink

Seite 1 von 1 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/php-problem_mit_unlink_210525/page_1 - zur Vollversion wechseln!


fatmike182 schrieb am 22.09.2009 um 17:24

Hallo,
ich möchte einen Ordner mit Unlink ausleeren, der Pfad sollte passen (schließlich findet er ja auch Dateien, die ich löschen möchte) aber bekomme die Fehlermeldung

Code:
Warning: unlink() [function.unlink]: open_basedir restriction in effect. File(/.) is not within the allowed path(s): (/var/www/web1060/:/tmp:/var/www/web1060:/tmp/:/usr/local/php4-cgi/lib/php/) in /var/www/web1060/html/admin/pictures.php on line 18

Warning: unlink() [function.unlink]: open_basedir restriction in effect. File(/..) is not within the allowed path(s): (/var/www/web1060/:/tmp:/var/www/web1060:/tmp/:/usr/local/php4-cgi/lib/php/) in /var/www/web1060/html/admin/pictures.php on line 18

Warning: unlink(/Picture 2.png) [function.unlink]: No such file or directory in /var/www/web1060/html/admin/pictures.php on line 18

Warning: unlink(/Picture 3.png) [function.unlink]: No such file or directory in /var/www/web1060/html/admin/pictures.php on line 18

Was muss da geändert werden? Oder geht das wirklich so nicht?
Das File das ausgeführt wird ist in einem 777-Ordner & die Files die ich löschen möchte auch.


COLOSSUS schrieb am 22.09.2009 um 17:26

Steht doch eh da. Der PHP-Interpreter fuehlt sich durch den Konfigurationswert "open_basedir" insofern eingeschraenkt, als dass das Verzeichnis, in dem das zu loeschende File liegt, nicht begruschelt werden darf. Vermutliche Loesung: Das fragliche Verzeichnis in die Liste der begruschelbaren Verzeichnisse aufnehmen, dann nochmal probieren.

Edith meint: hm. mir scheint, du uebergibst unlink() da einen asboluten Pfad, anstatt eines relativen. Dann ist das CWD natuerlich egal, und da es das File /wasauchimmer.png ziemlich sicher nicht gibt, kriegst du diesen Fehler. Lass mal den leading slash weg, oder, noch besser: unlinke den absoluten Pfad, der das File identifiziert.


fatmike182 schrieb am 22.09.2009 um 17:40

sry -- teilweise hab ich da eine Ordner-Variable übersehen, die absolut keinen Sinn ergeben hat. trotzdem Danke!

mit

Code: PHP
if (($pics_in_thumbs!=".") && ($pics_in_thumbs!=".."))
hab ich dann noch die anderen Fehlermeldungen wegbekommen.
Jetzt wird gelöscht!

Was ist die intelligenteste Variante am "." bzw ".." vorbei zu kommen? Isfile?


jives schrieb am 22.09.2009 um 22:59

Dein If-Konstrukt ist schon ok. Das wird normalerweise immer so (oder ähnlich) gehandhabt.




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2026