0
我有一個奇怪的問題。錯誤的計算
我想要一個簡單的系統,如果在一秒鐘內有多個請求,就會顯示錯誤。
我做了什麼:
if(!isset($_SESSION['protect']['mass_request_time']) || $_SESSION['protect']['mass_request_time'] = null) {
$_SESSION['protect']['mass_request_time'] = microtime(true);
$_SESSION['protect']['mass_request_request'] = 1;
} else {
$_SESSION['protect']['mass_request_request'] += 1;
if($_SESSION['protect']['mass_request_request'] >= 2 && microtime(true) - $_SESSION['protect']['mass_request_time'] < 1) {
die('Too many requests!');
} elseif(microtime(true) - $_SESSION['protect']['mass_request_time'] > 1) {
# Reset the counter since more than a second is over
$_SESSION['protect']['mass_request_time'] = null;
}
我不知道我做錯了什麼,我想解決的辦法是很容易的(也許只是一個計算錯誤..它已經是凌晨3點這裏)。
您是否試圖在會話中存儲「全局」請求計數器?但會話是每個客戶端...還是每個客戶端每秒請求? – akonsu