Сценарию опроса PHP (использующему AJAX) нужен файл cookie - PullRequest
1 голос
/ 08 мая 2011

Я использую простой скрипт PHP-опроса (http://www.w3schools.com/php/php_ajax_poll.asp) Но у него нет способа запретить людям голосовать несколько раз. Есть ли способ добавить cookie в скрипт, чтобы ограничить количество пользователей одним голосом?

Ответы [ 4 ]

1 голос
/ 08 мая 2011

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

1 голос
/ 08 мая 2011

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

Однако, если вы все еще хотите сделать это таким образом, вы можете установитьCookie (http://php.net/manual/en/function.setcookie.php) в следующем формате:

setCookie("pollCookie", "1", "999999", "/").

Затем, когда люди пытаются проголосовать, вы можете проверитьс

if(isset($_COOKIE["pollCookie"]))
{
echo "You already voted;"
die;
}

Обратите внимание, опять-таки, что это не очень хороший способ сделать это. Более того, вам придется изменить дату истечения срока действия куки, если они не удаляют куки.

0 голосов
/ 08 мая 2011

Вы можете сохранить cookie-файл и IP-адрес в таблице temp db, которую можно обновлять каждый день или если у вас есть учетная запись пользователя на вашем веб-сайте, чем вы можете пометить пользователя как проголосовавшего.чтобы сохранить ip и cookie, убедитесь, что вы проверили оба, чтобы увидеть, присутствует ли один или другой, потому что пользователь может легко удалить cookie, но изменить ваш IP-адрес нелегко.

Надеюсь, это поможет:)

0 голосов
/ 08 мая 2011

вы можете использовать cookie для хранения значения флага, чтобы определить, проголосовал ли пользователь, но нет, но cookie можно изменить и удалить, поэтому следует использовать сеанс!Вы также можете использовать его в своей базе данных!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...