Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] usuwanie pliku po kliknięciu w link
Forum PHP.pl > Forum > PHP
felixk
Witam, próbuję napisać skrypt usuwający plik po kliknięciu w link. Udało mi się napisać coś takiego

  1. <?
  2. $dir = "../data/files/Pliki";
  3. $folder = dir($dir);
  4.  
  5. while($plik = $folder->read()) {
  6.  
  7. if (($plik != '.') AND ($plik != '..')) {
  8.  
  9. echo '<li><a href="index.php?plik='.unlink($dir.'/'.$_GET['plik']).'">usuń</a></li>'; //line 110
  10. }
  11. }
  12. $folder->close();
  13. ?>

Listowanie może zbędne, ale o dziwo ono działa tzn. pliki ze zmiennej $dir wyświetlają się, ale już przy linku otrzymuję poniży komunikat
Kod
Warning: unlink(../data/files/Pliki/) [function.unlink]: Jest katalogiem in index.php on line 110


Jak zrobić aby to usuwanie działało prawidłowo?

Z góry dziękuję za pomoc
rocktech.pl
Witam.

W poniższej linijce wykonujesz instrukcję echo. Oraz funkcję unlink.

  1. echo '<li><a href="index.php?plik='.unlink($dir.'/'.$_GET['plik']).'">usuń</a></li>'; //line 110


Aby utworzyć listing.

  1. foreach (glob($dir."/*") as $plik) {
  2. echo '<li><a href="index.php?plik='.$plik.'">usuń</a></li>';
  3. }


I dopiero potem odpowiednio przetwórz $_GET['plik'].

  1. $dir = "/SCIEZKA_BEZWGLEDNA/data/files/Pliki";
  2. //zwróć uwagę na potencjalne zagrożenia wynikające z poniższego kodu funkcję realpath i basename ...
  3. if (isset($_GET['plik'])) {
  4. if (file_exist($dir.$_GET['plik']))
  5. unlink ($dir.$GET['plik']);
  6. }
  7. }
felixk
Cytat(rocktech.pl @ 23.09.2012, 13:10:33 ) *
Witam.

W poniższej linijce wykonujesz instrukcję echo. Oraz funkcję unlink.

  1. echo '<li><a href="index.php?plik='.unlink($dir.'/'.$_GET['plik']).'">usuń</a></li>'; //line 110


Aby utworzyć listing.

  1. foreach (glob($dir"/*") as $plik) {
  2. echo '<li><a href="index.php?plik='.$plik.'">usuń</a></li>';
  3. }


I dopiero potem odpowiednio przetwórz $_GET['plik'].

  1. $dir = "/SCIEZKA_BEZWGLEDNA/data/files/Pliki";
  2. //zwróć uwagę na potencjalne zagrożenia wynikające z poniższego kodu funkcję realpath i basename ...
  3. if (isset($_GET['plik'])) {
  4. if (file_exist($dir.$_GET['plik']))
  5. unlink ($dir.$GET['plik']);
  6. }
  7. }


Twój kod wyrzuca mi
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING w linii 105, czyli w foreach smile.gif
rocktech.pl
Zgadza się poprawiłem. Pisane z palca.
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.