Изменение моего сайта, чтобы разрешить анонимные комментарии

StackOverflow https://stackoverflow.com/questions/637460

Вопрос

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

Вопрос: какую информацию я должен сохранить для анонимных комментариев? Я думаю, по крайней мере, отображать имя и адрес электронной почты (для отображения 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), который уже связан с учетной записью на моем сайте, я хотел бы поймать это и предложить им войти в систему. .

Это было полезно?

Решение

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

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

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

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

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

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

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

Другие советы

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top