【发布时间】:2014-06-16 18:55:16
【问题描述】:
我对 php 相当陌生。我有一个网站,会员可以在该网站上发表关于某些主题的帖子。我正在尝试对上述帖子进行限制。我开发了一种使用 $_SESSION 和 isset 的粗略方法。这种方法对用户不友好,因为如果用户不遵守每这么多秒发 1 篇文章的策略,它会要求用户刷新页面。有没有更好的方法来做这件事,我做了很多研究,结果发现是空的?
if (!isset($_SESSION['posted']))
$_SESSION['posted'] = time();
if (time()-$_SESSION['posted'] < 12)
die('Post limit exceeded. Please hit refresh');
else
$_SESSION['posted'] = time();
【问题讨论】:
-
您可以使用 ajax 测试在“后台”中运行此检查,如果时间限制错误则禁用提交。但是即使提交了表单,您仍然需要在服务器上进行此检查,以防有人试图绕过 JS 代码。
-
您真的想将此绑定到用户会话吗?什么是阻止不接受 cookie 或传播会话 id 的机器人以超出您期望的速度发布?很多时候,像这样的节流限制与 IP 地址相关