2010-10-27 97 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