Php список файлов в каталоге с возможностью удаления

У меня есть download-ui.php, в котором есть этот код, который исключает некоторые и перечисляет все остальные файлы в каталоге, затем сортирует их и ставит каждый флажок.

<?php
$files = array();
$dir = opendir('.');
while(false != ($file = readdir($dir))) {
if(($file != ".") and ($file != "..") and ($file != "download-ui.php") and ($file != "error_log") and ($file != "favicon.ico")) {
$files[] = $file;
}
}

natcasesort($files);

foreach ($files as $file) {
echo '<li class="browse-file">
<div class="select-all-col"><input name="select[]" type="checkbox" class="select" value="'.$file.'"/></div>
<div class="file-name-col"><a href="download-ui.php?name='.$folderName."/".$file.'" style="cursor: pointer;">'.$file.'</a></div>
<br />
</li>';
}
?>

Я пытаюсь выяснить, как затем получить значения флажка, чтобы эти файлы, если они отмечены, можно было удалить с помощью unlink(),

Я знаю, что мне нужна форма, но мне нужна помощь с синтаксисом и захватом значений для формы, это то, что я имею до сих пор.

<form id="delete" action="delete.php" method="post">
<button type="submit" form="delete" value="Submit">Submit</button>
<input name="select[]" type="checkbox" class="select" value="'.$file.'"/>
</form>

Тогда для delete.php у меня есть

<?php?
foreach ($_post['select[]'] as $file) {
if(file_exists($file)) {
unlink($file);
}
elseif(is_dir($file)) {
rmdir($file);
}
}
echo "Files deleted successfully.";
?>

Я думаю, что моя проблема заключается в вводе <input name="select[]" type="checkbox" class="select" value="'.$file.'"/>

Ошибка, которую я получаю с этим последним усилием PHP Warning: Invalid argument supplied for foreach() в delete.php

-1

Решение

Вы хотите перебрать каждый элемент $ _POST [‘select’], поэтому ваш foreach должен сказать:

foreach ($_POST['select'] as $file) {

}

Обратите внимание, что POST написан заглавными буквами, а select не имеет скобок массива.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]