Каков наилучший способ запретить покупателям оценивать продукт более одного раза? - PullRequest
3 голосов
/ 23 февраля 2010

Как запретить покупателю оценивать товар более одного раза? Лучше всего использовать куки, которые хранят IP-адрес, или лучше хранить рейтинги пользователей в базе данных? Я использую MySQL и ColdFusion.

Ура!

Ответы [ 3 ]

2 голосов
/ 23 февраля 2010

Если у вас есть учетные записи пользователей, свяжите свои оценки с учетными записями. Работа выполнена, если у одного пользователя только одна учетная запись.

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

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

2 голосов
/ 23 февраля 2010

Если вы можете хранить рейтинги в базе данных, пойти на это. Файлы cookie могут быть удалены, а IP-адреса не могут быть использованы для надежной идентификации конкретного человека.

1 голос
/ 23 февраля 2010

Ну, все ваши рейтинговые процедуры после оценки будут связываться с базой данных, верно? Поскольку вы используете mySQL, каждый рейтинг, вероятно, будет сохранен в вашей базе данных.

Когда вы оценили продукт, просто дайте пользователю уникальный идентификатор, основанный на его IP, или, если применимо, имя пользователя. Затем проверьте, оценил ли этот пользователь один раз ранее.

Это довольно просто.

 IF userVoted != true 
         saveVote ( "ipAddress", "User Voted Yes")
    else
         display ( "You have already voted" )
...