2010-10-27 96 views
0

我使用ajax调用insertmsg.php来插入消息。PHP:制作时间限制

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

所以我想知道如何通过以下方法对insertmsg.php进行时间限制: mysql_query(“INSERT INTO ..,延迟2秒,没有存储用户上次写入数据库的时间,或者是唯一的方法是什么?我如何使用会话可能做到这一点?

+0

我完全不理解。你想防止什么,Ajax呼叫超时? – 2010-10-27 13:41:20

回答

1

我想我明白你想要什么。但是你的英文很糟糕......

你想阻止用户以小于2秒的间隔发送消息。

您可以在客户端和服务器端都做到这一点,但客户端检查可以很容易由一个愿意的用户禁用。

要做到这一点在服务器端,在PHP中,您需要存储用户上次发送消息的时间。

$_SESSION['lastMessageTime'] = time(); 

当喊出了一个新的插件让你只需要检查

if(time() - $_SESSION['lastMessageTime'] <= 2) 
    exit('Not allowed!') 

不要忘记使用$_SESSION变量之前,使您的会话。


或者你也许想让你的脚本做延迟2秒的插入?

你可以等待在PHP与sleep功能。或者,您可以使用setTimeout延迟JavaScript中的操作。

0

你们是不是要确定的用户是否接听的时间querstion?

如果是这样,你可以存储的时候,你发送问题到现场一个会话,并与发送时间和检索新的ajax呼叫的时间进行比较,然后您知道用户花了多长时间输入答案。

0

一旦你插入了一个评论,给一个会话变量,与时间(),然后当下一次它将尝试插入,检查会话变量> 120.如果是,运行查询.....

+0

您可以将此信息编辑为原始问题。 – 2010-10-27 14:10:15

0

不确定我明白 - Javascrip 实时,从某种意义上说,您可以设置一个定时器以设定的时间间隔运行检查功能(对于响应)。如果你只希望PHP脚本运行一段时间,set_time_limit(使用http://php.net/manual/en/function.set-time-limit.php