joh*_*van 3 php spam-prevention
您如何允许用户在论坛/博客评论等网站上将内容标记为垃圾邮件或滥用?我知道你可以使用诸如askimet之类的服务并创建贝叶斯垃圾邮件过滤器类,但是实现允许用户报告内容的系统的最佳方法是什么?
您是否会在名为垃圾邮件和/或标记的项目表中添加一个额外的字段,您将如何区分这两个字段?基本上你将如何设置这样一个系统,数据库结构是什么?
在PHP中有没有这样做的东西?
您希望详细跟踪谁标记每个帖子,但您也可能希望允许多个人标记帖子.如果一个人标记一个帖子,他们的判断可能会有问题,但如果有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
Run Code Online (Sandbox Code Playgroud)
单独跟踪每个标志将允许您从管理或审核级别执行一些更高级的操作.
SELECT COUNT(*) FROM flag_table WHERE post_id = '1431'.flag_seq已标记的帖子来单独删除某些标记.<select>框中为它们提供预定义选项.active标志,你永远不会删除你的标志,即使它们已被处理.这对于在已标记的帖子上获取统计信息非常有用.您可以使用此信息来证明更多的审核人员,或证明他们有时间致力于研究打击垃圾邮件的新方法等.一旦设置了数据库,您只需在每个帖子的某处放置一个"标记此帖子"链接.将此链接到提交到新创建的数据库的表单.在使用mysql_real_escape_string或pg_escape_string使用预准备语句将数据插入数据库之前,请务必正确清理数据.
标记帖子后,您可以执行一些不同的操作.
| 归档时间: |
|
| 查看次数: |
2045 次 |
| 最近记录: |