Динамичиские ссылки сроком действия 30 мин

chdv

Guest
Динамичиские ссылки сроком действия 30 мин

Собственно проблема как мне кажеться не сложная, может кто подскажет решение?
Есть некий сайт на катором лежит софт, трафик в день более 2Гб, при этом колличество поситителей которых регистрирует рейтинг 500-600, тоесть, кто хочет качает совтяру по прямой ссылке.
Задача: 1. сделать доступ на страницу с софтом только со стартовой странице. 2. генерить ссылки динамичиски, сроком действия 30 минут

В общемто, первый пункт решился одной строчкой, а вот второй ни как не получаеться.
Помогите.
 

chdv

Guest
а без базы нельзя?
желательно генерить ссылки для каждого клиента по сессии
а если это делать через базу будет нагрузка на сервер
 

chdv

Guest
зато с накоплением ссылок в базе будет затруднен поиск
 

Romantik

TeaM PHPClub
удаляй их так же смело по истечении времени
или ставь статус=0 для статистики
 

chdv

Guest
понятно
может есть какая-то реализация такого решения?

-~{}~ 09.02.05 15:28:

я тут подумал, может при создании страницы, файлы паковать со случайным именем и делать ссылки на новые файлы, а через 30 минут их грохать. Может так лучше будет?
 

yugene

Отошел от дел
Originally posted by chdv
я тут подумал, может при создании страницы, файлы паковать со случайным именем и делать ссылки на новые файлы, а через 30 минут их грохать. Может так лучше будет?
Плохая идея! Два поста назад ты спрашивал, не будет ли нагрузки на сервер от работы с БД. Представь, какую нагрузку даст упаковка! Конечно, можно просто переименовывать файл, без всякой переупаковки, но это, по-моему, некрасивое решение. К тому же: 1) через 10 переименований сам не будешь знать, что у тебя где 2) все-равно где-то надо будет хранить ссылки на постоянно меняющиеся имена файлов. Проще закрыть директорию с фалами .htaccess'ом и выдавать их скриптом, который, в свою очередь, должен проверять валидность ссылки. Ссылку генерить случайно и хранить в базе. Не хочешь в базе - сделай генерацию ссылки зависимой от времени на сервере, например. Только, конечно, не вида download.php?link_id=2005-02-08-11-30 :D
 

chdv

Guest
да, про упаковку глупость сморозил, просто всякие решения ищу
 

ForJest

- свежая кровь
chdv
В общем - передавай в url
1. Таймстамп.
2. filename
3. crc32(md5(timestamp.filename)).

Таким образом - ты проверяешь таймстамп на то, что он не проэкспайрился - это поле 1.
Поле три тебе нужно для того чтобы проверить, что пользователь не пытается подделать таймстамп.
Дёшево и сердито. Вряд ли кому-то захочется ковыряться и искать алгоритм.
 

Alien

Новичок
chdv
А если за 30 мин скачать не успел? Проблемы посетителя?
 

chdv

Guest
ForJest Спасибо за совет, попробую реализовать
 

ARN

Guest
Alien
почему за 30 минут? в течение 30 минут...
а качать хоть весь день может.. без обрыва соединения
вот если оборвалось соединение или остановилась скачка - проблемы посетителя
 
Сверху