Forum Webscript.Ru

Программирование => PHP => Тема начата: Abram от 22 Февраля 2005, 12:26:26

Название: Голосование. Проблемы
Отправлено: Abram от 22 Февраля 2005, 12:26:26
Посоветуйте сделать голосование правильно чтобы один человек голосовал только 1 раз. Получается по айпи не отловишь так как например дома я выхожу в интернет всегда под разным айпи, а на работе вся фирма работает через прокси, тоесть постоянно с одним айпи. Что делать?
Название: Голосование. Проблемы
Отправлено: Croaker от 22 Февраля 2005, 13:09:07
Куки ставь.
Название: Голосование. Проблемы
Отправлено: Abram от 22 Февраля 2005, 13:26:29
А что в куку писать? Мне нужно  как-то идентифицировать каждого посетителя
Название: Голосование. Проблемы
Отправлено: Croaker от 22 Февраля 2005, 13:44:00
Так что тебе нужно?

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


или

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


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

Если тебе нужно идентифицировать пользователя, то при заходе на сайт заводи сессию, или ставь ему куку с уникальным именем. Но это уже другая тема.
Название: Голосование. Проблемы
Отправлено: Abram от 22 Февраля 2005, 16:15:40
Цитировать
ставь ему куку, название которой = номеру голосования, а значение - любое.

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

if (isset($_COOKIE["voted"])){
     // пользователь уже проголосовал
}else{
    // пользователь еще не голосовал
    setcookie ("voted","1",time()+60*24*3600);
}
Тогда получается что он вытрет свою куку то сможет еще раз проголосовать?
А если куки отключены?
Название: Голосование. Проблемы
Отправлено: Croaker от 22 Февраля 2005, 16:22:12
Abram

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

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


Тогда не будет работать.
Название: Голосование. Проблемы
Отправлено: Abram от 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 от 23 Февраля 2005, 10:05:46
Вот какая мысль по этому всему. Скажите мне я прав или нет и может можна еще лучше придумать:

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


Что скажете???
Название: Голосование. Проблемы
Отправлено: Макс от 23 Февраля 2005, 14:11:27
Abram
а зачем куку ставить ? Все равно по IP проверяешь ?