您如何在论坛/博客评论等网站中允许用户将内容标记为垃圾邮件或滥用内容?我知道你可以使用诸如askimet之类的服务并创建贝叶斯垃圾邮件过滤器类,但是实现允许用户报告内容的系统的最佳方法是什么?
您是否会在名为垃圾邮件和/或已标记的项目表中添加一个额外字段,您将如何区分这两个字段?基本上你将如何设置这样一个系统,数据库结构是什么?
有什么东西可以在PHP中执行此操作吗?
答案 0 :(得分:8)
您希望详细跟踪每个帖子的标记,但您也可能希望允许多个人标记帖子。如果一个人标记一个帖子,他们的判断可能会有问题,但如果有20个人举报,你会立即知道这是一个问题。
我创建了一个看起来像这样的表:
flag_seq | post_id | flagger_username | timestamp | user_notes | active
============================================================================================
1 | 1431 | joebob1 | 2010-01-25 13:41:12 | it's spam | TRUE
2 | 1431 | i_hate_spam | 2010-01-25 14:01:23 | You know I hate spam. | TRUE
3 | 2283 | joebob1 | 2010-01-24 08:09:57 | vulgar language | TRUE
单独跟踪每个标记将允许您从管理或审核级别执行一些更高级的操作。
SELECT COUNT(*) FROM flag_table WHERE post_id = '1431'
快速计算。flag_seq
来单独删除某些标记。<select>
框中为他们提供预定义的选项。active
标志,即使在处理完毕后也不会删除它们。这对于在已标记的帖子上获取统计信息非常有用。您可以使用此信息来证明更多的审核人员,或证明他们有时间承诺研究打击垃圾邮件的新方法等。设置完数据库后,您只需在每个帖子的某个位置放置“标记此帖子”链接即可。将此链接到提交到新创建的数据库的表单。在使用mysql_real_escape_string
或pg_escape_string
或使用预准备语句将数据插入数据库之前,请务必正确清理数据。
一旦帖子被标记,你可以做一些不同的事情。
答案 1 :(得分:0)
如果你想从sratch自己实现这个,你应该创建一个名为reports的表。
此表格包含以下字段:
我认为这就是它。
答案 2 :(得分:0)
我不知道php中是否有内置功能。你肯定可以在表格中使用额外的字段.. 假设您有一个类似
的表格id标题内容日期...标志
每当某个用户将帖子标记为滥用或其他内容时,您只需在标志中递增计数器即可。 如果该计数器达到阈值(保持低3到5),取决于你想要的方式。如果超过阈值,只需删除帖子或您想要采取的任何行动!!