2012-06-12 2 views
0

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

Thanks

+1

Как вы определяете уникальных пользователей в настоящее время? Они вошли в систему? Вы устанавливаете cookie? Сохранить IP-адрес? – Widor

+0

@Widor: Комментарии должны быть в системе. Но анонимные пользователи могут оценивать комментарии – RYN

ответ

6

Вам необходимо сохранить идентификационные данные для каждого голосования. Вы можете идентифицировать пользователей по:

1) ID пользователя, если пользователи должны войти в систему
2) IP-адрес
3) Cookie с IP-адресами, потому что куки могут быть удалены или проигнорированы
4) Вы можете использовать идею из https://panopticlick.eff.org/ и объединить его с IP

+0

+1 для ссылки panopticlick .. довольно аккуратно! – Adi

+0

другой +1 для panopticlick ... мне нравится! –

+0

+1 как для связи, так и для ответа – RYN

3

Когда кто-то голосует чек в вашей базе данных

SELECT * FROM votes WHERE voter_ip = '(IP)' AND comment_id = (ID) AND user_agent = '(AGENT)' 

Если вы не смогли найти запись, а затем сделать свой материал для голосования, а затем

INSERT INTO votes (voter_ip, comment_id, user_agent) VALUES ('IP', 'ID', 'AGENT') 

Вы можете получить IP от $_SERVER['REMOTE_ADDR'] и AGENT от $_SERVER['HTTP_USER_AGENT']

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

+0

Большое спасибо – RYN

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

  • Нет связанных вопросов^_^