При работе над сайтом бывает очень полезно проанализировать логи посещений Вашего сайта. Таким образом, можно узнать, как часто Ваш сайт посещают поисковые роботы, и какие переходы по сайту осуществляют пользователи. Но, например, при использовании бесплатного хостинга, функция доступа к log файлам не предоставляется. Так как же быть в подобных случаях вебмастерам?
Предлагаем Вам написать свой собственный скрипт, который будет записывать все переходы на Вашем сайте в специальный файл, расположенный на сервере, который потом можно будет просмотреть.
Данный скрипт будет полезен для тех, кто пользуется хостингом без предоставления доступа к log-файлам. Для работы скрипта необходима поддержка хостингом PHP. Добавляете данный PHP код в начало страниц, при посещении который будут писаться логи:
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 код:
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 посещений сайта:**********
P.S. Данный скрипт был немного обновлен