Hirdetés

Új hozzászólás Aktív témák

  • Sk8erPeter

    nagyúr

    válasz DviDee #4250 üzenetére

    Legegyszerűbb, ha checkbox-ok formájában jeleníted meg az összes fájlt, így többet is tudsz törölni. A következő módon képzeltem el (a könyvtár nevénél az általad írt nevet használtam fel):
    legyen a megjelenítésért felelős fájl az index.php
    index.php :

    <?php
    session_start(); //sessiont indítunk
    header('Content-Type: text/html; charset=utf-8'); //karakterkódolás
    $dir = opendir("../ahol_torlok"); //könyvtár beállítása
    while(false !== ($file = readdir($dir))){
    if (strpos($file, '.txt',1)){
    $file_array[]=$file; //fájlnév eltárolása tömbben
    }
    }
    ?>
    <html>
    <head><title>Txt-törlő</title></head>
    <body>

    <?php
    if( isset($_SESSION['message']) ){ //ha létezik a változó, vagyis van törlésről szóló üzenet (siker vagy hiba)
    echo $_SESSION['message']; //kiírjuk
    unset($_SESSION['message']); //kiírás után töröljük
    }
    ?>

    <form method="post" action="torles.php">
    <?php
    //=0;
    foreach($file_array as $i=>$file_to_delete)
    echo '<input type="checkbox" name="file_select[]" value="'.$file_to_delete.'" id="'.$i.'" />'.$file_to_delete.'<br />';
    ?>
    <input type="submit" name="del_files" value="Kép feltöltése" onclick="return confirm('Biztos, hogy törlöd a kijelölt fájlokat?')" style="height:50px;margin:20px;" />
    </form>

    </body>
    </html>

    És legyen egy torles.php (az index.php-vel azonos könyvtárban), amelyik fájlba az űrlapot átirányítod, és amivel törlöd a kijelölt fájlokat (ez a feldolgozó fájl):

    torles.php :

    <?php

    if( isset($_POST['del_files']) )
    {
    session_start();
    $_SESSION['message']=''; //hibaüzenetekre és sikert jelző üzenetekre

    $dir='../ahol_torlok';

    foreach($_POST['file_select'] as $index=>$name_of_file){
    $name_of_file=stripslashes($name_of_file);
    if(true === unlink( $dir.'/'.$name_of_file ) )
    $_SESSION['message'].=($index+1).'. sikeres törlés! A "'.$name_of_file.'" nevű fájl törlése sikeresen megtörtént! <br />';
    else
    $_SESSION['message'].=($index+1).'. Hiba! A "'.$name_of_file.'" nevű fájl törlése meghiúsult! <br />';
    }
    }

    //Átirányítás az eredeti oldalra
    header('Location: index.php');
    ?>

    Persze esetleg a fájlnevekre még be lehetne tenni valami ellenőrzést, de ezzel most nem foglalkoztam. De mivel pl. az idézőjel nem megengedett a fájlnévben, ezért nem lesz probléma.
    Természetesen előtte kipróbáltam, működik.
    Ha valami nem világos, kérdezz. :)
    Remélem sokat segítettem. :K

    Sk8erPeter

Új hozzászólás Aktív témák