我在網頁上的每個帖子下都有一個「LIKE」按鈕。當用戶點擊'LIKE'按鈕時,它通過AJAX發送一個GET請求到一個向mysql數據庫表插入一行的like.php頁面。在用戶點擊LIKE按鈕後,LIKE按鈕消失。如何防止我的LIKE按鈕在客戶端以及服務器端遭到垃圾郵件
我想確保在用戶點擊'LIKE'按鈕之間應該有3秒鐘的延遲。我的意思是如果用戶點擊帖子上的'LIKE'按鈕,並立即點擊第二篇文章中的LIKE按鈕,並且如果這個時間少於3秒,則應該拒絕LIKE按鈕處理。
現在,問題是我應該在哪裏將此檢查放在客戶端或服務器端。如果一個服務器端,一個解決方案出現在我的腦海。
我認爲把這個代碼like.php頁
if(isset($_SESSION["last_like_time"]))
{
$last_like_time = $_SESSION["last_like_time"];
$time_diff = time()-$last_like_time;
if($time_diff<3)
{
die("ERROR: You must wait at least " . (3 - $time_diff) . " seconds to Like another Post");
}
$_SESSION["last_like_time"] = time();
}
else
{
$_SESSION["last_like_time"] = time();
}
我的問題是,這是一種有效的方法來檢查服務器端的時間差?如果不是哪個是最好的方法?
我的第二個問題,如何在客戶端執行此操作而無需轉到SERVER端?
您不應該發出'GET'來保存數據,請使用'POST'。 – moonwave99 2013-04-24 12:41:08
@ moonwave99其實,這個Like Button是一個''鏈接。當某些用戶點擊''鏈接時,我可以使用POST請求發送數據嗎? – 2013-04-24 12:52:11
你不能。但''標籤是用於鏈接到一個URL,而不是用於發送數據。通過javascript發送異步,這是常用的方法。 – moonwave99 2013-04-24 12:55:40