Опубликовано: 06.10.2017
Статья о том, как устроить на сайте голосование так, чтобы
* посетители из баловства не голосовали по несколько раз,Итак, есть посетители со статическими и динамическими IP-адресами. Часто человек имеет доступ к нескольким компьютерам с интернетом. В интернет-кафе и школьных классах информатики компьютеры находятся в общественном пользовании.
Некоторые люди пользуются разными браузерами в зависимости от настроения, другие умеют менять IP-адреса как перчатки. Таких относительно редких чудес достаточно много.
Что важно? За одну условную сессию посетитель не должен проголосовать несколько раз.
Конечно, есть еще пожелания. Хорошо бы, человек, проголосовав на работе и придя домой, не кликнул бы еще разочек. То же относится и к счастливому обладателю модема, у которого на самом интересном месте разорвалось соединение. Два человека из-за одного компьютера в интернет-кафе не должны «склеиваться». И таких пожеланий много.
Соотношение между важным требованием и мини-пожеланиями — двадцать к одному.
Базовые решения
1. Никакой защиты можно не делать вообще. Вариант — мечта для программиста. Но доверие к результатам опроса исчезнет, если посетитель увидит, что голосовать можно сколько угодно раз. Поэтому хочется, чтобы человек кликнул и увидел, что второй раз не получится.
2. Делаем PHP-сессию и фиксируем факты голосования. В базу ничего не пишем. Что плохого? Если у администратора возникнут сомнения в достоверности результатов, расследования не получится. Да и сессия может закрыться, а посетитель вдруг вернется.