Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]usuwanie pliku z katalogu
Forum PHP.pl > Forum > Przedszkole
shreker
Witam !

Mam taki kod odczytujący zawartość plików w katalogu:
Kod
$sciezka1 = 'upload/';
$sciezka = "upload/"; // upload
$open = opendir($sciezka);
while($file = readdir($open))
    {
        if (!eregi('index\.php$|^\.\.$|^\.$',$file))
            printf('<span class=links1><a href="%s/%s">%s</a></span>', $sciezka1, $file, $file);
    }


Pliki są wyświetlane w postaci linków.
Co, i jak muszę dopisać aby na stronie oprócz wyświetlanych linków, obok każdego linku do pliku pojawił się przycisk, po naciśnięciu którego dany plik (odpowiadający danemu przyciskowi) został skasowany?
Pilsener
1. Ten kod jest przestarzały - użyj glob
2. Zrób linki np. takie:
  1. <a href="index.php?co=usun&plik=5"></a>
- 5 to np. numer pliku w tablicy, ale może to też być nazwa. Linki ostyluj w CSS tak, żeby wyglądały jak przyciski czy co tam chcesz - możesz też użyć <button></button> - jest wiele sposobów.
3. Dodajesz do kodu warunek, że jeśli $_GET['co']=='usun' to ma kasować plik o podanym numerze/nazwie i tyle. Funkcja do kasowania plików:
unlink" title="Zobacz w manualu PHP" target="_manual
barthpl
Cytat(Pilsener @ 23.09.2008, 13:19:35 ) *
2. Zrób linki np. takie:
  1. <a href="index.php?co=usun&plik=5"></a>
- 5 to np. numer pliku w tablicy, ale może to też być nazwa. Linki ostyluj w CSS tak, żeby wyglądały jak przyciski czy co tam chcesz - możesz też użyć <button></button> - jest wiele sposobów.
Ja do tego rozwiązania dodałbym jakieś zabezpieczenie... ...przynajmniej takie jak: link bym dał w postaci:
  1. <a href="index.php?co=usun&plik=5&hash=[funkcja-skrótu]"></a>
gdzie hash to funkcja skrótu ze zmiennej plik. I przed usunięciem pliku sprawdzał bym czy ów hash się zgadza. Pomoże ci się to wystrzyc kasowania przez użytkowników plików, których nie powinni.
Oczywiście polecam jakiś bardziej wyrafinowany system zabezpieczeń (system uprawnień, etc).
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.