Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 01:42 04.07.25 
Компютри и Интернет
   >> PHP
*Кратък преглед

Тема Download на файлове от логнат потребителнови  
Автор3opo (Нерегистриран)
Публикувано20.03.06 14:42



Здравейте имам следният проблем:

Имам файлове за Download, които са достъпни само след логин на потребител.
В момента файловете се извикват, като линк. С други думи, ако някой знае пътя до файла, не му е нужно да се логва, за да го запише.

Моля предложете ми как мога да реша този проблем.

За сега имам само следното решение:

<?php
$filename = 'html.html';


$file_extension = strtolower(substr(strrchr($filename,"."),1));

switch ($file_extension) {
case "pdf": $ctype="application/pdf"; break;
case "exe": $ctype="application/octet-stream"; break;
case "zip": $ctype="application/zip"; break;
case "doc": $ctype="application/msword"; break;
case "xls": $ctype="application/vnd.ms-excel"; break;
case "ppt": $ctype="application/vnd.ms-powerpoint"; break;
case "gif": $ctype="image/gif"; break;
case "png": $ctype="image/png"; break;
case "jpe": case "jpeg":
case "jpg": $ctype="image/jpg"; break;
case "html": $ctype="text/html"; break;
case "htm": $ctype="text/html"; break;
default: $ctype="application/force-download";
}

if (!file_exists($filename)) {

die("NO FILE HERE");

}

header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false);
header("Content-Type: $ctype");
header("Content-Disposition: attachment; filename=\"".basename($filename)."\";");
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".@filesize($filename));
set_time_limit(0);
@readfile("$filename") or die("File not found.");


?>


Това решение ме устройва само частично защото:
1. Файловете не се отварят директно в браузера, ами се появява прозорец за Download.
2. Все още съществува вероятност някой да налучка пътя до файла и да си го дръпне от сървъра
3. Нямам представа дали това решение работи с всички браузъри.



Тема Re: Download на файлове от логнат потребител [re: 3opo]  
Автор Blake (извънземен)
Публикувано20.03.06 16:04



решението е:

1. файловете да се на мират на място, недостъпно през браузъра (демек, някъде едно ниво над documentRoot-a)...
2. тегленето става през скрипт, който според подадено ИД или нещо от сорта, изчита целия файл и го праща на браузъра СЛЕД проверка къф е посетителя и дали има право въобще да тегли точно този файл

иначе горе-долу си се ориентирал, трябва да подадеш съответните хедъри, виж разгледай РТФМ-то, в секция header(), юзър коментите...

Just a genius



Тема Re: Download на файлове от логнат потребителнови [re: Blake]  
Автор3opo (Нерегистриран)
Публикувано20.03.06 17:46



Хостинг доставчикът не предлага едно ниво над documentRoot-а.

Единствената възможност е да се манипулират правата на достъп до директорията или чрез .htaccess да се защити директорията с парола и потребителско име и чрез PHP да се достъпват файловете без да се изисква от логнатия потребител да въвежда отново парола и потребителско име.

Въпросът е как



Тема Re: Download на файлове от логнат потребителнови [re: 3opo]  
Автор Blake (извънземен)
Публикувано21.03.06 09:22



ми тогава си кръщаваш директорията например "asdkjfksdhfjsdhfkjshkfjas_1123_asasf", и слагаш файловете вътре...
тегленето става през скрипт, така че юзъра няма как да види път към съответния файл, т.е. имаш даунлоуд линк от сорта:

http://mysite.com/download.php?file=83

и само ти си знаеш, че файл 83 е бла-бла.мп3 примерно

Just a genius



Тема Re: Download на файлове от логнат потребителнови [re: 3opo]  
Автор konstanc (...)
Публикувано21.03.06 14:39



.htaccess файла ти е 'deny from all', а readfile() си чете без проблеми от директорията защото е през файловата структура.



Тема Re: Download на файлове от логнат потребителнови [re: konstanc]  
Автор3opo (Нерегистриран)
Публикувано21.03.06 16:12



Мрого благодаря konstanc! Само това не ми беше хрумнало
Сега всичко работи както трябва



Тема Re: Download на файлове от логнат потребителнови [re: 3opo]  
Автор Mopдpeд (seeker)
Публикувано21.03.06 20:37



Абе не е добро решението, така не поддържаш резюм и т.н.
Генерираш случаен път към файла (включая директория), копираш го там, даваш линка на юзера (така уеб сървъра ще му го дава на части и т.н. както си иска)
Записваш в директорията му генериран .хтакцесс, така че само юзерското ип да може да чете файла
Записваш го в база данни, откъдето го чете периодично пускан скрипт, че да го избърше след един ден примерно.

... nothing that happens to Man is ever

...


*Кратък преглед
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2025 Dir.bg Всички права запазени.