Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] usuwanie pliku po kliknięciu w link
felixk
post
Post #1





Grupa: Zarejestrowani
Postów: 90
Pomógł: 1
Dołączył: 31.01.2009
Skąd: Ostrołęka

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


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
Go to the top of the page
+Quote Post
rocktech.pl
post
Post #2





Grupa: Zarejestrowani
Postów: 587
Pomógł: 131
Dołączył: 8.02.2010

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


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. }


Ten post edytował rocktech.pl 23.09.2012, 14:35:43
Go to the top of the page
+Quote Post
felixk
post
Post #3





Grupa: Zarejestrowani
Postów: 90
Pomógł: 1
Dołączył: 31.01.2009
Skąd: Ostrołęka

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


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 (IMG:style_emoticons/default/smile.gif)

Ten post edytował felixk 23.09.2012, 14:30:56
Go to the top of the page
+Quote Post
rocktech.pl
post
Post #4





Grupa: Zarejestrowani
Postów: 587
Pomógł: 131
Dołączył: 8.02.2010

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


Zgadza się poprawiłem. Pisane z palca.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 3.10.2025 - 18:08