我使用ajax调用insertmsg.php来插入一条消息。
现在javascript不是实时语言,所以我不能指望在ajax函数的顶部有一个禁用按钮。
所以我想知道如何使用insertmsg.php为时间限制: mysql_query(“INSERT INTO ..,延迟2秒,没有存储用户上次在数据库中写入的内容。或者这是唯一的方法?我怎么能用会话来做呢?
答案 0 :(得分:1)
我想我明白你想要什么。但你的英语非常糟糕......
您希望阻止用户以小于2秒的间隔发送消息。
您可以在客户端和服务器端执行此操作,但愿意用户可以轻松禁用客户端检查。
要在服务器端执行此操作,在PHP中,您需要存储用户上次发送消息的时间。
$_SESSION['lastMessageTime'] = time();
当调用新插入时,您只需检查
if(time() - $_SESSION['lastMessageTime'] <= 2)
exit('Not allowed!')
在使用$_SESSION
变量之前,请不要忘记启用会话。
或许您希望脚本以2秒的延迟进行插入?
您可以使用sleep函数在PHP中等待。或者,您可以使用setTimeout延迟JavaScript中的操作。
答案 1 :(得分:0)
您是否正在尝试确定用户是否及时回答了问题?
如果是这样,您可以在会话中存储将问题发送到站点的时间,并将其与发送时间与检索新的ajax呼叫的时间进行比较。然后你知道用户花了多长时间来输入答案。
答案 2 :(得分:0)
插入评论后,使用time()提供会话变量,然后在下次尝试插入时,检查是否会话变量&gt; 120.如果是,请运行查询.....
答案 3 :(得分:0)
不确定我理解 - Javascrip 是实时,从某种意义上说,您可以设置一个计时器以设定的间隔运行检查功能(用于响应)。如果您只希望PHP脚本运行一段时间,请设置set_time_limit(使用http://php.net/manual/en/function.set-time-limit.php)