我使用ajax調用insertmsg.php來插入消息。PHP:製作時間限制
現在javascript不是一種實時語言,所以我不能指望在ajax函數頂部有一個禁用按鈕。
所以我想知道如何通過以下方法對insertmsg.php進行時間限制: mysql_query(「INSERT INTO ..,延遲2秒,沒有存儲用戶上次寫入數據庫的時間,或者是唯一的方法是什麼?我如何使用會話可能做到這一點?
我使用ajax調用insertmsg.php來插入消息。PHP:製作時間限制
現在javascript不是一種實時語言,所以我不能指望在ajax函數頂部有一個禁用按鈕。
所以我想知道如何通過以下方法對insertmsg.php進行時間限制: mysql_query(「INSERT INTO ..,延遲2秒,沒有存儲用戶上次寫入數據庫的時間,或者是唯一的方法是什麼?我如何使用會話可能做到這一點?
我想我明白你想要什麼。但是你的英文很糟糕......
你想阻止用戶以小於2秒的間隔發送消息。
您可以在客戶端和服務器端都做到這一點,但客戶端檢查可以很容易由一個願意的用戶禁用。
要做到這一點在服務器端,在PHP中,您需要存儲用戶上次發送消息的時間。
$_SESSION['lastMessageTime'] = time();
當喊出了一個新的插件讓你只需要檢查
if(time() - $_SESSION['lastMessageTime'] <= 2)
exit('Not allowed!')
不要忘記使用$_SESSION
變量之前,使您的會話。
或者你也許想讓你的腳本做延遲2秒的插入?
你可以等待在PHP與sleep功能。或者,您可以使用setTimeout延遲JavaScript中的操作。
你們是不是要確定的用戶是否接聽的時間querstion?
如果是這樣,你可以存儲的時候,你發送問題到現場一個會話,並與發送時間和檢索新的ajax呼叫的時間進行比較,然後您知道用戶花了多長時間輸入答案。
一旦你插入了一個評論,給一個會話變量,與時間(),然後當下一次它將嘗試插入,檢查會話變量> 120.如果是,運行查詢.....
您可以將此信息編輯爲原始問題。 – 2010-10-27 14:10:15
不確定我明白 - Javascrip 是實時,從某種意義上說,您可以設置一個定時器以設定的時間間隔運行檢查功能(對於響應)。如果你只希望PHP腳本運行一段時間,set_time_limit(使用http://php.net/manual/en/function.set-time-limit.php)
我完全不理解。你想防止什麼,Ajax呼叫超時? – 2010-10-27 13:41:20