Здравствуйте. Я совсем ещё зелёный в php, по этому не судите строго) Подскажите, как сделать кнопку удаления картинок из папки? Есть код: файл index.php Код (Text): <?php $dir = 'uploads/'; // Папка с изображениями $cols = 3; // Количество столбцов в будущей таблице с картинками $files = scandir($dir); // Берём всё содержимое директории $k = 0; // Вспомогательный счётчик для перехода на новые строки for ($i = 0; $i < count($files); $i++) { // Перебираем все файлы if (($files[$i] != ".") && ($files[$i] != "..")) { // Текущий каталог и родительский пропускаем if ($k % $cols == 0) echo "<tr>"; // Добавляем новую строку echo "<li class=\"image\">"; // Начинаем столбец $path = $dir.$files[$i]; // Получаем путь к картинке echo "<a rel=\"lightbox-mygallery\" href='$path'>"; // Делаем ссылку на картинку echo "<img src='$path' alt='' width='100' />"; // Вывод превью картинки echo "</a>"; // Закрываем ссылку echo "<form action=\"delite.php\" method=\"post\">"; echo "<input type=\"image\" src=\"imgbutton.gif\" name=\"delite\" />"; echo "</form>"; echo "</li>"; // Закрываем столбец /* Закрываем строку, если необходимое количество было выведено, либо данная итерация последняя */ if ((($k + 1) % $cols == 0) || (($i + 1) == count($files))) echo "</tr>"; $k++; // Увеличиваем вспомогательный счётчик } } ?> файл delite.php Код (Text): <?php if( isset( $_POST[ 'delite' ] ) ) { unlink('$path'); } ?> Первый ищет картинки по папке и отображает их в окне. Так же выводит под картинкой форму-кнопку, которая переадресовывает всё файл, который должен удалять текущую картинку. Только чёт не удаляется) Подскажите, в чём ошибка?
говнокод полнейший, ну бог с ним Код (PHP): <?php if( isset( $_POST[ 'delite' ] ) ) { unlink('$path'); } ?> $path = что в ней и откуда?
В коде PHP если строка обрамляется апострофами, то в ней не происходит замена имён $переменных на их значения. Код (PHP): echo '$path'; Выведет Код (Text): $path без замены. А вот Код (PHP): echo "$path"; уже выведет то что нужно - значение переменной $path. Это я к тому что апострофы в unlink не просто бесполезны, а это ошибка. Ну одна из ошибок)
Начните скрипт delite.php с установки вывода ошибок и предупреждений: Код (PHP): error_reporting( E_ALL ); ini_set( "display_errors", 1 ); И посмотрите какие ошибки или предупреждения Вам выдаёт этот скрипт при запуске. Попытайтесь исправить ошибки самостоятельно или скопируйте вывод о них сюда - Вам подскажут что это и как бороться.
Поставил в начало скрипта: Код (Text): <?php error_reporting( E_ALL ); ini_set( "display_errors", 1 ); if( isset( $_POST[ 'delite' ] ) ) { unlink("$path"); } ?> Не работает и ошибки не показывает, по ходу код кривой) но вроде бы всё правильно - анлинк удаляет файл, путь к файлу в переменной. Фигня какая-то.
Вы уверенны, что условие выполняется? Код (PHP): isset( $_POST[ 'delite' ] ) Попробуйте уберите это условие, изменится что нибудь?)
да при чем тут то что пришло в $_POST[ 'delite' ]????????? в нем ничего не пришло!!! ибо тут <input type=\"image\" src=\"imgbutton.gif\" name=\"delite\" /> нифига нету!!!!! unlink("$path"); - это что за бред блеать?
Ну типо в переменную $path вгружается путь к изображению, которое нужно удалить. Но оно не удаляетю Оставил такую запись. Код (Text): <?php unlink("$path"); echo $path; ?> Выдаёт ошибку: Warning: unlink() [function.unlink]: Invalid argument in W:\home\localhost\www\jquery-lightbox\delite.php on line 2
Всё верно. В переменной $path нет значения (точнее самой переменной нету, а Вы к ней обращаетесь). Вам это уже написали выше.
Ну у Вас нету базовых знаний по формам в PHP. Тут Вам мало чем смогут помочь, наверно. Погуглите "Работа с формами в PHP" и разбирайте примеры. Что такое формы, какие они бывают, как они транслируются в $_GET и $_POST в скриптах. Я вот что первое нашёл: http://www.eltisbook.ru/php/obrabotka-form.php Таких статей в сети миллионы. Ищите и найдёте. Учитесь на примерах. Добавлено спустя 3 минуты 55 секунд: Да тут по сути и форма то не нужна. Просто сформируйте ссылку на файл delite.php типа такой: Код (Text): delite.php?path={path} вместо {path} подставляйте путь к вашему файлу. А в принимающем скрипте ловите элемент массива $_GET['path'] - в нём будет значение для удаления.
алилуя блеать ))) я написал об этом в первом посте )))) Добавлено спустя 4 минуты 41 секунду: да да да, так и делай! Тока ссылку сюда кидай на свой проект, кому в 5 утра нечем будет заняться, он будет твою форму самбитить и ржать в голос, пока жена ему по башу не настучит, что он спать мешает