Gud°форум

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Gud°форум » PHP ★ MySQL » Скрипт записи логов посещений Вашего сайта


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

Сообщений 1 страница 3 из 3

1

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

0

2

nefakt
Это нужная вешь :cool:

+1

3

Татьяна

Татьяна написал(а):

nefakt
Это нужная вешь

Ну да :yep: так и есть

0


Вы здесь » Gud°форум » PHP ★ MySQL » Скрипт записи логов посещений Вашего сайта


создать форум