Autor Zpráva
gardener
Profil
Zdravím,
Měl bych jeden dotaz, chtěl bych odstraňovat více souborů naráz pomocí checkboxů,
Vytvořil jsem si tedy něco viz níže:
Problém je v tom, že nevím pomocí jakého cyklu bych měl zpracovat mazání souborů, while co tam mám nyní asi není dobrá volba, jelikož vytváří nekonečný cyklus..
Napadlo mě foreach ale ten zas nevím, jak bych zde zapsal..

Chtěl bych se tedy zeptat, jaký způsob myslíte, že by byl nejlepší?

Díky za jakoukolliv radu.

<table border="1">
<tr>
<th>Název souboru</th>
<th>Smazat</th>
</tr>
<?
$cesta="./data";
$adresar=opendir($cesta);
while($jmenosouboru = readdir($adresar)) {
if ($jmenosouboru != "." && $jmenosouboru != "..") 	
echo "<tr>";
echo "<td>".$jmenosouboru."</td>\n";
echo "<td><input type=\"checkbox\" name=\"delete[]\" value=\"$jmenosouboru\"></td>";
echo "</tr>\n";
}
echo "</table>\n";
closedir($adresar);

//DELETE SELECTED ITEMS
if ( isset( $_POST['submit'] ) AND is_array( $_POST['delete'] ) )
{
while(is_array($_POST['delete'])) 
{
	unlink("$cesta"."/"."$jmenosouboru");
}
}
//END DELETE SELECTED ITEMS
?>
AM_
Profil
V první části je while naprosto správně. Druhá část si skutečně říka o foreach;
foreach ($_POST['delete'] as $filetodelete){
  $filetodelete = preg_replace('/[\\/\\\\]/', '', $filetodelete); //melo by odstranit oba typy lomitek, aby se hacker nedostal do jinych adresaru
  unlink ("$cesta/$filetodelete");
}
gardener
Profil
Díky za vysvětlení.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: