У меня echo $time; выводит только до сотых, хотя echo $t[0]; - 8 знаков после запятой. Наверно, зависит от конкретного сервера и его настроек.
При помощи array(0,0,0); мы объявляем массив и присваиваем его элементам значения, равные нулю. Думаю, проще не получится.
1. session_save_path устанавливает путь сохранения текущей сессии. Если все работает, то добавлять не нужно.
2. В теме я попытался разъяснить, зачем нужно большое время и учет нескольких обращений (например, пользователь прокликал для открытия в новом окне сразу 8 ссылок сайта или элементарно нажал 4 раза F5). В таком случае скрипт нужно настраивать, например, на 10 кликов за 5 сек., а не на 3 клика за 1,5 сек.
Можно, конечно, указать и 10 обращений за одну секунду, но реальные пользователи вряд ли с такой скоростью обращаются к сайту.
Что значит срабатывает нестабильно? Используйте для тестирования вывод всех значений массива при помощи foreach($_SESSION["arr_time"] as $value) echo $value."<br>";
Тогда Вы убедитесь, что все работает стабильно.
Есть предположение, что такое мнение о нестабильности скрипта вызвано тем, что если зажать кнопку F5, то периодически "пробивается" защита. Но это не так, т.к. скрипт не учитывает те обращения к сайту, когда происходит вывод сообщения "Вы слишком часто обращаетесь к страничкам сайта!".
Т.е. если в скрипте указано 3 обращения за 0.2 сек., то это означает, что 4-е и последующие обращения к сайту промежуток времени которых
относительно первого более 0.2 сек., будут блокироваться. Если же, например, при шестом обращении разница относительно первого превысила 0.2 сек., то скрипт не будет блокировать данное обращение.
Если же Вам необходимо учитывать и заблокированные обращения к сайту (когда выводится надпись "Вы слишком часто обращаетесь к страничкам сайта!"), то поместите строчки:
PHP код:
$min_index=array_search($min_time,$_SESSION["arr_time"]);
$_SESSION["arr_time"][$min_index]=$time;
перед строчкой:
PHP код:
if ($time-$min_time < 0.2) die("Вы слишком часто обращаетесь к страничкам сайта!");
Что-то много написал, но надеюсь, хоть понятно объяснил.
P.S. Если у Вас по данным вопросам еще остались вопросы, то можете продолжать задавать их в комментариях, я их буду переносить на форум.