PHP:再次评论前设置持续时间

时间:2013-04-29 05:04:04

标签: php comments limit

我为我的项目做了一个评论部分。但我猜它缺乏一些“安全性”?

1)我可以尽可能多地发表评论。
2)类似评论未被禁用。

我想知道PHP中是否有这样的东西。

4 个答案:

答案 0 :(得分:1)

您必须在数据库中保存评论。如果行是重复的,您可以像这样添加唯一索引

ALTER IGNORE TABLE comments ADD UNIQUE INDEX comment_name (id, name );

答案 1 :(得分:1)

1)如果您在数据库中保存了日期/时间值,则可以验证“当您的上次评论时间”的时间以及用户尝试添加新评论时的实际时间。

但是如果您想在演示文稿中添加此验证,您可以隐藏/禁用该部分一段时间并显示/启用此部分。

2)如果您想避免评论部分中的重复条目,请验证内容或标题是否与数据库不同。

我认为当你进行第一次验证时(例如时间是5秒)并且再次发表评论是正确的,那么你验证评论是否相同。

答案 2 :(得分:0)

对于处理注释并将其插入数据库的代码,您应该将检查添加到(a)查看同一个人是否在最后X分钟内注释,或者(b)查看是否存在类似注释。 / p>

(a)非常容易实施。我假设您在数据库中存储注释,其中包含user_id列和timestamp列。然后,您可以运行查询以查看该用户是否已在时间限制内留下评论(对于此示例,我们将其设置为两分钟。)

SELECT * FROM `comments` WHERE `user_id`='{$user_id}' AND DATE_SUB(NOW(), INTERVAL 2 MINUTE) < `timestamp`

如果您运行该查询并返回一行,那么您知道该用户在不到两分钟前就发表了评论。


(b)更难的是,除非您没有真正说明评论“相似”的含义。您可以使用关键字或Levenshtein等字符串比较函数检查文本中的相似性。您将遵循与(a)中相同的逻辑,只需运行数据库查询以检查相似性并在必要时报告错误。

如果找不到与上述检查匹配的行,则可以安全地将注释插入数据库。否则,您可以向用户报告错误,或者您想要处理错误。

如果你详细说明,我相信有人可以帮助你。

答案 3 :(得分:-1)

你需要自己实施这样的事情。您可能希望使用PHP会话。