Здесь представлены некоторые мои разработки на PHP. Это в, основном, служебные скрипты, которые работают в составе других скриптов и не могут быть протестированы здесь непосредственно.
Vit писал(а)://Выполняем запрос к логам. Нужно указать путь и имя лог-файла exec('cat / home/vit08/www/site1/ samhain.z8.ru /logs/access_log | egrep \'(' . Или вставлять нужно вот так: exec('cat / home/net2ftp/samhain.z8.ru/logs/access_log | egrep \'(' .
Вы написали как будто два совершенно разных сайта. В первом случае нужно написать:
Vit писал(а):А в остальном я так понимаю ничего не надо добавлять, просто затем активировать модуль в панели админки и задавать (направлять действия скрипта) там где необходимо?
Ничего в панели админки активировать не надо. Потому что этот модуль не прописывается в вашем движке. Его надо вставлять руками в скрипт. Поэтому админка о его существовании ничего знать не будет.
Добрый день Андрей! По моему мнению сделал так как полагается всё. Прошу всё же подредактировать если я неправильно сделал. Все пути прописал, и вроде всё понял. И как я понимаю, анализируя лог файлы определил где и что часто вызывается. Судя по тому что было написано smirna index.php есть и в самих шаблонах и в корне сайта. Сначала не мог понять в модулях и компонентах нет индекс, но затем вновь прочёл и решил, что можно ставить в различные скрипты компонентов php ? Вопрос первый: а могу я к примеру если у меня скажем разные шаблоны по категориям взять и поставить Ваш модуль, (поскольку на каждом разделе различные скрипты работают)?- Просто вставить в верхней части в index.php шаблона перед body и всё? Тогда скажем раздел в меню Новости будет защищён Вашим модулем? Вопрос второй: я include 'antiddos.php'; вставлял в одном случае в index.php одного из шаблонов, а во втором случае в компонентный файл php. Изменений не произошло. Я вновь что-то делаю не так? С уважением Виталий PS. Если я вновь написал что-то из области чайников, если не трудно пошагово чуток напишите куда надо заходить и в какую строку вставлять, на примере обыкновенном если не трудно. Движок Joomla! 1.0.15
Vit, сразу маленькая поправка. Вы всё время говорите о шаблонах. Шаблоны отвечают за внешний вид сайта. Лучше этого не касаться вообще. Модуль нужно вставлять не в шаблоны, а в php-скрипты. Лучше в какой-нибудь такой, который вызывается всеми скриптами, вызываемыми пользователями. Например, есть index.php, есть viewforum.php, есть viewtopic.php (я беру для примера phpBB). Все они вызывают один общий модуль - functions_display.php. Вот в него и есть смысл вставить вызов antiddos.php. Если же Вы всё же хотите привязать его к шаблонам, то Вам нужен шаблон, который отвечает за общий дизайн и загружается самым первым. В случае phpBB, это overall_header.html. И надо вызывать его в самом начале. НО! Шаблоны обрабатываются достаточно поздно. Поэтому Ваши скрипты будут уже в большей части отрабатываться, прежде чем модуль их остановит. Поэтому шаблоны - худший из возможных вариантов.
По поводу Жумлы ничего не могу сказать - не знаю её совсем.
Андрей день добрый! Спасибо наконец-то я теперь всё в полном объёме уяснил! Просто вероятно я не мог понять из-за того, что не совсем пока ещё дружу с программированием, и потому в своей Джумле не знал куда приткнуться. Всё установил в корень index.php, и всё же позволю себе некоторую наглость попросить Вас о заключительном моменте, о котором написал Вам на почту. С уважением Виталий
Добрый день! Поставил на Joomla 1.5 - прописал скрипт в начале шаблона - все вроде работает: по крайней мере при повторном нажатии на страницу ее вывод блокируется - гуд. Настал черед SMF - добавил, работает, но: форум по умолчанию после ответа возвращается в тему, а скрипт это сделать ему и не дает - Ошибка 503 (Service Unavailable), посему логичнее сделать блокировку после 2 посыла запроса - на третьем, ну и на странице поставить скриптик на Java отсчитывающий время и автоматом обновляющий страницу. А? В случае работы скрипта на Joomla + SMF папка tmp_path общая или каждому своя?
В моём движке на Притчи.ру редирект делается специальной командой, которая блокирует проверку, а модуль проверяет, не является ли это редиректом. В CMS-ках такое тоже можно сделать, ибо редирект делается, обычно, специальной функцией, а не просто посылом соответствующего заголовка.
/* *-------------------------------------------------------- * Следующая проверка определяет, производится ли редирект * для данного ip-адреса *-------------------------------------------------------- */ $ad_IsRedir = false; $ad_TicketFname = AD_DIRNAME . '/r' . $_SERVER['REMOTE_ADDR']; if (file_exists($ad_TicketFname)) { $ad_IsRedir = true; unlink($ad_TicketFname); }
if (!$ad_IsRobot && !$ad_IsRedir) { /*** Чтение каталога и удаление старых файлов ***/
Но есть и другое решение: вызывать модуль только в случаях явного отображение страницы с информацией. В случае же каких-либо страниц, типа уведомления о том, что сообщение отправлено или каких-либо адресов с действием, просто не вызывать модуль. Я сам это не пробовал - не было необходимости. Это просто теоретически.