Писал как-то для джона, но на джоне вроде часто срабатывала эта ф-ция, и я предположил, что это из-за возможных переадресаций header('Location');
Решил проверить вне Джона - уменьшил время срабатывания с 2-х сотых секунды на одну сотую, и написал небольшой код с header('Location'); - вроде работает, пробуйте, может спасёт от школоддоса.
Функция и её вызов с параметром (+/-)
/** Antiddos **/
function ddos($float) {
if (!session_id()) session_start();
function mc_time() {
list($usec, $sec) = explode(' ', microtime());
return ((float)$usec + (float)$sec);
}
if (isset($_SESSION['ddos'])) {
if ((mc_time() - (float)$_SESSION['ddos']) < $float) {
exit('Подождите '. $float .' секунд(ы)!');
}
}
$_SESSION['ddos'] = mc_time();
}
ddos(0.01);* (+/-)
if (!session_id()) session_start();
if (!isset($_SESSION['i'])) {
$_SESSION['i'] = 0;
header('Location: '. $_SERVER['PHP_SELF']);
exit;
} elseif ($_SESSION['i'] < 15) {
$_SESSION['i'] += 1;
header('Location: '. $_SERVER['PHP_SELF']);
exit;
} else {
echo 'Цикл перенаправлений закончен!';
}