Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Удаление картинки из папки, не работает функция unlink()
kvant355  
 ۩  [x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 11
Пользователь №: 37830
На форуме: 3 года, 4 месяца, 15 дней
Карма:




Здравствуйте, мне нужно реализовать добавление и удаление картинок из папки
Вот что у меня получилось:



index.php
<html>
<
head>
<
link rel="stylesheet" type="text/css" href="style.css" />
<
meta http-equiv="content-type" content="text/html; charset=UTF-8">

<
title>Загрузка файла</title>
</
head>
<
body>
<
p><strong>Выбирите файл для загрузки:</strong><br />
<
form enctype="multipart/form-data" method="post">
<
input type="file" name="userfile" />
<
br />
<
input type="submit" value="Загрузить" name="button">
</
form>

<?php
//Выполняем код только при нажатии на кнопку
if($_POST['button']== true){
//Для начала проверим не пытаются ли нам загрузить файл с расширением .php и т.д
$path = array(".php",".php4",".php3",".phtml",".pl");
foreach ($path as $item){
//Проверяем регулярным выражением регистр
if(preg_match("/$item\$/i", $_FILES['userfile']['name'])) {
echo "Разрешено загружать, только картинки<br />";
echo "<a href='index.php'><<< Назад</a>";
exit();
}
}

//Проверим на ошибки, если они есть прекращаем скрипт и создаем отчет
if($_FILES['userfile']['error'] != 0){
//Создаем файл и записываем него код ошибки, а так же удаляем временный файл
$error = fopen("error/error.dat","wb");
if(fwrite($error,$_FILES['userfile']['error']) == false){
echo "Ошибка записи в файл!!!";
exit();
}else
{
echo "<b>error.dat</b> - был успешно создан!   <a href='error/error.inc'>Смотреть код ошибки</a>";
//Удаляем временный файл
unlink($_FILES['userfile']['tmp_name']);
//выходим
exit();
}
fclose($error);
}
//Определяем директорию, куда будем загружать изображения
$dir = 'img/';
$file = $dir.basename($_FILES['userfile']['name']);

if (move_uploaded_file($_FILES['userfile']['tmp_name'], $file)) {
echo "Файл успешно загружен.<br>";
} else {
echo "Произошла ошибка";
exit;
}
}


$dir = 'img/'; // Папка с изображениями
$cols = 6; // Количество столбцов в будущей таблице с картинками
$files = scandir($dir); // Берём всё содержимое директории
echo "<table>"; // Начинаем таблицу
$k = 0; // Вспомогательный счётчик для перехода на новые строки
for ($i = 0; $i < count($files); $i++) { // Перебираем все файлы
if (($files[$i] != ".") && ($files[$i] != "..")) { // Текущий каталог и родительский пропускаем
if ($k % $cols == 0) echo "<tr>"; // Добавляем новую строку
echo "<td>"; // Начинаем столбец
$path = $dir.$files[$i]; // Получаем путь к картинке
echo "<a href='$path'>"; // Делаем ссылку на картинку
echo "<img src='$path' alt='' width='100' />"; // Вывод превью картинки
echo "<form action=\"delete.php\" method=\"post\">";
echo "<input type=\"image\" src=\"button.png\" name=\"delite\" class=\"delete\" />";
echo "</form>";
echo "</a>"; // Закрываем ссылку
echo "</td>"; // Закрываем столбец
/* Закрываем строку, если необходимое количество было выведено, либо данная итерация последняя */

if ((($k + 1) % $cols == 0) || (($i + 1) == count($files))) echo "</tr>";
$k++; // Увеличиваем вспомогательный счётчик
}
}

echo "</table>"; // Закрываем таблицу

?>

</body>

</
html>


delete.php

<?php
unlink($path);
header("Location: index.php");

?>


после нажатия на кнопку выдает ошибки

Warning: unlink() [function.unlink]: Invalid argument in Z:\home\photo\www\delete.php on line 2

Warning: Cannot modify header information - headers already sent by (output started at Z:\home\photo\www\delete.php:2) in Z:\home\photo\www\delete.php on line 3

Много где рылся, а ответа не нашел, очень прошу помощи...
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Winston  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме




******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 9509
Пользователь №: 18161
На форуме: 7 лет, 5 месяцев, 11 дней
Карма: 552




В форму которая отправляет данные в delete.php добавить поле
<input type="hidden" name="path" value="$path">

В delete.php
unlink($_POST['path']);

В твоем случае, думаю, покатит.
PMСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
linker  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 5790
Пользователь №: 22814
На форуме: 6 лет, 5 месяцев, 7 дней
Карма: 264




И сделай что-нибудь с наименованием переменных, например, $path у тебя и массив и строка и хрен поймёшь.


--------------------
PMПисьмо на e-mail пользователюСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
kvant355  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 11
Пользователь №: 37830
На форуме: 3 года, 4 месяца, 15 дней
Карма:




спасибо большое, попробую
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
kvant355  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 11
Пользователь №: 37830
На форуме: 3 года, 4 месяца, 15 дней
Карма:




Спасибо большое, все заработало!!! Переменные я тоже подправил
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Гость_Екатерина  
Дата
Цитировать сообщение


Гость пожелал остаться неизвестным

Unregistered









Спасибо!
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса