Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] unlink
Forum PHP.pl > Forum > Przedszkole
tajniak_c
Cześć wszystkim. Mam następującą strukturę:
index.php
- zdjecie/plik.png
- skrypty/skrypt11.php

W pliku skrypt11.php mam instrukcje kasowania pliku unlink ale ten plik skrypt11.php wczytywany jest do index.php
Próbowałem następujące konstrukcje kasowania ale nie działa żadna.
  1. unlink("../zdjecie/".$zdjecie);
  2. unlink("zdjecie/".$zdjecie);


CHMOD dla tego katalogu to 777. Błąd to:
Cytat
No such file or directory in
IceManSpy
Jak robisz to na localhoście, to nie będzie działać. Musisz tam podawać ścieżki bezwzględne np C:\serwerek\zdjecie\.$zdjecie. Dopiero na serwerze jak wrzucisz na jakiś hosting będziesz mógł używać konstrukcji takiej , jak napisałeś.
Tutaj masz co to jest adres bezwzględny:
http://pl.wikipedia.org/wiki/Adres_bezwzgl%C4%99dny
Najczęściej serwery są postawione na Unixach, dlatego możemy stosować taką konstrukcję jak teraz masz. Na Windowsie trzeba z ukośnikami w drugą stronę.
tajniak_c
Wszystko robione jest na serwerze.
thek
Jeśli nie wiesz gdzie jesteś to użyj cwd i będzie wszystko jasne winksmiley.jpg I powiem tak... skoro skrypt11.php jest include'owany przez index.php, to skrypt o nim będzie myślał jako podstawowym i od niego zapewne jak zauważysz będzie wyciągał ścieżkę. A jeśli nie działa to zamiast zdjecie/$zdjecie spróbuj jeszcze ./zdjecie/$zdjecie i sprawdź czy faktycznie $zdjecie ma prawidłową nazwę w sobie.
tajniak_c
CWD wskazuje że robię wszystko dobrze. Skrypt stoi w katalogu wyżej i kończy się bez ukośnika więc daje tak:
  1. unlink("/katalog_z_zdjeciem/zdjecie.jpg");


Chmody tak jak mówiłem 777.

Co jest nie tak?
everth
Rozwiń sobie ścieżki względne w absolutne za pomocą realpath() i dopiero wówczas zobacz na co wskazują (i czy jest to prawidłowe). Co do CHMOD to sprawdzałeś również uprawnienia samych plików?
tajniak_c
Pliki mają domyślnie 644 smile.gif
everth
Zmień na 777 - na Linuxie właścicielem domyślnie jest ten który stworzył pliki - czyli jeśli wgrywałeś przez ftpa to jakiś user. Apache ma użytkownika i grupę www-data - jeśli PHP działa jako moduł apache również ma te same uprawnienia. Czyli nie jest właścicielem pliku przy 644 - nie ma prawa modyfikacji (tylko odczyt)!
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.