Данный скрипт будет полезен для тех, кто пользуется хостингом без предоставления доступа к log-файлам.
<?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 код:
<?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>';
?>