在我的網站上,我有一個民意調查。這是基於cookie的民意調查。如果用戶投票,我使用當前投票創建一個cookie,因此只有在創建新投票時才能進行投票。我知道用戶可以刪除cookie並重新投票,但這不是問題。基於Cookie的民意調查使用PHP和AJAX
我有一個處理ajax帖子的ajax.php頁面。這裏是代碼:
if(isset($_COOKIE['poll_id']) && $_COOKIE['poll_id'] == $poll_id)
{
// print message that it is already voted, show the results...
}
else
{
// update the database and create a cookie
}
如果投票是在按鈕單擊進行的,此代碼工作正常。但是,我開始在Firebug這是這樣做的一個JavaScript:
for(var i=0;i<100;i++) {
jQuery.post('ajax.php', {
//post parameters
});
}
而且我得到100票。如果我再次運行腳本,它會失敗,因爲創建了一個cookie,但似乎如果我發出100個同時請求,檢查失敗,因爲我猜系統沒有時間來及時創建cookie,所有更新都會經過。
關於如何解決這個問題的任何建議?
我能想到的是節流的唯一的事情。你在某種方式下只能在相同的幾秒鐘內允許每個ip的N張選票。每5秒鐘一次投票。如果您還沒有分開記錄每個投票,並且存儲IP,那麼您將不得不單獨記錄每個投票。 –