как ограничить пользователя не голосовать за статью более одного раза? - PullRequest
2 голосов
/ 08 августа 2010

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

Как я могу ограничить пользователя, чтобы он / она не мог голосовать дважды?

Ответы [ 4 ]

6 голосов
/ 08 августа 2010

Просто сохраните идентификатор пользователя в таблице голосования.
Таким образом, вы всегда можете проверить, проголосовал ли уже конкретный пользователь.
Достаточно ли столбцов статьи, идентификатора пользователя, времени голосования и значения голосования

4 голосов
/ 08 августа 2010

Два метода:

  • Клиентская часть: установите в cookie (идентификаторы статей за последние 5 или 10 голосов) и не разрешайте голосовать снова. Это легко взломать, но позволяет реализовать без каких-либо изменений в базе данных!
  • Серверная часть: отследите каждое голосование вверх и проголосуйте в таблице как <{userID}, {vote UP/DOWN}, {articleID}>

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

2 голосов
/ 08 августа 2010

Я думаю, что лучший способ сделать это - сохранить все голоса и идентификаторы пользователей в базе данных, и если он станет больше, вы можете удалить старые записи из базы данных через одну неделю / месяц / и т. Д. И ограничить голосование по элементам, которые старшечем неделя / месяц / и т. д., поэтому никто не сможет проголосовать дважды за один и тот же элемент.

1 голос
/ 08 августа 2010

Вам нужно будет использовать какой-нибудь сценарий на стороне сервера, чтобы запоминать пользователей по IP или другим уникальным данным.Вам нужно будет сохранить IP или другие данные и запомнить их.Когда пользователь снова попытается проголосовать «за» или «против», вам придется проверить это, чтобы убедиться, что вы должны позволить ему сделать это.Вы должны позволить им поступить наоборот, если они захотят изменить свой голос.Вы можете сделать это с помощью PHP и MySQL (и многих других).

...