Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Kasowanie plików
Forum PHP.pl > Forum > Przedszkole
dk1342
Witam robie sobie PA i chce zrobić żebym mógł usuwać pliki z danego katalogu no więc znalazłem taki kod na forum:

Kod
<?php
$directory="twojfolder"; //tu zmieniamy folder
$dir=opendir($directory);


while($file_name=readdir($dir))
  {
  if(($file_name!=".")&&($file_name!=".."))
      {
$file_list .="<li><a href=twojfolder/".$file_name.">".$file_name."</a></li>";
    
      }
  }

closedir($dir);
echo "
Pliki w $directory:
$file_list";
?>


i ten kod mi wyświetla wszystkie pliki z folderu, a mam pytanie jak zrobić żeby obok tego był taki X i jak się w niego kliknie to usuwa się ten plik..

wiem że funkcją unlink tylko nie wiem jak to zrobić żeby usuwało ten plik na którego się kliknie czyli obok nazwy pliku x np.
powiedzmy że w katalogu mam takie pliki i ten skrypt mi wyświetlił je tak:

plik1 x
plik2 x
plik3 x
plik4 x
i teraz gdy klikne na krzyżyk obok plik3 to on się usunie jak to zrobić ?
ayeo
Witaj!

Dodaj sobie do tego <li> linka z x. Jako adres ustaw coś takiego: www.serwis.pl/delete_file.php?name=plik.jpg

Pozdrawiam!
dk1342
ok a w delete_file.php mam dać get tak ?

Kod
if(unlink('files/'.$_GET['name'])){
echo"Plik:  został usunięty.";
}else{
echo"Obrazek nie został usunięty! - Jakiś błąd...";
}


dobrze ?

ok działa myśle że ten kod co napisałem z tym getem jest dobry jeśli nie to napiszcie co w nim źle, bo tak to wszystko działa dzięki ci bardzo
erix
A otworzę sobie delete_file.php?name=../index.php, to nie skasuje Ci się przypadkiem strona główna? snitch.gif
bim2
@up
Usunie smile.gif

Dodaj sprawdzanie czy masz prawa do usuwania (adminem czy jesteś).
dk1342
spoko dodałem już dawno bo jak może być PA bez logowania haha.gif

jak ktoś chce i komuś się sprzyda zawartość pliku delete_file.php:

Kod
<?php
if($_GET['name']==null){die('Brak wybranego pliku !');}
if(file_exists('files/'.$_GET['name'])==true){

if(unlink('files/'.$_GET['name'])){
echo"Plik został usunięty.";
}else{
echo"Plik nie został usunięty - jakiś bląd";
}
}else{
echo"Plik nie istnieje";}
?>


i indexa lub innej strony gdzie mają być wyświetlone pliki z x czyli możliwością usunięcia:
Kod
<?php
$directory="pliki/files"; //tu zmieniamy folder
$dir=opendir($directory);


while($file_name=readdir($dir))
  {
  if(($file_name!=".")&&($file_name!=".."))
      {
$file_list .="<li><a href=pliki/files/".$file_name.">".$file_name."</a>  
<a href=pliki/delete_file.php?name=".$file_name.">x</a></li>";
    
  }
  }

closedir($dir);
echo "
Pliki w $directory:
$file_list";
?>
Kildyt
Cytat
spoko dodałem już dawno bo jak może być PA bez logowania haha.gif
haha, a uwierz mi, że może być biggrin.gif Kiedyś wydałem system, a po wpisaniu adresu pliku było można wszystko zrobić, a logowanie działało tylko na głównej stronie.

Na następny raz używaj php zamiast code w poście i zwróć uwagę na tabulację, bo teraz kod jest nieczytelny.
erix
Cytat
spoko dodałem już dawno bo jak może być PA bez logowania

A jednak wciąż nie poprawiłeś. ;p
dk1342
erix ocb ? co jest źle ?

tesowałem jak nie jestes zalogowany to nic nie zrobisz bo sprawdzałęm i skrypt logowania blokuje chyba że coś naprawde pominołem
erix
Cytat
  1. <?php
  2. if(file_exists('files/'.$_GET['name'])==true){
  3. ?>

Wstrzykując odpowiednią ścieżkę do URL-a możesz skasować dowolny plik, do którego ma dostęp serwer www.
dk1342
i jak to naprawić ?
bim2
baza danych lub zwyczajny switch smile.gif
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.