Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.03.2008, 22:44   #1
Stanislav
Квадрокоптерист
Участник клуба Подтвердите свой е-майл
 
Регистрация: 29.09.2007
Сообщений: 1,824
По умолчанию Однаразовая ссылка

Здравствуйте......
Уже давно не могу найти php скрипт и вообще есть ли такие ? мне небходимо чтоб ссылку которую я давал позволяла скачивать всего один раз ..... не встречали ли вы такие скриптики?
Спасибо.
Я часть той силы, что вечно хочет зла, но вечно совершает благо..
Stanislav вне форума Ответить с цитированием
Старый 07.03.2008, 01:05   #2
Johnatan
Antimoderаtoris
Участник клуба
 
Регистрация: 08.02.2008
Сообщений: 1,251
По умолчанию

Есть. Встречали.
98% из тысячи моих постов сделаны в профильном подфоруме. Я не накручиваю свои посты болтанием в "курилке", а ты?
Johnatan вне форума Ответить с цитированием
Старый 07.03.2008, 11:09   #3
Stanislav
Квадрокоптерист
Участник клуба Подтвердите свой е-майл
 
Регистрация: 29.09.2007
Сообщений: 1,824
По умолчанию

Обстаятельный ответ....... но сказать где, конечно не скажите?
Я часть той силы, что вечно хочет зла, но вечно совершает благо..
Stanislav вне форума Ответить с цитированием
Старый 07.03.2008, 11:20   #4
SkyM@n
Laravel/Vue expert
Старожил Подтвердите свой е-майл
 
Аватар для SkyM@n
 
Регистрация: 08.08.2007
Сообщений: 2,832
По умолчанию

Какой вопрос, такой и ответ. А по теме - искать за вас тут никто не будет.
programmersforum.ru != google.com
SkyM@n вне форума Ответить с цитированием
Старый 07.03.2008, 21:58   #5
Johnatan
Antimoderаtoris
Участник клуба
 
Регистрация: 08.02.2008
Сообщений: 1,251
По умолчанию

Я могу рассказать как данный скрипт работает даже. Например с помощью БД.
Вы создаёте какой-либо ключ, например:
PHP код:
$key md5(uniqid()); 
Присваиваете этому ключу в базе название файла:
PHP код:
mysql_query("INSERT INTO 'table' VALUES (1,'file.zip',".$key.")"); 
Далее, когда пользователь обращается к вашему сайту:
http://www.site.com/donce.php?key=3b...0c3269222dbc81
скрипт обращается к БД и отдаёт файл:
PHP код:
mysql_query("SELECT filename FROM 'table' WHERE key = ".mysql_real_escape_string($key));
$row mysql_fetch_assoc($result);
if (!
file_exists($row['filename'])) {
    
header ("HTTP/1.0 404 Not Found");
    exit;
}
$size filesize($row['filename']);
$time date("D, d M Y H:i:s T"filemtime($row['filename']));
$begin 0;
$file = @fopen($row['filename'], "rb");
if (!
$file){
  
header ("HTTP/1.0 403 Forbidden");
  exit;
}
if (
$_SERVER["HTTP_RANGE"]) {
    
$begin $_SERVER["HTTP_RANGE"];
    
$begin str_replace("bytes="""$begin);
    
$begin str_replace("-"""$begin);
    if (
$begin) {
        
fseek($file$begin);
    }
}

if (
$begin) {
 
header("HTTP/1.1 206 Partial Content");
} else {
 
header("HTTP/1.1 200 OK");
}

header("Content-Disposition: attachment; filename=\"{$row['filename']}\"");
header("Last-Modified: {$time}");
header("Content-Length: ".($size-$begin));
header("Accept-Ranges: bytes");
header("Content-Range: bytes {$begin}-".($size 1)."/".$size);

if(isset(
$_SERVER['HTTP_USER_AGENT']) and strpos($_SERVER['HTTP_USER_AGENT'],'MSIE'))
  
Header('Content-Type: application/force-download');
else
  
Header('Content-Type: application/octet-stream');

while(!
feof($file)) {
    
$buffer fread($file,512);
    print(
$buffer);
}

fclose($file); 
Скрипт отдачи файла не мой, но найти его очень легко в гугле.

З.Ы. Я также не заявляю, что данный скрипт будет 100% нормально работать в том виде, как я его написал. Так что разобраться с ним всё равно прийдётся.
98% из тысячи моих постов сделаны в профильном подфоруме. Я не накручиваю свои посты болтанием в "курилке", а ты?

Последний раз редактировалось Johnatan; 07.03.2008 в 22:01.
Johnatan вне форума Ответить с цитированием
Старый 07.03.2008, 22:03   #6
Stanislav
Квадрокоптерист
Участник клуба Подтвердите свой е-майл
 
Регистрация: 29.09.2007
Сообщений: 1,824
По умолчанию

Спасибо за ответ....

p/s я искал но видимо просто не смог сформулировать правильный запрос не напишешь же "однаразовая ссылка" ......... хотя пробовал...
Я часть той силы, что вечно хочет зла, но вечно совершает благо..
Stanislav вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ссылка в Memo Shouldercannon Общие вопросы Delphi 6 28.10.2016 16:22
ссылка в паскале vitekbest Помощь студентам 3 13.06.2008 17:50
WEB ссылка для delphi dcbal Помощь студентам 2 08.02.2008 13:22
кнопка как ссылка bill HTML и CSS 3 05.01.2008 12:57