Скачивание после просмотра рекламы
Раньше видел много примеров в yandex, но толи забыл как запрос писать, толи одно из двух.
Нужен пример, как сделать скачивание файла с сайта после 60секундной задержки, да еще бы и рекламку на это время повесить (но это детали)
Хелп!
хотябы принцип опишите кто может?
Можно кстати обойтись и без БД, просто генеря ID на сервере по специальному алгоритму. Например, что-то вроде [COLOR="Blue"]md5( "$fileID $allowDlAfterHour $currentDate" )[/COLOR]. Т.к. только сервер знает, как генерится ID, то подделать его нельзя.
Пример для файла #153, скачивание после 15:00, и сегодня 25.08.2010: [COLOR="Navy"]md5('153 15 25.08.2010")[/COLOR]. Здесь есть тонкие моменты, типа такой ID будет меняться в полночь, поэтому будут проблемы со скачкой между 23:00 и 00:00, нет точного контроля за периодом, когда такой ID валидный (до полночи текущего дня) и т.д. Но можно проявить изобретательность и придумать более гибкий алгоритм.
Только это дело легко вскрывается–ссылка достаётся из исходного кода.Так что тут надо ещё подумать,если ТС хочет иной метод
Будь еще круче... Загружай ссылку в DIV с помощью AJAX.
Сделай в бэкэнде скрипт, который принимает как аргумент ID ссылки.
Т.е.
ТРуляля: Генерим ссылку, пишем её, например, в базу... Туда же не забываем вписать время действия ссылки (например, 24часа она действительна) и время НАЧАЛА действия ссылки.
Всё, есть ссылка site.com/234252342542342342 , действует она с 1270000000 (это метка полученная с помощью time()+60;) и до 1270084600.
БэкЭндовый файлик для страницы с аяксом делает следующее:
Получает в качестве аргумента ID ссылки в базе, сверяет текущее время с временем разрешённого начала скачивания, и если всё норм, отдаёт ссылку на файл, которая фронтэндовым скриптом на JS, с помощью innerHTML и такой-то матери рисует эту ссылку пользователю в нужном месте...
Где у вас проблема?
Нет, естесственно, только какой смысл, она всё равно активируется только в определённое время, см. мой пост целиком.
Я предложил ССЫЛКУ отдавать позже... А ты предлагаешь передать начало скачивания позже...
Но при этом ссылка в коде... Ахз какие еще данные нужно передать через 60секунд...
Если нужно что-то именно заныкать до поры до времени - мой способ лучше.
Хотя по большому счёту любой из двух методов годится, так что это дело вкуса.
З.Ы, без JS даже счётчик работать не будет... По-этому прийдется отдавать заголовки с рефрешем через 60 секунд... Или писать юзеру, если он нажимает Ф5, сколько осталось до получения ссылки )...
Так можно дойти до писанины под пользователей Lynx-а...
З.Ы. "спс" в репу ушло".
Мы уже не раз на тему 2.0/JS холиварили на форуме, так что снова начинать не будем.
З.Ы, без JS даже счётчик работать не будет...
Конечно, зато по всем правилам можно сделать даунгрейд для пользователей без JS и иметь что-то вроде:
<a href="..." id="link">Скачать</a>
<script>
hide(link);
setTimeout(function () { show(link); }, 60000);
</script>
Реализовать едва ли не проще, чем вариант с AJAX, зато работать будет даже на каком-нибудь КПК.
Ага :)