2016-01-05 3 views
0

У меня есть сайт, написанный на PHP: как я могу запретить пользователю несколько раз нажимать кнопку?Кнопка повтора блока нажата на веб-сайте

Например, у меня есть кнопка с надписью, похожая на ту, что находится слева от этой записи. Я хочу, чтобы пользователи, не имеющие регистрации, могли повышать, но только один раз. Какие стратегии я могу использовать, чтобы пользователь не мог дважды щелкнуть его?

Просто отключив кнопку после первого нажмите не достаточно, так как они будут затем иметь возможность снова посетить страницу или обновить свой кэш и т.д. и т.д.

+2

Вы можете сохранить статус пользователя в поле SESSION, COOKIE или в базе данных. Вам нужно будет использовать AJAX, чтобы остановить действие после первого щелчка. – chris85

+0

Вы можете ограничить их способность голосовать несколько раз. Если вы не знаете, кем является пользователь, и пользователь очищает свой кеш-браузер/локальное хранилище, у вас нет шансов узнать, кто он. И даже тогда пользователь может просто использовать прокси, TOR или подобное, чтобы отображаться как другой пользователь. – JimL

+0

Вы можете разрешить один голос за каждый IP-адрес, но это не очень хорошая идея (мы вышли из ipv4 addr, у многих людей есть один и тот же публичный IP-адрес, поэтому только один из них мог голосовать). Попросите их зарегистрироваться/войти или получить адрес электронной почты/номер телефона – bartimar

ответ

-1

Лучший способ для вас, чтобы сделать это, чтобы связать голосование на IP-адрес пользователей в базе данных.

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

Вы действительно не сможете обмануть - это невозможно без системы входа в систему.

+4

Но IP! = Пользователь. Обычно сегодня публичный IP является, по крайней мере, домашним хозяйством, в лучшем случае это может быть целая компания, кампус или большое количество людей в мобильных сетях. – JimL

+0

Как реализовать процесс регистрации и/или сохранить состояние сеанса? или даже создать поле БД/пользовательский вход. – Philo

+0

Я обновил свой ответ. – Derek

Смежные вопросы