Вопрос по использованию ай пи

Nicca

Новичок
Вопрос по использованию ай пи

У меня в организации все выходят в интернет через прокси-сервер. Если я пишу голосование на сайте и фильтрую по ай пи чтобы больше одного раза не голосовали, то получается что я потеряю много потенциальных пользователей хто захочет проголосовать. Как поступить правильно в таком случае?
 

Alexandre

PHPПенсионер
1) ставь куки
2) используй
HTTP_VIA имя прокси
HTTP_FORWARDED - IP за прокси
HTTP_X_FORWARDED_FOR - IP за прокси
но многие прокси настроенны так, что скрывают ипи своих клиентов, по этому это не надежно.
 

Nicca

Новичок
Тоесть по ай пи я не идентифицирую человека?HTTP_X_FORWARDED_FOR, HTTP_VIA, HTTP_FORWARDED мне не дастответ был ли человек или не было?
 

rotoZOOM

ACM maniac
тебе прокси может не выдать IP. поэтому в некоторых случаях максимум, что ты получишь - это IP прокси. Читай, что Александр написал.
 

Nicca

Новичок
Получается что кроме кук никак нельзя??? Но ведь они не у всех включены. И что тогда? Да и не работал я с ними никогда.
 

yugene

Отошел от дел
Автор оригинала: Nicca
Тоесть по ай пи я не идентифицирую человека?HTTP_X_FORWARDED_FOR, HTTP_VIA, HTTP_FORWARDED мне не дастответ был ли человек или не было?
http://detail.phpclub.ru/article/sessions:
Некоторые разработчики прибегают к информации, полученной от TCP/IP (такой, например, как IP-адрес) для уникальной идентификации, но этот подход сопряжён с множеством трудностей. Наибольшая из них — один пользователь потенциально может использовать различные IP-адреса для каждого запроса (как это происходит с пользователями AOLа), а разные пользователи могут использовать одни и те же IP-адреса (как в случае использования во многих компьютерных лабораториях HTTP-прокси). Эти ситуации могут послужить причиной того, что единственный пользователь может выглядеть как множество, или множество пользователей — как один.
 

Nicca

Новичок
Что-то я запутася совсем.
По ай пи точно не идентифицируешь, так как у меня дома в интернет я все время захожу под новым айпи.
Если использовать куки, то что в них тогда писать? получается что нужно сделать регистрацию перед голосованием?
 

rotoZOOM

ACM maniac
Необязательно. Пиши в куку например "voted"="true". А при попытке проголосовать проверяешь установлена ли такая кука. Если да, то не засчитываешь голос и выдаешь сообщение. Если нет, то засчитываешь и устанавливаешь ему куку "voted"="true"
 

yugene

Отошел от дел
Автор оригинала: Nicca
Что-то я запутася совсем.
По ай пи точно не идентифицируешь, так как у меня дома в интернет я все время захожу под новым айпи.
А у меня в соседних комнатах офиса 50 человек и у всех - один IP :)

Автор оригинала: Nicca Если использовать куки, то что в них тогда писать? получается что нужно сделать регистрацию перед голосованием?
http://detail.phpclub.ru/article/sessions - раздел про куки.
 

Стас

Троечник
Пользователь узнал, что есть крутой броузер. Через час заходит этим броузером и голосует еще раз ;)
Отсюда вывод: возможно, стОит "прикрутить" сюда еще и регистрацию? А сессию в базу?
 

Nicca

Новичок
Необязательно. Пиши в куку например "voted"="true". А при попытке проголосовать проверяешь установлена ли такая кука. Если да, то не засчитываешь голос и выдаешь сообщение. Если нет, то засчитываешь и устанавливаешь ему куку "voted"="true"
Можешь кодом помочь. Пока сделаю просто а потом сам с базой. Просто очень много времени уйдет пока я вьеду, надо сегодня успеть.
 

rotoZOOM

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

Nicca

Новичок
Что-то я по кукам до конца не понял. Куки хранятся на стороне сервера? Или клиента? Или я с сессиями запутался?
 

Nicca

Новичок
Тогда получается что он вытрет свою куку то сможет еще раз проголосовать?
А если куки отключены?
 

azamat

Guest
Тогда получается что он вытрет свою куку то сможет еще раз проголосовать?
А если куки отключены?
ААА!!! А если у пользователя компьютера нет, то как он проголосует?
 

Nicca

Новичок
Прочитав кучу всяких идей пришел в кыводу:
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 ? Может его еще прикрутить ?
 
Сверху