我想限制用户在特定时间限制内提交表单的次数。我了解用户可以拒绝cookie或删除会话,但这并不会让我感到烦恼。
我有以下代码,来自this thread几乎是完美的:
session_start();
if (isset($_SESSION['last_submit']) && time()-$_SESSION['last_submit'] < 60)
die('Post limit exceeded. Please wait at least 60 seconds');
else
$_SESSION['last_submit'] = time();
我遇到的问题是它似乎是在页面加载时运行,而不是在提交表单时运行。
是否可以将代码与表单提交链接起来,以便用户可以根据自己的喜好重新加载页面,并且只有在实际提交表单后才会返回超出帖子限制的消息?
非常感谢任何帮助。
答案 0 :(得分:0)
在if语句中,您可以检查所需的帖子值。如果它存在,那么它是一个提交而不是重新加载。
类似的东西:
if (isset($_SESSION['last_submit']) && time()-$_SESSION['last_submit'] < 60
&& $_POST['foo'] != ''){
//....