ОсновноеRadiotalkПользовательское
Программирование
6   •   Посмотреть все темы

Удаление файлов checkbox

 

3910
Дмитрий @Q-Tec
Здравствуйте. Никак не могу найти нормальный пример удаления файлов с помощью чекбокса.. Может кто подскажет, как это организовать? Может даже и кто-нить допишет скрипт?

Весь скрипт не большой, выводит файлы в папке images/ по дате загрузки..

Показать текст


Отредактировано Q-Tec - 05.02.2011
20090
Dimitry @Dimitry
чекбоксы будут такими

<input type='checkbox' name=del[] value='то что удаляем'>

а в пхп их ловим так

foreach($del as $k=>$v) echo "$v - то что удаляем";

8497
Степан @Trilby
<?
if(isset($_GET['delfile']))
{ $file2del=$_GET['delfile'];
@unlink('images/'.$file2del); }

$todel=$_POST['todel'];

while (list ($key,$val) = @each ($todel)) {
@unlink('images/'.$val);
}


$dir = "images";
$list = scandir( $dir );

foreach( $list as $name )
{ $time[$name] = filemtime( $dir."/".$name ); }

arsort( $time );
$cnt = 0;

echo "<table width=100% class=sort><thead><td>Название файла</td><td>Дата загрузки</td><td align=center width=20px>Кнопа</td><td align=center width=20px>Чека</td><tr></thead><tbody>";

foreach( $time as $file => $value ) {
if ( $file != "." and $file != "..")

{ echo " <form action='inf.php?delfile=".$file."' method=post><tr><td>".$file." </td>
<td> ".date("d.m.Y H:i:s", $value)."</td> <td> <input type='checkbox' value=".$file." name=todel[]> </td>
<td align=center width=20px> <input type=submit value=удалить></td>

";

$cnt = $cnt + 1; }
if ( $cnt == 100 ) break; }
echo "<input type=submit value='удалить выделенные'>

</form></tbody></table> ";
?>

Хотя, чисто мое имхо, get-запросы в подобных функциях - зло)

Отредактировано Trilby - 05.02.2011
3910
Дмитрий @Q-Tec
Так гет или пост? 😁

8497
Степан @Trilby
Мля... Чо то я уже запутался сам (ну не могу разобрать, ху из ху))
Короче те, что в ссылке с ?blah=blahblah&ololo=trollface&facepalm=facepalm

пы.сы, в коде небольшая очепятка была, ща исправил

Отредактировано Trilby - 05.02.2011
7094
--- @Render
Trilby, смотрел что получается в твоём примере? Куча форм для каждого чекбокса. Это же... брр))
Кто сможет наколдовать пример с 1 формой и методом пост?)

3910
Дмитрий @Q-Tec
Как-то теперь по два файла удаляет, когда отмечен один ))

Отредактировано Q-Tec - 05.02.2011
8497
Степан @Trilby
Это изначально кривой код от Кутека.
<?
if(isset($_POST['delfile']))
{ $file2del=$_POST['delfile'];
@unlink('images/'.$file2del); }

$todel=$_POST['todel'];

while (list ($key,$val) = @each ($todel)) {
@unlink('images/'.$val);
}


$dir = "images";
$list = scandir( $dir );

foreach( $list as $name )
{ $time[$name] = filemtime( $dir."/".$name ); }

arsort( $time );
$cnt = 0;

echo "<table width=100% class=sort><thead><td>Название файла</td><td>Дата загрузки</td><td align=center width=20px>Чека</td><tr></thead><tbody>";
echo "<form action='' method=post>";
foreach( $time as $file => $value ) {
if ( $file != "." and $file != "..")

{ echo "<tr><td>".$file." </td>
<td> ".date("d.m.Y H:i:s", $value)."</td> <td> <input type='checkbox' value=".$file." name=todel[]> </td>


";

$cnt = $cnt + 1; }
if ( $cnt == 100 ) break; }
echo "<input type=submit value='удалить выделенные'>

</form></tbody></table> ";
?>

Кнопки убрал, так лучше?) Покапайтесь сами с багами.. Это же просто)

Отредактировано Trilby - 05.02.2011
3910
Дмитрий @Q-Tec
Trilby пишет:

Кнопки убрал, так лучше?) Покапайтесь сами с багами.. Это же просто)

Просто.. но иногда, это настолько надоедает.. вообще, всё окозалось проще, чем я думал..спасибо

3910
Дмитрий @Q-Tec
Вопрос не совсем по теме, но что бы не создавать похожую.

Есть папка ipfolder там все файлы, загруженные с определённого ip адреса. Как сделать удаление этих файлов?
То есть сделать проверку на возможность удаления (хотя бы по IP). Вводить авторизацию не хотелось бы.. Толкните хотя бы в нужном направлении, далее раберусь

Отредактировано Q-Tec - 15.02.2011
8497
Степан @Trilby
$ipfolderpath = '/home/ipfolder/192.168.1.0';
$ipfolder = end(explode("/", $filename));
$dir = opendir($ipfolderpath) or die("Не могу открыть папку");
$ip=$_SERVER['REMOTE_ADDR'];
if ($ip==$ipfolder) {
while ($file = readdir($dir)){
if ($file != "." && $file != "..") {
echo $file . "<br>";}}
} else {
echo 'пшел вон!';
}



Удаление сам допишешь?)

3910
Дмитрий @Q-Tec
Блин, снова не так всё написал.. тупень я 😀 ... ipfolder.php
Есть запрос в базу данных - если $ip совпадает с $ip того, кто загрузил = вывод. (SELECT * FROM `$table` where ip='$ip')
Думаю переделать то, что написал ты, можно)) Спасибо