Запароленное скачивание файлов

Фёдор19 лет в сервисе
Данные заказчика будут вам доступны после подачи заявки
04.02.2008

Вкратце, нужно сделать, чтобы человек мог скачать продукт, только если он знает ключ для него, и сделать, чтобы пользователь не мог передать прямую ссылку на продукт другому пользователю.

Подробности.

Есть интернет-сайт, php/mysql, в базе есть такие таблицы:

Продукты (ID, название, описание, и тп)

у продукта есть несколько редакций (типа, стандартная, профессиональная, и так далее):

Редакции (ID_Продукта, название, цена)

Для каждой редакции продукта есть свой файл (хранится на сервере) сл списоком лицензионных ключей вида

AA13-QWE4-QWE5-TTT7

GGH4-3JJF-SETJ-FJER

(и так далее)

Эти ключи вводятся при инсталляции продукта, и каждый пользователь, купивший продукт, имеет свой уникальный ключ.

Файлы эти хранятся в папках на сервере таким образом:

Product1Nameedition1.txt

Product1Nameedition2.txt

Product1Nameedition3.txt

Имя папки совпадает с именем продукта из таблицы Products, а имя файла с ключами задается в таблице Редакции (поле SerialsFileName).

Что нужно сделать.

Нужно сделать страницу, на ней 2 выпадающих списка:

Продукт (названия продуктов)

Редакция (список становится активным при выборе продукта, и содержит названия редакций выбранного продукта.

Желательно это сделать через java скрипт, без перезагрузки страницы, как тут при выборе города: http://money.yandex.ru/shop.xml?scid=1237)

Поле для ввода лицензионного ключа

После выбора продукта, редакции и ввода ключа пользователь нажимает кнопку Download, и если ключ

правильный (т.е. он есть в файле ключей для этой редакции), ему открывается страница со списком файлов для закачки (есть еще таблица Файлы с именами файлов для каждой редакции. Одной редакции как правило соответсвует несколько разных файлов).

Файлы нужно давать скачать так, чтобы пользователь не мог сохранить у себя URL файла и потом постоянно его скачивать его без ввода ключа по этому URL.

Т.е. нужно

1) создавать временный URL

2) записывать пользователю cookie

3) в скрипте редиректа проверять дату выдачи URL и наличие cookie. Если дата старше 3 дней, или cookie нет, то перенаправлять пользователя на страницу с ошибкой.

Это все, если что-то непонятно, то напишите мне сообщение, и я тут размещу ответ, чтобы все его могли видеть.

Укажите сумму, за которую возьметесь за работу, сроки (сильной срочности нет, я могу подождать дней 10,

если предложите хорошую цену). Сумму укажите с джаваскриптом (если умеете) и без (в любом случае).

Заявки фрилансеров