PHP:限时

时间:2010-10-27 13:38:41

标签: php

我使用ajax调用insertmsg.php来插入一条消息。

现在javascript不是实时语言,所以我不能指望在ajax函数的顶部有一个禁用按钮。

所以我想知道如何使用insertmsg.php为时间限制: mysql_query(“INSERT INTO ..,延迟2秒,没有存储用户上次在数据库中写入的内容。或者这是唯一的方法?我怎么能用会话来做呢?

4 个答案:

答案 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