Как я могу установить время, когда человек может проголосовать снова? - PullRequest
2 голосов
/ 06 февраля 2011

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

<script type="text/javascript">

var clicks = 0;
function linkClick(){
document.getElementById('clicked').value = ++clicks;
}

document.write('<a href="#" onclick="linkClick()">Vote Now!</a>');

$('#clicked').parent().bind('click', function(evt) {
$(this).unbind('click');   
/* do long time task....

evt.preventDefault();
});


</script>

You have clicked the link <input id="clicked" size="3" onfocus="this.blur();" value="0" > times

этот код в его нынешнем виде позволит использовать голосование только один раз и только один раз, я хотел бы, чтобы это происходило каждые 24 часа и в формате html, заранее спасибо

Ответы [ 2 ]

3 голосов
/ 06 февраля 2011

Невозможно безопасно реализовать это в javascript или HTML.Причина в том, что как веб-пользователь я могу очищать свои куки, открывать новый браузер или совершать звонки на ваш сервер программно без использования вашего пользовательского интерфейса.Это означает, что вам нужно что-то на сервере, чтобы я не мог отправлять дважды в течение дня, независимо от того, как выглядит веб-страница.

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

0 голосов
/ 06 февраля 2011

Вы можете создать cookie-файл и проверять его каждый день, чтобы узнать, проголосовали ли они уже. Хотя JCO611 является верным, это легко обойти. Я бы порекомендовал использовать некоторый код на стороне сервера.

Подробнее о куки в javascript: http://www.quirksmode.org/js/cookies.html

...