ну или сам скрипт модифицировать так, чтоб проверял. если идёт какая нибудь запись данных куда нибудь, то проверять последнюю запись
# Koenig (20.12.2015 / 12:13)
~РайСкиЙ~, ты бы подробнее написал для чего это все. можно попробовать через сессию проверку сделать, записывать время с микросекундами и проверять с текущим, и например делать редирект на какую нибу
Вот именно это я и хочу сделать. Кидать пользователя сайта через редирект куда либо, когда он начинает обновлять страницу много раз. Работать это должно на всем сайте. Либо инклудить в шапку или ноги. Либо в ядре прописать
Вот через гугл нашел подобное:
Если к Вашему сайту идет
слишком много обращений
от какого-либо компьютера
(IP адреса), то количество
обращений нужно
сокращать чтобы,
например, не выкачали
Вашу базу сайта или чтобы
не уложили сервер
сотнями (а то и тысячами)
обращений в секунду.
Для защиты своего сайта
от большого количества
обращений можно
воспользоваться простым,
но довольно эффективным
методом, основанным на
сессиях.
В самом начале всех
страниц Вашего сайта,
которые будем защищать
от слишком частого
обращения, необходимо
установить следующий код:
PHP код:
<? php
// объявляем работу с
сессиями
session_start ();
// указываем папку, куда
будет сохраняться
информация сессий
session_save_path ($_SERVER
["DOCUMENT_ROOT" ]. "/log/
session" );
// устанавливаем защиту
по IP (сессии) не чаще, чем
раз в две секунды.
if (isset($_SESSION ["telecod_
ip" ])) {
$t = ((int)( time()- $_SESSION
["telecod_ip" ]));
if ($t < 2) die( "Нельзя
обращаться к сайту чаще,
чем 1 раз в две секунды!" );
}
$_SESSION ["telecod_ip" ]
=time();
?>
Данный скрипт записывает
время последнего
обращения к странице
сайта для каждого
посетителя в отдельности.
При повторном обращении
к страничке, скрипт
проверяет, через какой
интервал времени было
это повторное обращение.
Если повторное обращение
было совершено ранее
указанного в скрипте
интервала времени (в
данном случае это две
секунды), то страничка не
обновится, а будет
показано соответствующее
сообщение. ]
=time();
?
~РайСкиЙ~, попробуй в функции изменить
('FLOOD: exceeded limit of allowed requests');
на
header('Location : /'); exit;
Koenig, Так такого сообщения
FLOOD: exceeded limit
of allowed requests
тоже никогда не появляется. Это ничего не даст
В incfiles/classes/core.php
есть такой код:
/*
-----------------------------------------------------------------
Стартуем Сессию
-----------------------------------------------------------------
*/
private function session_start()
{
session_name('SESID');
session_start();
}
А если туда вставить этот кусок?
// объявляем работу с
сессиями
session_start ();
// указываем папку, куда
будет сохраняться
информация сессий
session_save_path ($_SERVER
["DOCUMENT_ROOT" ]. "/log/
session" );
// устанавливаем защиту
по IP (сессии) не чаще, чем
раз в две секунды.
if (isset($_SESSION ["telecod_
ip" ])) {
$t = ((int)( time()- $_SESSION
["telecod_ip" ]));
if ($t < 2) die( "Нельзя
обращаться к сайту чаще,
чем 1 раз в две секунды!" );
}
$_SESSION ["telecod_ip" ]
=time();
~РайСкиЙ~, а в настройках сайта что стоит?
Koenig, где именно в настройках?
~РайСкиЙ~, ну я про это и писал ранее
только
session_save_path
не надо, так как у сессии есть своя стандартная директория для хранения
~РайСкиЙ~, админ панель глянь