Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 30, средняя оценка - 4.73
Midnayt
57 / 57 / 7
Регистрация: 07.12.2009
Сообщений: 320
Завершенные тесты: 1
#1

Удаление файлов с сайта - PHP

04.10.2012, 00:15. Просмотров 4785. Ответов 21
Метки нет (Все метки)

Здравствуйте, есть корпоративный сайт на php понадобилось сделать модуль выгрузки файлов для сотрудник, выгрузку сделал так: при входе в модуль скрипт связывается по фтп с сервером и если есть новые файлы то файлы добавляются в базу и закачиваются в папку с пользователем, после этого формулируется таблица с ссылками на скачивание файлов .
Также я сделал скрипт который автоматически удаляет файлы двухнедельной давности. Попросили сделать чтоб пользователь сам мог удалить ненужные ему файлы и тут я зашел в тупик программирую на php относительно недавно пошарился по гуглу процедура удаления мне понятно , не понятно только как php скрипт получает какой именно файл нужно удалить . Когда то вроде натыкался на такой вопрос и там что то мудрили при выводе ссылок на скачивание рядом размещали ссылку на php скрипт + id файла с базы но не знаю как это обработать помогите пожалуйста заранее благодарен !!!!!
http://www.cyberforum.ru/php-beginners/thread781081.html

P.S. сайт находится на удалённом хостинге, сервер в главном отделение где я работаю.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.10.2012, 00:15
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Удаление файлов с сайта (PHP):

Удаление элемента со страницы сайта
Помогите пожалуйста. Нужно удалить Текст и Checkbox. Как это сделать? В каком...

Удаление файлов
Добрый день. Есть скрипт, который должен удалять файлы из 2-х директорий:...

Удаление файлов
Добрый вечер. На сервере лежит папка (к примеру, "movies"), в ней – файлы и...

Удаление файлов
Здравствуйте дорогие форумчане, столкнулся с такой задачей: На сервере(форум)...

Удаление переменных при закрытии сайта
Здравствуйте. Задача такая: удалять переменную (неважно переменная сессии...

21
Том стоун
2 / 2 / 2
Регистрация: 28.01.2012
Сообщений: 99
04.10.2012, 03:50 #2
Я думаю можно подгружать файлы в виде ссылок! При нажатии на ссылку допустим название файла передается методом GET скрипту для удаления!
0
Dolphin
804 / 789 / 199
Регистрация: 21.09.2012
Сообщений: 2,631
04.10.2012, 06:08 #3
Цитата Сообщение от Том стоун Посмотреть сообщение
При нажатии на ссылку допустим название файла передается методом GET скрипту для удаления!
Не рекомендую делать удаление чего-либо ссылкой. Так как по ссылкам ходят пауки, им это не особо понравится.
0
Stiv10
6 / 6 / 0
Регистрация: 28.07.2012
Сообщений: 47
04.10.2012, 10:13 #4
Интересно, я бы тоже так попробовал реализовать как предложил Том стоун, по нажатию на ссылку серверу передаю 2 параметра, 1-ый допустим "del", а 2-ой - имя файла и написать проверку
PHP
1
2
3
4
if(isset($_GET['del']))
{
    //unlink его
}
что такое пауки я немного знаю..

Dolphin, объясните пожалуйста почему им это не понравится.
0
KOPOJI
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16744 / 6635 / 860
Регистрация: 12.06.2012
Сообщений: 19,880
Завершенные тесты: 1
04.10.2012, 10:14 #5
Stiv10, http://www.ibm.com/developerworks/ru/library/l-spider/
0
Stiv10
6 / 6 / 0
Регистрация: 28.07.2012
Сообщений: 47
04.10.2012, 10:22 #6
Если я правильно понял автора темы этим скриптом пользуются только сотрудники и чтение или удаление этих файлов это не для всех, тогда какие там могут быть пауки?
0
Dolphin
804 / 789 / 199
Регистрация: 21.09.2012
Сообщений: 2,631
04.10.2012, 10:30 #7
Цитата Сообщение от Stiv10 Посмотреть сообщение
по нажатию на ссылку серверу передаю 2 параметра, 1-ый допустим "del", а 2-ой - имя файла и написать проверку
PHP
1
2
3
4
if(isset($_GET['del']))
{
 //unlink его
}
Если не сделать проверку на авторство файла, то робот переходя по ссылкам удалит все ваши файлы которые у вас есть.
0
Stiv10
6 / 6 / 0
Регистрация: 28.07.2012
Сообщений: 47
04.10.2012, 10:38 #8
Цитата Сообщение от Dolphin Посмотреть сообщение
Если не сделать проверку на авторство файла
Вы имеете ввиду сессии, куки вошедшего?
0
Dolphin
804 / 789 / 199
Регистрация: 21.09.2012
Сообщений: 2,631
04.10.2012, 10:41 #9
Цитата Сообщение от Stiv10 Посмотреть сообщение
Вы имеете ввиду сессии, куки вошедшего?
Либо делать авторизацию и наделять определенного юзера удалять файлы, либо определять кто загрузил файл и только тогда удалять
0
KOPOJI
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16744 / 6635 / 860
Регистрация: 12.06.2012
Сообщений: 19,880
Завершенные тесты: 1
04.10.2012, 10:42 #10
либо просто закрыть папку с админкой от поисковых роботов
0
Dolphin
804 / 789 / 199
Регистрация: 21.09.2012
Сообщений: 2,631
04.10.2012, 10:45 #11
Цитата Сообщение от KOPOJI Посмотреть сообщение
либо просто закрыть папку с админкой от поисковых роботов
Если делать ссылками, то при переходе будет выдаться ошибка. если это не страшно и не нужен сайт в поисковиках, то да можно. Но по моему, если много одинаковых страниц ему выдаст сайт, то он может вообще его проигнорировать потом. Утверждать не берусь =)
0
KOPOJI
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16744 / 6635 / 860
Регистрация: 12.06.2012
Сообщений: 19,880
Завершенные тесты: 1
04.10.2012, 10:47 #12
Dolphin, админку обычно делают в отдельной папке.. какие ссылки? просто директорию закрыть - а внутри как хочешь так и делай, поисковики просто не увидят что там творится. Конечно все зависит от реализации
0
Stiv10
6 / 6 / 0
Регистрация: 28.07.2012
Сообщений: 47
04.10.2012, 10:48 #13
Цитата Сообщение от Dolphin Посмотреть сообщение
определять кто загрузил файл и только тогда удалять
это определенно, в таблице базы путь к файлу и id пользователя, который загрузил файл, он загружает, он и удаляет и никаких других файлов он не видит.
Благодарю.)
0
Dolphin
804 / 789 / 199
Регистрация: 21.09.2012
Сообщений: 2,631
04.10.2012, 10:54 #14
Цитата Сообщение от Stiv10 Посмотреть сообщение
это определенно, в таблице базы путь к файлу и id пользователя, который загрузил файл, он загружает, он и удаляет и никаких других файлов он не видит.
Благодарю.)
Только надо не просто выводить те, какие он загрузил но и во время удаления проверять еще, так ли это на самом деле.. =))

Добавлено через 1 минуту
Цитата Сообщение от KOPOJI Посмотреть сообщение
Dolphin, админку обычно делают в отдельной папке.. какие ссылки? просто директорию закрыть - а внутри как хочешь так и делай, поисковики просто не увидят что там творится. Конечно все зависит от реализации
Ааа, простите. =) Не сразу понял что имели ввиду
0
Midnayt
57 / 57 / 7
Регистрация: 07.12.2009
Сообщений: 320
Завершенные тесты: 1
04.10.2012, 11:15  [ТС] #15
Цитата Сообщение от Stiv10 Посмотреть сообщение
Если я правильно понял автора темы этим скриптом пользуются только сотрудники и чтение или удаление этих файлов это не для всех, тогда какие там могут быть пауки?
Все правильно сайт в основном только для сотрудников регистрация с одобрением админа пользователи с уровнем 1-3 могут скачивать и удалять файлы статьи, остальные нечего не видят и даже если на прямую обратятся к скрипту их выкинет в лес + идет лог запуска скрипта .

PHP
1
2
3
4
if(isset($_GET['del']))
{
 //unlink его
}
Если можно по подробней как выглядит сама ссылка на удаление файла и как скрипт вытягивает инфу с ссылки. Формирование идет с базы c таблицы user_file то есть в идеале привязать id файла а там уже проверка на глюк если файл принадлежит пользователю удаляю ??

На картинке красным как я себе это представляю.
0
Миниатюры
Удаление файлов с сайта  
Stiv10
6 / 6 / 0
Регистрация: 28.07.2012
Сообщений: 47
04.10.2012, 11:27 #16
PHP
1
2
3
4
5
6
7
$fileName = "путь и имя файла";
$var = '<A href='.$_SERVER['PHP_SELF'].'?del=true&fileName='.$fileName.'>Удалить</a>';//ссылка 
echo $var;
if(true == $_GET['del'] && isset(сессия пользователя))
{
    unlink $_GET['fileName'];
}
?
1
Dolphin
804 / 789 / 199
Регистрация: 21.09.2012
Сообщений: 2,631
04.10.2012, 11:30 #17
Цитата Сообщение от Stiv10 Посмотреть сообщение
PHP
1
2
3
$var = '<A href='.$_SERVER['PHP_SELF'].'?del=true&fileName='.$fileName.'>Удалить</a>';//ссылка 
if(true == $_GET['del'] && isset(сессия пользователя)) 
{ unlink $_GET['fileName']; }
А если я подменю имя файла в ссылке на ?del=true&fileName='*.*'
0
Midnayt
57 / 57 / 7
Регистрация: 07.12.2009
Сообщений: 320
Завершенные тесты: 1
04.10.2012, 11:42  [ТС] #18
Цитата Сообщение от Dolphin Посмотреть сообщение
А если я подменю имя файла в ссылке на ?del=true&fileName='*.*'
Ты б знал сколько я объяснял как скачать картинку она же по ссылке не сколачивается а открывается в браузере . Так что думаю подменять некто не додумается, а если додумаются им же хуже не выкачают свои файлы ))
0
Dolphin
804 / 789 / 199
Регистрация: 21.09.2012
Сообщений: 2,631
04.10.2012, 11:50 #19
Цитата Сообщение от Midnayt Посмотреть сообщение
Ты б знал сколько я объяснял как скачать картинку она же по ссылке не сколачивается а открывается в браузере
Сделал бы страницу php'шную, которая бы посылала заголовки и она бы скачивалась. Не пришлось бы мучаться
0
Midnayt
57 / 57 / 7
Регистрация: 07.12.2009
Сообщений: 320
Завершенные тесты: 1
04.10.2012, 11:58  [ТС] #20
Цитата Сообщение от Dolphin Посмотреть сообщение
Сделал бы страницу php'шную, которая бы посылала заголовки и она бы скачивалась. Не пришлось бы мучаться
Я в основном работаю в с# а тут появилось задание от руководства и пришлось вспоминать 2-й курс универа . С заголовками у меня тоже не сложилось, если можно простой пример буду благодарен.
0
04.10.2012, 11:58
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.10.2012, 11:58
Привет! Вот еще темы с решениями:

Удаление своего аккаунта пользователем сайта
Всем привет! Сегодня столкнулся с казалось бы элементарным в mysql и рнр....

Удаление неиспользуемых файлов
Здравствуйте, хочу удалять файлы, которые длительное время не открывались,...

Удаление файлов на сервере
Здравствуйте, у меня такой вопрос как поставить у папки права 777. Стоит сборка...

Удаление временных файлов
Здравствуйте! Подскажите пожалуйста, как правильно удалить все временные файлы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru