Создать уникальный опрос / голосование / опрос в php - PullRequest
6 голосов
/ 25 июня 2009

Я имею в виду уникальный опрос / голосование / опрос, в котором пользователь может голосовать только один раз. Как я могу это сделать? Отследить их IP? Авторизоваться? Помимо логина, что еще? (логин - это мой последний вариант, поэтому, кроме логина, я могу что-нибудь еще сделать?)

Ответы [ 3 ]

8 голосов
/ 25 июня 2009

Чтобы ограничить количество голосов на человека, вам нужно отследить человека.

Теперь может быть несколько способов сделать это, и я перечислю их с их плюсами и минусами. Вам решать, какой метод подходит вам лучше всего.

  1. логин: это даст вам полный контроль. Но это также немного громоздко для пользователя. и это ваше последнее предпочтение
  2. IP: как вы будете обращаться с людьми за веб-прокси? Как насчет людей с коммутируемыми соединениями и / или динамическими IP-адресами?
  3. куки: это хорошо для краткосрочных опросов, поэтому вы можете установить срок действия куки на время окончания опроса. Но потенциальным недостатком является то, что пользователь (в отличие от luser ) будет знать, как удалить куки!
  4. openId : Хотя этот метод не слишком отличается от метода 'login', это спасает пользователя от регистрации (что на самом деле является частью, которая больше всего подходит для входа в систему).

РЕДАКТИРОВАТЬ: проблема в этой ситуации заключается в том, что вам нужно разрешить личность пользователя. Я думаю OpenID делает это чертовски хорошо.

Приветствия

JRH.

2 голосов
/ 25 июня 2009

Вы всегда можете хранить куки на своем компьютере. Однако помните, что пользователь может легко отключить файлы cookie или изменить их содержимое. Не существует 100% надежного способа сделать то, что вы хотите, - пользователь всегда может создать новую учетную запись или перейти на другой компьютер и т. Д.

Если вы хотите использовать cookie-подход, есть три варианта.

  1. Вы можете сохранить немного текста о том, что этот человек уже проголосовал
  2. Вы можете сохранить уникальный идентификатор, ссылающийся на их голос
  3. Вы можете сохранить куки-файл сеанса и сохранить остальные данные на сервере (возможно, более безопасно, поскольку они не могут редактировать данные, только идентификатор сеанса, и, вероятно, это сделает его недействительным).
0 голосов
/ 25 июня 2009

Самый безопасный способ - это система входа в систему.

Но если вы не хотите использовать один, я использовал для добавления хэша, содержащего IP-адрес пользователя и браузер, который поможет мне отфильтровать гораздо лучше, чем простой IP-адрес (строка браузера может отличаться для разных пользователей тот же браузер, из-за версии, операционной системы и установленных расширений), но у вас все еще есть проблемы, если они переключают браузеры, та же проблема, что и cookie. Хеш был сохранен в базе данных.

...