За последние 24 часа нас посетили 35036 программистов и 1749 роботов. Сейчас ищут 870 программистов ...

Таймер как на файлообменниках

Тема в разделе "JavaScript и AJAX", создана пользователем allforweb, 23 янв 2011.

  1. allforweb

    allforweb Активный пользователь

    С нами с:
    18 сен 2010
    Сообщения:
    72
    Симпатии:
    0
    Просьба помочь в реализации функции задержки выполнения скрипта с таймером как на файлообменниках. Ссылки на скачивание файла реализуются через форму методом POST. Нужно сделать таймер с задержку выполнения php скрипта генерирующего ссылки на скачивание.
     
  2. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Таймер на JavaScript, на стороне сервера запускается точно такой же таймер и если к скрипту произведено обращение раньше времени, то файл не отдаётся.
    Это очень важно, потому что ссылку на сам файл реально получить, достав просто её из кода.
     
  3. allforweb

    allforweb Активный пользователь

    С нами с:
    18 сен 2010
    Сообщения:
    72
    Симпатии:
    0
    Мне не суть важно чтобы там суперзащита стояла, если кто захочет в коде копаться, то пожалуйста.

    Если я правильно понял алгоритм такой:
    - запускается скрипт PHP
    - запускается задержка выполнения скрипта на сервере
    - запускается таймер на сайте JavaScript (методом on submit)

    И еще вопрос функция sleep () подходит для такой задачи?
     
  4. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    allforweb
    Я бы использовал временную таблицу БД в которую писал REQUEST_TIME.
    Т.е словами звучит примерно так:

    1. Человек заходит на страницу
    2. Сервер проверяет
    Код (Text):
    1. getenv('REQUEST_TIME');
    и пишет это во временную (очень важно для разгрузки) таблицу
    3. Отдаётся пользователю страница с таймером
    4. Как только время вышло, то просто показываем ссылку на файл ( скачать )
    5. При клике по этой ссылке мы точно так же сравниваем новый REQUEST_TIME с записанным в таблице
    6. Если всё успешно, то шлем заголовок с файлом, иначе шлем переадресацию или ошибку
     
  5. allforweb

    allforweb Активный пользователь

    С нами с:
    18 сен 2010
    Сообщения:
    72
    Симпатии:
    0
    Ну это не совсем то, нужно чтобы он видел таймер и сколько осталось до появления ссылки. И сама ссылка не была видна до истечения заданного интервала.
     
  6. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    allforweb
    Ну дак а я что сказал?
    Что-то в последнее время у людей с пониманием туговато
     
  7. ps10n1ck

    ps10n1ck Активный пользователь

    С нами с:
    29 дек 2010
    Сообщения:
    8
    Симпатии:
    0
    воспользуйся функцией setTimeout()
    к примеру:
    setTimeout(функция_отображения_ссылки, 50000)
    тобишь через 50сек сработает функция отображения ссылки

    А далее создаешь функцию для отображения ссылки.. Можно создать через dom элемент A, можно проще сделать - сперва присвоить стиль ссылке "скрытый", а по истечении времени делать ее видимой (менять стиль на видимый)... тут уж как фантазия работает =)
     
  8. Апельсин

    Апельсин Активный пользователь

    С нами с:
    20 мар 2010
    Сообщения:
    3.645
    Симпатии:
    2
    ему короче нужно чтоб было изначально число, от которого постепенно отнимается по единице. По истечению уже появляется ссылко. саму функцию нуно написать для "щелкания" числа на -1 и интервалом.
    мне влом :D