как посчитать/узнать количество обновлений страницы
Всем привет!
надо сделать защиту от "дурака": если в течение допустим минуты, юзверь любым способом(F5, ctrl+r, через ПКМ) обновил страницу более 5 раз, надо его вежливо послать на страничку с текстом, что нельзя так много раз обновлять страничку. собственно вопрос, как узнать, была ли обновлена страница? |
При загрузке страницы записывать текущее время и счетчик в cookie/localStorage. Следующий раз сравнивать с ранее записанным.
А вообще, обычно не принято указывать пользователю, можно или нет ему обновлять страницу и т.д.: это его исключительное право. |
Цитата:
я знаю что не принято, но полудурков хватает, которые фигней маются. я для примера написал 5 раз - это конечно мало, так то конечно не менее 20 ставить. |
Цитата:
|
Вообще, такие вещи лучше на стороне сервера делать. Клиентские ограничения легко обходятся (если это важно)
|
да можно, но это не критично
|
Цитата:
Проще всего счетчик +время + адрес записывать в в window.name и обнулять при сходе с предыдущего адреса на новый, Хотя ДДос делатся не руками, и с отключенными скриптами |
Цитата:
а зачем в window.name записывать? это же имя страницы вроде... |
<script type="text/javascript">
var d=new Date().getTime();
var a=document.URL;
var c=window.name;
N_max = 12 //максимальное число рефрешов страницы подряд за время TimeMin
TimeMin = 60000;//Время действия условия
var d0=d;
var i=1;
if(c!=''){var arr=c.split(",");
if(arr.length==4&&arr[2]==a){i=parseInt(arr[3])+1;
//alert(i)
}
else window.name=(d+","+d0+","+a+","+1);
} else window.name=(d+","+d0+","+a+","+1);
if(i>1){d0=parseInt(window.name.split(",")[1])}
if(isNaN(i)||isNaN(d0)){i=1;d0=d;}
//alert(window.name.split(",")[1])
if( i >=N_max){
if(d-d0<= (TimeMin/N_max)*i){alert('Хорош обновлять страницу!!!');window.name='';window.location="http://qps.ru/H7rqf"}
window.name='';d0=d;i=1;
}
window.name=(d+","+d0+","+a+","+i);
//alert(window.name);
</script>
|
| Часовой пояс GMT +3, время: 15:17. |