InterMaster.com.ru

Разное и возможно полезное

Логирование POST и GET запросов на сайте

Просмотров: 3513Комментарии: 0
Рубрика: Сайтостроительство
Иногда возникает необходимость отследить GET или POST запросы на своем сайте. Сделать это средствами PHP довольно просто даже новичку. Как – рассказано в этом материале.

Для удобства в корне сайта создадим отдельную папку - например log.

В этой папке log создаем два файла – например, post.log и get.log. В них будут записываться все запросы – POST и GET соответственно. Файлы оставляем пустыми.

В той же папке log создаем файл path.php, в него записываем код:

<?php
echo __DIR__;
?>
И снова в папке log создадим еще один файл – logger.php. Внутри него поместим следующий код:
<?php
$file_post = $_SERVER["DOCUMENT_ROOT"] . "/log/post.log";
$file_get = $_SERVER["DOCUMENT_ROOT"] . "/log/get.log";

if (!empty($_POST)) {
$fw = fopen($file_post, "a");
fwrite($fw, "POST " . var_export($_POST, true));
fclose($fw);
}
if (!empty($_GET)) {
$fw = fopen($file_get, "a");
fwrite($fw, "GET " . var_export($_GET, true));
fclose($fw);
}
?>
Этот скрипт и будет записывать в наши файлы post.log и get.log нужные нам логи. Далее начинается магия. Предположим, ваш сайт называется MySite.ru. Запускаем любимый браузер и открываем адрес:
http://MySite.ru/log/path.php
На экране мы увидим примерно следующую строку:
/home/mysite.ru/public_html/log/path.php
Копируем ее в текстовый редактор, меняем path.php на logger.php. Получается что-то типа:
/home/mysite.ru/public_html/log/logger.php
А теперь в начале этой строки допишем:
php_value auto_prepend_file
В итоге получится:
php_value auto_prepend_file /home/mysite.ru/public_html/log/logger.php
Идем дальше. Теперь нам надо сделать так, чтобы при поступлении POST или GET отрабатывал наш скрипт из файла logger.php. Делается это следующим образом – в корневом директории вашего сайта с вероятностью 99% есть файл .htaccess. Если вы из того 1%, у кого в корне сайта такого файла нет – просто создайте его. Далее открываете файл .htaccess на редактирование и дописываете в него строку нашу строку:
php_value auto_prepend_file /home/mysite.ru/public_html/log/logger.php
Сохраняем файл .htaccess. Все, теперь можно наслаждаться полученным результатом – смотреть все поступающие на сайт POST и GET запросы в файлах post.log и get.log. Что еще бы хотелось бы добавить:
  1. После того, как вы все сделали, файл path.php лучше удалить.
  2. Логи в файлах post.log и get.log сами не самоочищаются, поэтому размеры этих файлов будут постоянно расти до тех пор, пока вы не отключите логирование.

Используйте нормальные имена. Ваш комментарий будет опубликован после проверки.

Вы можете войти под своим логином или зарегистрироваться на сайте.

Выберите человечка с поднятой рукой!

При нажатии на картинку, Ваш комментарий будет добавлен.