Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Система выборов
Форумы портала PHP.SU » » Вопросы новичков » Система выборов

Страниц (1): [1]
 

1. Bekhruz - 28 Мая, 2016 - 12:50:26 - перейти к сообщению
Друзья, я не могу разобраться.
Как избежать повторного голосования от одного и того же лица.

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

Как сделать так, чтобы к примеру если пользователь имеет на банковском счету больше или ровно 10 млн к примеру, то он может зарегистрировать кандидатуру на выборах???
2. igosja - 29 Мая, 2016 - 11:00:40 - перейти к сообщению
"Как сделать так, чтобы выборы (голосование) проводилось через опеределенный промежуток времени, к примеру через каждый месяц."
Тут все предельно просто - раз в месяц через crontab добавляйте новый id в табличку с голосованиями.
CODE (text):
скопировать код в буфер обмена
  1. INSERT INTO `vote`
  2. SET `vote_id`=NULL

"Как избежать повторного голосования от одного и того же лица."
Нужно записывать в базу данных историю голосований с id голосовавшего, любые другие вещи, в духе cookie, ip и прочее, можно обойти.
Хочет человек проголосовать, проверяете:
CODE (text):
скопировать код в буфер обмена
  1. SELECT COUNT(`id`) AS `check`
  2. FROM `uservote`
  3. WHERE `user_id`='$user_id'
  4. AND `vote_id`='$vote_id'
А потом
CODE (text):
скопировать код в буфер обмена
  1. if (0 == $check) {
  2.     //Человек голосует и мы его записываем
  3.     $sql = "INSERT INTO `uservote`
  4.             SET `user_id`='$user_id',
  5.                 `vote_id`='$vote_id'
  6. } else {
  7.     //Выводим заглушку, мол, вы уже проголосали
  8. }


"Как сделать так, чтобы к примеру если пользователь имеет на банковском счету больше или ровно 10 млн к примеру, то он может зарегистрировать кандидатуру на выборах???"
По аналогии с предыдущим примером. Нужно делать проверку
CODE (text):
скопировать код в буфер обмена
  1. SELECT `balance`
  2. FROM `user`
  3. WHERE `id`='$user_id'
  4. LIMIT 1
Далее проверка
CODE (text):
скопировать код в буфер обмена
  1. if (10000000 < $balance) {
  2.     //Человек выдвигает свою кандидатуру
  3. } else {
  4.     //Выводим заглушку, мол, мало денег
  5. }

 

Powered by ExBB FM 1.0 RC1