Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [php] unlink problem
Hannon
post 26.11.2007, 18:19:26
Post #1





Grupa: Zarejestrowani
Postów: 52
Pomógł: 0
Dołączył: 10.02.2005

Ostrzeżenie: (0%)
-----


Jak usunąć plik zagłębiony o dwa ?
próbowałem już chyba wszystkie możliwe mi kombinacje
  1. <?php
  2. unlink('x/x/plik.jpg');
  3. unlink('/x/x/plik.jpg);
  4. unlink('./x/x/plik.jpg);
  5. ?>

Żadne nie działa.

plik ze skryptem jest w site/admin.php
a plik który chcę usunac w site/x/x/plik.jpg

Ten post edytował Hannon 26.11.2007, 19:58:46


--------------------
Go to the top of the page
+Quote Post
Cysiaczek
post 26.11.2007, 18:43:52
Post #2





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




Jaki jest komunikat błędu? Takie rzeczy trzeba podać. Czy masz uprawnienia do usunięcia tego pliku?

Pozdrawiam.


--------------------
To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness;
chaotic, confused, vulnerability, to inform yourself.
Think for yourself. Question authority.
Go to the top of the page
+Quote Post
Hannon
post 26.11.2007, 18:51:21
Post #3





Grupa: Zarejestrowani
Postów: 52
Pomógł: 0
Dołączył: 10.02.2005

Ostrzeżenie: (0%)
-----


Warning: unlink(appz_info/tyu.txt) [function.unlink]: No such file or directory in /mat/admin.php on line 317

Linia 317 to właśnie ta z unlink.

I tak, uprawnienia są ustawione na 777 z desperacji tongue.gif


--------------------
Go to the top of the page
+Quote Post
krzysiekk
post 26.11.2007, 18:53:19
Post #4





Grupa: Zarejestrowani
Postów: 155
Pomógł: 17
Dołączył: 13.03.2006
Skąd: Jaworze

Ostrzeżenie: (0%)
-----


witam moze trzeba tak zrobic
  1. <?php
  2. unlink('/usr/local/apache/www/htdocs/nazwa serwisu/folder z plikiem do usuniecia/xx.jpg');
  3. ?>
Go to the top of the page
+Quote Post
Prym
post 26.11.2007, 18:55:40
Post #5





Grupa: Zarejestrowani
Postów: 100
Pomógł: 11
Dołączył: 20.05.2007
Skąd: z fotela :)

Ostrzeżenie: (0%)
-----


hmm a probowales podac mu w unlinku scizke z mat?

czyli unlink('mat/x/x/xxx.jpg');
Go to the top of the page
+Quote Post
Hannon
post 26.11.2007, 19:07:46
Post #6





Grupa: Zarejestrowani
Postów: 52
Pomógł: 0
Dołączył: 10.02.2005

Ostrzeżenie: (0%)
-----


Oba sposoby nie działają... nawet facet z pomocy na home.pl nie moze mi odpowiedzieć co jest nie tak i czemu to nie działa tongue.gif


--------------------
Go to the top of the page
+Quote Post
Prym
post 26.11.2007, 19:10:51
Post #7





Grupa: Zarejestrowani
Postów: 100
Pomógł: 11
Dołączył: 20.05.2007
Skąd: z fotela :)

Ostrzeżenie: (0%)
-----


a to na homie?! tez mmam tam aktualnie problemy ze strona klienta - wlasnie sie dowiedzialem ze oni niemaja serwerow na apachu i polowa funkcji apachowych nie dziala sad.gif

oczywiscie to ze w 1 poscie nie zamknales apostrofow to tylko tak tuta napisales smile.gif

sproboj moze z cofnieciem sie o jeden poziom ? (moze cos ze struktura katalogowa im sie tez posypalo
unlink('../x/x/plik.jpg');
Go to the top of the page
+Quote Post
krzysiekk
post 26.11.2007, 19:17:40
Post #8





Grupa: Zarejestrowani
Postów: 155
Pomógł: 17
Dołączył: 13.03.2006
Skąd: Jaworze

Ostrzeżenie: (0%)
-----


wez stworz w katalogu z pilkiem do usuniecia plik index.php a w nim wpisz
  1. <?php
  2. print_r($_SREVER);
  3. ?>

i zobaczysz w jakim katalogu jestes a potem to juz zrobisz unlink
Go to the top of the page
+Quote Post
Hannon
post 26.11.2007, 20:12:52
Post #9





Grupa: Zarejestrowani
Postów: 52
Pomógł: 0
Dołączył: 10.02.2005

Ostrzeżenie: (0%)
-----


Krzysiekk - droga do pliku jest taka sama jaką unlinkowi podaje skrypt.
http://www.domain.pl/mat/prog/img/check.php <-

Prym - nadal nic tongue.gif

Warning: unlink(../mat/prog/img/14.JPG ) [function.unlink]: No such file or directory in /mat/admin.php on line 316
Na ftp wyraźnie widze że ten plik tam jest.


--------------------
Go to the top of the page
+Quote Post
itsme
post 26.11.2007, 20:15:59
Post #10





Grupa: Zarząd
Postów: 1 512
Pomógł: 2
Dołączył: 22.04.2002
Skąd: Koszalin




widocznie nie ma tam pliku lub tez php tego pliku nie widzi ...


--------------------
brak sygnaturki rowniez jest sygnaturką
Go to the top of the page
+Quote Post
Hannon
post 26.11.2007, 20:25:59
Post #11





Grupa: Zarejestrowani
Postów: 52
Pomógł: 0
Dołączył: 10.02.2005

Ostrzeżenie: (0%)
-----


@itsme - nie obraź się ale odkrywcze to to nie było. ^^ z angielskiego tłumaczyć jeszcze umiem i troche mózgu mimo wszytko po latach mi zostało.
Pytam czy ktoś może nie wie jak to naprawić/ominąć/rozwiązać.

Najrozsądniejszym rozwiązaniem jest to że unlink dostaje złą ścieżkę, ale próbowałem multum opcji z slashami, bez, z kropkami, wielokropkami i innym padłem ale nie działa. Zatem - pomysły ?


--------------------
Go to the top of the page
+Quote Post
itsme
post 26.11.2007, 20:42:25
Post #12





Grupa: Zarząd
Postów: 1 512
Pomógł: 2
Dołączył: 22.04.2002
Skąd: Koszalin




czasami najprostrze rowiązania sa w najprosztych odkryciach.
bez urazy ale nie potrafisz nawet prawidłowo podać ścieżkę ... żenuaaa :-)

print $sSciezka.$sPlik;

wynik wklei do klienta ftp i zobacz co CI sie pojawi

druga opcja przeklei ścieżkę z klienta ftp do skryptu php.


--------------------
brak sygnaturki rowniez jest sygnaturką
Go to the top of the page
+Quote Post
Hannon
post 26.11.2007, 21:23:12
Post #13





Grupa: Zarejestrowani
Postów: 52
Pomógł: 0
Dołączył: 10.02.2005

Ostrzeżenie: (0%)
-----


Nie specjalnie wiem o co Ci chodzi z tym
print $sSciezka.$sPlik;
ale tamto drugie nie działa - tzn. przeklejenie ścieżki z klienta ftp.


--------------------
Go to the top of the page
+Quote Post
krzysiekk
post 26.11.2007, 23:46:54
Post #14





Grupa: Zarejestrowani
Postów: 155
Pomógł: 17
Dołączył: 13.03.2006
Skąd: Jaworze

Ostrzeżenie: (0%)
-----


witam moze posluchaj mnie chyba ze juz to zrobiles to wybacz
wyswietl sobie ta sciezke do tego katalogu przy uzyciu tego jak to wstawisz do katlogu w plikami do usunieci ato ci cos podobnego da
"/var/www/html/pro/xx/xx/xx/index.php" i to jest sciezka do pliku na serwerze
  1. <?php
  2. print_r($_SERVER);
  3. ?>

a dokladnie potrzebujesz
$_SERVER[SCRIPT_FILENAME]
Go to the top of the page
+Quote Post
Hannon
post 27.11.2007, 18:21:40
Post #15





Grupa: Zarejestrowani
Postów: 52
Pomógł: 0
Dołączył: 10.02.2005

Ostrzeżenie: (0%)
-----


SCRIPT_URI http://www.domain.pl/mat/prog/img/phpinfo.php
DOCUMENT_ROOT /


Well. To jest to co mi pokazuje document root. "/"
Niespecjalnie mi to mówi cokolwiek.

Wesoło. W pliku w którym jest samo unlink wszystko działa pięknie !
Tylko w tym w którym teraz grzebie jest voodoo i nie chce zobaczyć pliku.

Ten post edytował Hannon 27.11.2007, 18:28:16


--------------------
Go to the top of the page
+Quote Post
b_chmura
post 27.11.2007, 18:47:26
Post #16





Grupa: Zarejestrowani
Postów: 813
Pomógł: 34
Dołączył: 18.03.2007
Skąd: o stamtąd

Ostrzeżenie: (0%)
-----


w pliku z unlink wsatw:
  1. <?php
  2. echo getcwd() . "\n";
  3. ?>

i sprawdz w jakim katalogu sie znajdujesz, z taką wiedzą z pewnością będziesz potrafił ustalić swoją ścieżkę do pliku
Go to the top of the page
+Quote Post
Hannon
post 27.11.2007, 18:58:31
Post #17





Grupa: Zarejestrowani
Postów: 52
Pomógł: 0
Dołączył: 10.02.2005

Ostrzeżenie: (0%)
-----


Ale to moim zdaniem nie jest kwestia scieżki dostępu do pliku.
Bo skoro przy takiej samej ścieżce, dwa pliki ze skryptem, jeden z jedną linią :
  1. <? unlink("prog/img/plik.jpg"); ?>

gdzie wszystko działa pięknie.
a w drugim z skryptem nieco dłuższym about 350linii
i taką samą komendą z tym samym parametrem jak w poprzednim pliku
i tu NIE DZIAŁA.

To to chyba nie jest kwestia ścieżki do pliku. Podkreślam że oba skrypty są w tym samym katalogu.
Z czego w jednym ta komenda działa, zaś w drugim nie.


--------------------
Go to the top of the page
+Quote Post
b_chmura
post 27.11.2007, 19:04:31
Post #18





Grupa: Zarejestrowani
Postów: 813
Pomógł: 34
Dołączył: 18.03.2007
Skąd: o stamtąd

Ostrzeżenie: (0%)
-----


może w pozostałych liniach kodu zmieniacz katalog roboczy (chdir" title="Zobacz w manualu PHP" target="_manual)
Go to the top of the page
+Quote Post
Lion_87
post 27.11.2007, 19:07:30
Post #19





Grupa: Zarejestrowani
Postów: 850
Pomógł: 120
Dołączył: 15.02.2007
Skąd: Łódź

Ostrzeżenie: (10%)
X----


no skoro to nie problem polecenia to widocznie gdzieś w skrypcie problem tkwi
Go to the top of the page
+Quote Post
Hannon
post 27.11.2007, 20:40:29
Post #20





Grupa: Zarejestrowani
Postów: 52
Pomógł: 0
Dołączył: 10.02.2005

Ostrzeżenie: (0%)
-----


Nie, nie używałem takiej komendy, a całego skryptu nie będę wrzucał bo to pomniejszy gigant, wrzuce tylko dany if bo w danym momencie tylko tą skrypt wykonuje.
  1. <?php
  2. if($_SESSION['admin_dost'] == TRUE && $_GET['tab'] = "usun" && isset($_GET['clear']))
  3.  {
  4.  if($_GET['clear'] == "1"){$nazwa_plikua = "lista_klienci.txt";}
  5.  if($_GET['clear'] == "2"){$nazwa_plikua = "lista_nomadsoft.txt";}
  6. if($_GET['clear'] == "3"){$nazwa_plikua = "lista_inst.txt";}
  7. if($_GET['clear'] == "4"){$nazwa_plikua = "lista_crew.txt";}
  8.  
  9. $nazwa_pliku1 = "appz_info/".$_POST['usun'].".txt";
  10. $uchwyt1 = fopen($nazwa_pliku1, "r");
  11. $srodek_appza = fread($uchwyt1, filesize($nazwa_pliku1));
  12. fclose($uchwyt1);
  13. list($noa ,$loa , $ooa ,$woa, $uoa) = explode(":<br>:", $srodek_appza);
  14. $uoa = trim($uoa);
  15.  $filz = basename($uoa);
  16.  $filx = basename($loa);
  17.  
  18.  unlink("prog/".$filz);
  19.  unlink("prog/img/".filx); /* felerna linia*/
  20.  unlink("appz_info/".$_POST['usun'].".txt");
  21.  echo $nazwa_plikua;
  22.  $handle = fopen($nazwa_plikua,"r+");
  23.  $inside = fread($handle,filesize($nazwa_plikua));  
  24.  $inside = explode("#|#",$inside);
  25.  $key = array_search($_POST['usun'],$inside);
  26.  unset($inside[$key]);
  27.  $srodek = implode("#|#",$inside);
  28.  echo "<br>".$srodek."<br>";
  29.  fwrite($nazwa_plikua,$srodek);
  30.  fclose($handle);
  31.  
  32.  echo"Plik został pomyślnie usunięty";
  33.  }
  34. ?>


Marginsem implode nie chce działać niewiem czemu. Może komuś wpadnie coś do głowy.

Ok... już wiem co było powodem chociaż nie specjalnie wiem czemu basename to zostawiło. Na końcu zmiennych $filz i $filx była spacja.
Wydawało mi się że basename(); powinno mi wyczyścić samą nazwę pliku z obu stron. trim(); załatwiło sprawę.

Dziękuję wszystkim za pomysły i chęć pomocy smile.gif Temat to zamknięcia.


--------------------
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 00:08