Автор Тема: Голосование. Проблемы  (Прочитано 5115 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Abram

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 116
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Голосование. Проблемы
« : 22 Февраля 2005, 12:26:26 »
Посоветуйте сделать голосование правильно чтобы один человек голосовал только 1 раз. Получается по айпи не отловишь так как например дома я выхожу в интернет всегда под разным айпи, а на работе вся фирма работает через прокси, тоесть постоянно с одним айпи. Что делать?

Оффлайн Croaker

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 927
  • +0/-0
  • 0
    • Просмотр профиля
    • http://alex-files.ru
Голосование. Проблемы
« Ответ #1 : 22 Февраля 2005, 13:09:07 »
Куки ставь.
Не все коту матрица.

Оффлайн Abram

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 116
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Голосование. Проблемы
« Ответ #2 : 22 Февраля 2005, 13:26:29 »
А что в куку писать? Мне нужно  как-то идентифицировать каждого посетителя

Оффлайн Croaker

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 927
  • +0/-0
  • 0
    • Просмотр профиля
    • http://alex-files.ru
Голосование. Проблемы
« Ответ #3 : 22 Февраля 2005, 13:44:00 »
Так что тебе нужно?

Цитировать
Abram:
А что в куку писать? Мне нужно как-то идентифицировать каждого посетителя


или

Цитировать
Abram:
чтобы один человек голосовал только 1 раз


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

Если тебе нужно идентифицировать пользователя, то при заходе на сайт заводи сессию, или ставь ему куку с уникальным именем. Но это уже другая тема.
Не все коту матрица.

Оффлайн Abram

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 116
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Голосование. Проблемы
« Ответ #4 : 22 Февраля 2005, 16:15:40 »
Цитировать
ставь ему куку, название которой = номеру голосования, а значение - любое.

Что-то типа такого:

if (isset($_COOKIE["voted"])){
     // пользователь уже проголосовал
}else{
    // пользователь еще не голосовал
    setcookie ("voted","1",time()+60*24*3600);
}
Тогда получается что он вытрет свою куку то сможет еще раз проголосовать?
А если куки отключены?

Оффлайн Croaker

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 927
  • +0/-0
  • 0
    • Просмотр профиля
    • http://alex-files.ru
Голосование. Проблемы
« Ответ #5 : 22 Февраля 2005, 16:22:12 »
Abram

Только не $_COOKIE["voted"], а куки $_COOKIE["voted".$vote_id], т.к. голосования время от времени меняются.

Цитировать
Abram:
А если куки отключены?


Тогда не будет работать.
Не все коту матрица.

Оффлайн Abram

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 116
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Голосование. Проблемы
« Ответ #6 : 22 Февраля 2005, 17:13:22 »
Прочитав кучу всяких идей пришел в кыводу:
1. Запретить голосвание с анонимных проксей, тоесть если HTTP_VIA!=\'\'
2. нужно создать таблицу с REMOTE_ADDR
+использование кук

Алгоритм:
if (HTTP_VIA!=\'\')
{
if (!isset($_COOKIE["voted"])){
select f_forw from table where remote=REMOTE_ADDR
if($mysql_num_rows==0)
{ПРИНИМАЕМ ГОЛОС}

Что скажете?
Что значит HTTP_X_FORWARDED_FOR ? Может его еще прикрутить ?

Оффлайн Abram

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 116
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Голосование. Проблемы
« Ответ #7 : 23 Февраля 2005, 10:05:46 »
Вот какая мысль по этому всему. Скажите мне я прав или нет и может можна еще лучше придумать:

Цитировать
Когда голосует пользователь проверяем есть ли у него кука. Если нет проверяем есть ли его айпи в базе, если нет айпи пишем его в базу и ставим куку до той даты до которой идет конкурс.
Если он решит проголосовать, и перед этим вытрет кукис, у нас есть его айпи и я его отловлю.


Что скажете???

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Голосование. Проблемы
« Ответ #8 : 23 Февраля 2005, 14:11:27 »
Abram
а зачем куку ставить ? Все равно по IP проверяешь ?
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28