php Скрипт записи логов посещений сайта 

Дата публикации  Дата изменения31.01.16  КомментарииНет   Просмотры14121

При работе над сайтом бывает очень полезно проанализировать логи посещений Вашего сайта. Таким образом, можно узнать, как часто Ваш сайт посещают поисковые роботы, и какие переходы по сайту осуществляют пользователи. Скрипт будет записывать все переходы на Вашем сайте в специальный файл, расположенный на сервере, который потом можно будет просмотреть.

Скрипт будет полезен для тех, кто пользуется хостингом без предоставления доступа к log-файлам.

Добавляете PHP-код в начало страниц, при посещении которых будут писаться логи:

 <?php
$file="base.log";    //куда пишем логи
$col_zap=4999;        //строк в файле не более
//
function getRealIpAddr() {
  if (!empty($_SERVER['HTTP_CLIENT_IP']))        // Определяем IP
  { $ip=$_SERVER['HTTP_CLIENT_IP']; }
  elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))    // Если IP идёт через прокси
  { $ip=$_SERVER['HTTP_X_FORWARDED_FOR']; }
  else { $ip=$_SERVER['REMOTE_ADDR']; }
  return $ip;
}
//
if (strstr($_SERVER['HTTP_USER_AGENT'], 'YandexBot')) {$bot='YandexBot';}
elseif (strstr($_SERVER['HTTP_USER_AGENT'], 'Googlebot')) {$bot='Googlebot';}
else { $bot=$_SERVER['HTTP_USER_AGENT']; }
//
$ip = getRealIpAddr();
$date = date("H:i:s d.m.Y");        //дата события
$home = $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];    //какая страница сайта
$lines = file($file);
while(count($lines) > $col_zap) array_shift($lines);
$lines[] = $date."|".$bot."|".$ip."|".$home."|\r\n";
file_put_contents($file, $lines);
?>

Либо, если у Вас на каждой страничке подгружается какой-нибудь php-файл через include, то поместите этот код в тот самый подгружаемый php-файл.

Для просмотра результатов лога, создайте php-файл с любым именем:

?php
if (isset($_GET[col])) { $col=$_GET[col]; } else { $col=50; }
$file=file("base.log"); 
?>
<html>
<head>
<style type='text/css'>
 td.zz {padding-left: 3px; font-size: 9pt; padding-top: 2px; font-family: Arial; }
</style>
</head>
<!--//-->
<body>
<center>
<?php
if ($col>sizeof($file)) { $col=sizeof($file); }
echo "Последние <b>".$col."</b> посещений сайта:"; 
?>
<table width="680" cellspacing="1" cellpadding="1" border="0"
    STYLE="table-layout:fixed">
<tr bgcolor="#eeeeee">
 <td class="zz" width="100"><b>Время, дата</b></td>
 <td class="zz" width="200"><b>Кто посещал</b></td>
 <td class="zz" width="100"><b>IP, прокси</b></td>
 <td class="zz" width="280"><b>Посещенный URL</b></td>
</tr>
<?php
   for ($si=sizeof($file)-1; $si+1>sizeof($file)-$col; $si--) {
   $string=explode("|",$file[$si]);
   $q1[$si]=$string[0]; // дата и время
   $q2[$si]=$string[1]; // имя бота
   $q3[$si]=$string[2]; // ip бота
   $q4[$si]=$string[3]; // адрес посещения
echo '<tr bgcolor="#eeeeee"><td class="zz">'.$q1[$si].'</td>';
echo '<td class="zz">'.$q2[$si].'</td>';
echo '<td class="zz">'.$q3[$si].'</td>';
echo '<td class="zz">'.$q4[$si].'</td></tr>';
}
echo '</table>';
echo '<br>Просмотреть последние <a href=?col=100>100</a> <a href=?col=500>500</a>';
echo '<a href=?col=1000>1000</a> посещений.';
echo '<br>Просмотреть <a href=?col='.sizeof($file).'>все посещения</a>.</center>';
echo '</body></html>';
?>

При обращении к файлу просмотра результатов лога, на экране будет отображаться примерно такая табличка:

Последние 5 посещений сайта:

Время, датаКто посещалIP, проксиПосещенный URL
19:08:40 04.11Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)211.11.11.11/log_info.php
19:06:19 04.11Mozilla/4.0 (Windows 98; US) Opera 10.00 [en]123.23.23.23/video_download.php
19:00:06 04.11Mozilla/5.0 (Windows NT 6.1; rv:16.0) Gecko/20100101 Firefox/16.0122.22.22.22current_time.php
18:45:59 03.11Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.8.131 Version/11.11111.11.11.11/script_menu_left.php
18:45:59 03.11Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.8.131 Version/11.11111.11.11.11/script_menu_left_example.php

Бесплатные курсы

Категории

Теги: , , ,

Оцените материал:

Рейтинг: 10.0/10 (2)


КомментарииКомментарии:

Нет комментариев к этой статье.


Поля, обозначенные как *, обязательны.





Максимальная длина сообщения 900 символов. Осталось   символов

 

Старые →← Новые