Изменение моего сайта, чтобы разрешить анонимные комментарии - PullRequest
2 голосов
/ 12 марта 2009

Я пишу код для своего собственного сайта в качестве учебного / веселого упражнения. Прямо сейчас частью веб-сайта является блог (как и любой другой сайт: - /), который поддерживает обычные базовые функции блога, включая комментирование сообщений. Но у меня есть комментарии только для зарегистрированных пользователей; Я хочу изменить код, чтобы разрешить анонимные комментарии, то есть разрешить людям публиковать комментарии без предварительного создания учетной записи пользователя на моем сайте, хотя для предотвращения спама по-прежнему будет использоваться какая-то аутентификация.

Вопрос: какую информацию я должен сохранить для анонимных комментариев? Я думаю, по крайней мере, отображать имя и адрес электронной почты (для отображения Gravatar), и, вероятно, URL веб-сайта, потому что я в конечном итоге хочу также принять OpenID, но будет ли что-нибудь еще иметь смысл?

Другой вопрос: как мне изменить базу данных для хранения этой информации? Схема, которую я имею для таблицы комментариев, в настоящее время

comment_id       smallint(5)       // The unique comment ID
post_id          smallint(5)       // The ID of the post the comment was made on
user_id          smallint(5)       // The ID of the user account who made the comment
comment_subject  varchar(128)
comment_date     timestamp
comment_text     text

Стоит ли добавлять дополнительные поля для имени, адреса электронной почты и т. Д. В таблицу комментариев? (кажется плохой идеей) Создать новую таблицу "анонимных пользователей"? (и если да, как не допустить конфликта идентификаторов анонимных пользователей с идентификаторами обычных пользователей) Или создать поддельные учетные записи анонимных пользователей в моей таблице существующих пользователей?

Часть того, что делает это сложным, заключается в том, что если кто-то пытается опубликовать анонимный комментарий, используя адрес электронной почты (или OpenID), который уже связан с учетной записью на моем сайте, я хотел бы поймать это и предложить им войти .

Ответы [ 2 ]

4 голосов
/ 12 марта 2009

Смысл анонимных комментариев в том, что пользователям не нужно входить в систему, верно?

Мой личный вкус - не заставлять пользователя вводить что-либо, даже его имя! Единственное обязательное поле - сам текст комментария. Если они не хотят давать свое имя или адрес электронной почты, хорошо, кого это волнует?

Если они предоставят электронное письмо, которое уже существует, есть вероятность, что они зарегистрировались давно и даже не помнят свой пароль.

Опять же, не заставляйте пользователя войти в этом случае. Просто дайте им возможность войти в систему или оставить поле электронной почты пустым (или изменить его содержимое). Или просто покажите окно с предупреждением о том, что комментарий будет отправлен без адреса электронной почты с параметрами «ok» и «cancel».

Итак, что хранить с анонимным комментарием?

Я бы сказал, сохранить их имя и адрес электронной почты (конечно, не отображать их адрес электронной почты для общего доступа), но сделать их необязательными полями, не обязательными.

Вы также можете хранить их веб-сайт, хотя я лично не знаю, в чем смысл этого, кроме, может быть, саморекламы анонимного автора!

1 голос
/ 12 марта 2009

Без вопросов, вы вводите «имя пользователя» в таблице комментариев. И вы копируете значение из вашей пользовательской таблицы в это поле для зарегистрированных пользователей. Таким образом, если пользователь будет удален, к его комментариям будет добавлено имя. Комментарии обычно имеют иерархическую структуру, что затрудняет их удаление в середине дерева комментариев.

Если они не заполнены, вы вводите свой текст «anonymous_user» в таблицу.

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