|
|
Модератор форума: JonMagon |
Сообщество uCoz Вебмастеру JavaScript, Flash и прочие технологии Скрипт ограничения количества скачиваний |
Скрипт ограничения количества скачиваний |
Здравствуйте! Может ли кто помочь с данным скриптом? Требуется ввести лимит на скачивание файлов с сайта для пользователей, например до 10 файлов в сутки. Желательно устанавливать лимит для профиля пользователя.
Нарыл в сети несколько скриптов, не ни один не работает... Как на Php, так и на Java, с помощью cookie. Устанавливать данный скрипт планирую в фотоальбоме. Как я понимаю, чтоб был лимит для каждого профиля без php не обойтись? Пробовал такой вариант, но он не работает, в поле где должна выводится ссылка её нет. Изначально этот скрипт был сделан для файлов, может поэтому в фотоальбоме и не хочет работать? Так же смутил вот этот фрагмент: <?if($IP_ADDRESS$='92.241.162.74')?> Нужно, чтобы Ip пользователя был равен IP сервера????? Code <?if($GROUP_ID$=3 || $GROUP_ID$=4)?> <a href="#" onclick="limit(); return false;">Лимит на скачивание</a> <script> function limit(){ $.getScript('/php/add.php?uid=$_USER_ID$'); } </script> <?endif?> Далее идём в код Страницы полного материала Каталога файлов и заменяем переменную ссылки на скачивание($RFILE_URL$, можно использовать любую переменную) и заменяем ссылку на: Code <?if($RFILE_URL$)?> <?if($IP_ADDRESS$='92.241.162.74')?> <uSite>$RFILE_URL$</uSite> <?endif?> <a href="#" onclick="down(); return false;">Download</a> <script> function down(){ $.getScript('/php/add.php'); } </script> <?endif?> где 92.241.162.74 - IP сервера. Как узнать IP сервера? Да очень просто, в архиве есть инструкция. Архив распаковываем в корень хостинга для php скриптов (папка scripts) В файле add.php в начале: Code $n = 5; $site = "http://usite.su"; где: $n - ограничение скачиваний по-стандарту $site - ссылка на ваш сайт Установка завершена. Добавлено (25 Окт 2013, 14:13:52) uCoz - лучшая российская компания!
Наши сервера падают также часто как ракеты у Роскосмоса, а система обновляется чаще чем модельный ряд у Автоваза. |
|
Там тоже уже написал. Может тут кто сможет помочь?
Как я понимаю ссылка не выводится из-за ошибки в этой части кода. <?if($RFILE_URL$)?> <?if($IP_ADDRESS$='92.241.162.74')?> <uSite>$RFILE_URL$</uSite> <?endif?> <a href="#" onclick="down(); return false;">Download</a> <script> function down(){ $.getScript('/php/add.php'); } </script> <?endif?> Скорей всего из-за этого: <?if($IP_ADDRESS$='92.241.162.74')?> <uSite>$RFILE_URL$</uSite> <?endif?> Что автор хотел сказать этим условием случаной не знаете?) uCoz - лучшая российская компания!
Наши сервера падают также часто как ракеты у Роскосмоса, а система обновляется чаще чем модельный ряд у Автоваза. |
Я бы сделал через localStorage - это явно не самый надёжный способ, но 95% посетителей, которые не знают JS этот вариант ограничит.
Это код HTML для расположения ссылки на скачивание. Код <a href="#" class="limited_item" style="display:none">Download</a> <span id="denined_url" style="display:none"> Внимание: Достигнут лимит на скачивание. Приходите завтра =) </span> Это код Javascript для работы лимита. Располагаем ниже под кодом HTML: Код <script type="text/javascript"> var q = 10; var user = 'limmm' + '$USER_ID$' var userTime = user + 't'; var ulim = +localStorage.getItem(user); var url = $('.limited_item'); url.click(function() { limitPlus(user) }); function checkLimit(n) { var nn = checkTime(n); if(nn<q) { url.show(); } else { url.remove(); $('#denined_url').show(); } } function checkTime(n) { var now = new Date().getHours(); var last = localStorage.getItem(userTime); if(last==null) { return '0' } else if(+last>now) { localStorage.setItem(user, '1'); return '1'; } else { return n; } } function limitPlus(u) { var nowH = new Date().getHours(); localStorage.setItem(userTime, nowH); var num = +localStorage.getItem(user); if(num) { num++ localStorage.setItem(user, num); checkLimit(num) } else { localStorage.setItem(user, '1'); checkLimit('1') } } checkLimit(ulim); </script> Ссылка не песочницу с рабочим вариантом и счётчиком скачиваний - http://learn.javascript.ru/play/O5OeG (нажимаем 10 раз ссылку Download справа) Особенности:
Добавлено (26 Окт 2013, 00:54:13) Сообщение отредактировал TommyPanda - Суббота, 26 Окт 2013, 00:48:11
|
Спасибо! Вроде работает! но всё же на php по профилю лучше)
uCoz - лучшая российская компания!
Наши сервера падают также часто как ракеты у Роскосмоса, а система обновляется чаще чем модельный ряд у Автоваза. |
| |||
| |||
Будьте в курсе всех обновлений: подпишитесь на наш официальный Telegram-канал uCoz и задавайте вопросы в чате сообщества!