Просмотр полной версии : Система голосования. Как сделать ограничение на 1 голос в сутки?
Здравствуйте. Делаю баннер с кнопкой "голосовать". При помощи LoadVars передаю значение переменной на сервер где и происходит данная процедура (как это там делается я не знаю, меня не касается).
Постала задача ограничить количество голосов в день То есть пользователь может проголосвать 1 раз в день. Как это можно реализовать?
Использовать SharedObjects?
Прошу подсказать!
За ранее спасибо!
Можно и Shared ,а можно и PHP
У меня на уме следующее. Просто запомнить день когда был сделан голос. И при следующем голосовании сверять текущий день с днём когда был сделан голос в последний раз. Если эти числа совпадают то голос не учитывается.
Но тогда возникает проблема. Можно просто менять системную дату и голосовать сколько хочешь.
Можете подсказать методы предотвращения этого.
П.С. с PHP не работаю, так что остаётся только SharedObject.
Maxi_Hunter
03.02.2009, 23:44
Нужно проверять дату на сервере.
Скажите пожалуйста как можно это реализовать?
darksranger
04.02.2009, 00:14
php
класс data()
я с пхп не работаю... Но есть программер который думаю сможет сделать это. Последний вопрос. Возможно ли при помощи пхп создать файл (к примеру date.php) с переменной в нём,к примеру today = сегодняшний день?
Maxi_Hunter
04.02.2009, 00:42
Переменную лучше хранить где-то, в виде файла. Либо тхт (что нерекомендуется), либо базы данных, в котором будут хранится пользователи(или их дескрипторы - не важно) и дата их голосования.
Вообще, имхо, такую не тривиальную задачу гораздо легче реализовать чисто на пхп, чем придумывать сплетение стандартов... Это будет проще и быстрее)
Может вы и правы но программист по всей видимости не в силах это реализовать и скорее всего придётся делать таким образом... Но вот время на сервере может отличатся от времени на моем компьютере. Как тогда быть?
artem_fs
04.02.2009, 00:50
http://ru.php.net/date
<?php
echo 'today = '.date("m.d.y");
?>
а какая вам разница какое время у человека на компьютере, если важно ограничение 1 раз в сутки?
Maxi_Hunter
04.02.2009, 00:52
для Вас, как пользователя, это не имеет принципиального значения. так как сутки они и в африке сутки:) требуется сохранять время, в которое пользователь отдал голос. Следующий раз он может проголосовать только по прошествии 24 часов.
artem_fs
04.02.2009, 00:58
ну суть голосования не изменится. если пользователь отдал 2 февраля свой голос, то больше он не сможет его отдать 2 февраля. только третьего по времени сервера. а потом если ловить человека по его дате на компьютере, то он так-же может их переставлять их и голосовать по много раз в минуту. так что единственный на мой взгляд выход - это привязываться к времени сервера. причем уже на момент отправки голоса.
спасибо за советы. Буду разговаривать с программистом.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.