[PHP] usuwanie pliku


(felixik) #1

Witam, jak w temacie. Napisałem skrypt dający możliwość usuwania plików z tym, że pliki nie chcą się usuwać. Za wszelkie pomysły będę wdzięczny

$akcja = $_GET['akcja'];

    if ($akcja == "usun_plik")

    {


    $dir="data/files/";



    if (is_dir($dir)) {

    if ($dh = opendir($dir)) {

    while (($file = readdir($dh)) !== false) {

    if(($file_name!=".")&&($file_name!="..")) {


    $file_path = $dir.$file_name;

    $file_tab = array ($file_name, filesize($file_path)); //tablica z informacjami o jednym pliku [0] -> nazwa; [1] -> rozmiar

    array_push($files_tab, $file_tab); //dołączenie tablicy informacji o jednym pliku do tablicy wszystkich plików

    }

    }

    closedir($dh);

    }

    }


    $nazwa = $files_tab[$i][0];


    $plik = $_GET['plik'];

    if($plik == $nazwa)

    {

    unlink($nazwa);

    }


    }

(Drobok) #2

Co to ma w ogóle być ? Po co listujesz cały katalog, skoro chcesz usunąć plik ?

Listowanie powinna robić zupełnie inna część kodu. Używasz jakiegoś $i z kosmosu.

Usuwanie uzyskasz korzystając czegoś w deseń:

var str = $_GET['plik'];

unlink(str.replace(/^(?:\.\.\/)+/, ""));

Nie zapomnij nadać praw do pliku. Nie parsując zmiennej plik, user może usunąć ci z serwera wszystko do czego będzie znać ścieżkę :stuck_out_tongue: