Спустя 1 час, 27 минут, 7 секунд (13.11.2010 - 20:37) inpost написал(а):
А чем прямая ссылка на файл не подходит???
<a href=""> ???
<a href=""> ???
Спустя 3 минуты, 30 секунд (13.11.2010 - 20:41) sharki написал(а):
по идее он откроет содержимое файла *.txt в окне браузера
Спустя 1 минута (13.11.2010 - 20:42) DmitryOpalev написал(а):
Цитата |
<a href=""> |
![laugh.gif](http://phpforum.ru/html/emoticons/laugh.gif)
![laugh.gif](http://phpforum.ru/html/emoticons/laugh.gif)
Я где-то видел, но не помню...
Спустя 11 минут, 23 секунды (13.11.2010 - 20:53) Dave написал(а):
Ну что разве нет такого способа?)
Спустя 8 минут, 18 секунд (13.11.2010 - 21:01) DmitryOpalev написал(а):
Есть!
![laugh.gif](http://phpforum.ru/html/emoticons/laugh.gif)
Спустя 1 минута, 41 секунда (13.11.2010 - 21:03) Dave написал(а):
Поделитесь)
Спустя 28 минут, 10 секунд (13.11.2010 - 21:31) DmitryOpalev написал(а):
if (!$file[1]) header("Content-Type: application/octet-stream");
else header("Content-Type: ".$file[1]);
header("content-disposition: attachment; filename=\"".$file[2]."\"");
В $file[1] хранится тип файла, в $file[2] — его имя.
Взял с какого-то сайта, сам проверить не могу... проверьте...
Спустя 1 минута, 39 секунд (13.11.2010 - 21:33) DmitryOpalev написал(а):
Спустя 8 минут, 54 секунды (13.11.2010 - 21:42) Dave написал(а):
Цитата (DmitryOpalev @ 13.11.2010 - 18:31) |
if (!$file[1]) header("Content-Type: application/octet-stream"); В $file[1] хранится тип файла, в $file[2] — его имя. Взял с какого-то сайта, сам проверить не могу... проверьте... |
В каком смысле тип? там будет несколько типов (расширений) .gt3 .gt4 .gt5 .gt6
Вобще о файле известно только имя файла.gt3
Спустя 7 минут, 3 секунды (13.11.2010 - 21:49) DmitryOpalev написал(а):
Значит .gt3... вообще эти переменные (из массива) можно поменять обычными переменными
Спустя 2 минуты, 58 секунд (13.11.2010 - 21:52) inpost написал(а):
<a href="download.php?file=text.zip">TEXT</a>
И сам файл download.php:
header('Content-type: application/zip'); //передаём какого типа файл, в нашем случае это .zip архив.
header('Content-Disposition: attachment; filename="'.$_GET['file'].'"');
readfile($_GET['file']);
В обязательном порядке указать правильный content-type, можно все типы в гугле найти очень просто! Главное, теперь, только защиту, и всё =)
Спустя 2 минуты, 58 секунд (13.11.2010 - 21:55) DmitryOpalev написал(а):
![laugh.gif](http://phpforum.ru/html/emoticons/laugh.gif)
Спустя 2 минуты, 53 секунды (13.11.2010 - 21:58) inpost написал(а):
DmitryOpalev
и??
и??
Спустя 3 минуты, 43 секунды (13.11.2010 - 22:01) DmitryOpalev написал(а):
Не, ну ты пришел, так все разрулил
![smile.gif](http://phpforum.ru/html/emoticons/smile.gif)
Спустя 44 минуты, 1 секунда (13.11.2010 - 22:45) Dave написал(а):
Всё ок, работает! Спс. А вот только что за защита?
if (!preg_match("|^[\d]+$|", $id)) {
exit ("Неверный формат запроса! Проверьте URL!");
}
Хватит?
if (!preg_match("|^[\d]+$|", $id)) {
exit ("Неверный формат запроса! Проверьте URL!");
}
Хватит?
Спустя 9 минут, 54 секунды (13.11.2010 - 22:55) inpost написал(а):
Не думаю. Ты даёшь человеку право закачать твой сайт, а это уже дыра. Надо ограничивать права на какую-то папку или расширение.
Спустя 17 минут, 31 секунда (13.11.2010 - 23:13) Dave написал(а):
В каком смысле мой сайт? А как именно ограничить? У меня все файлы для скачки находятся а папке files
Спустя 41 минута, 21 секунда (13.11.2010 - 23:54) inpost написал(а):
Смотря как передаёшь! Если методом GET, то человек подделает ссылку на любой другой файл и скачает его.
Спустя 12 минут, 28 секунд (14.11.2010 - 00:06) Dave написал(а):
Пускай качает, у меня кроме gt файлов там ничего не будет, а остальные (5 файлов в корне) php скрипты, по которым все люди могут ходит, это разделы сайта
Спустя 20 минут, 47 секунд (14.11.2010 - 00:27) inpost написал(а):
download.php?file=../index.php - вот и получил доступ к твоему php файлу. Сделай проверку на расширение файла, и если это php - блокируй.
Спустя 1 час, 9 минут, 41 секунда (14.11.2010 - 01:37) Dave написал(а):
Цитата (inpost @ 13.11.2010 - 21:27) |
download.php?file=../index.php - вот и получил доступ к твоему php файлу. Сделай проверку на расширение файла, и если это php - блокируй. |
Скачивание index.php в данном случае всё равно не получится) Так как
if (!preg_match("|^[\d]+$|", $id)) {заблокировал доступ, только что проверил. У меня в GET запросе передавать можно только цифры. А в довнлоад файле он уже вычисляет по цифрам ссылку на файл... вот так вот :)
exit ("Неверный формат запроса! Проверьте URL!");
}