Дата и время      Сейчас на сайте: 4 
Главная Новости Скрипты Онлайн сервисы Хитрости Форум

Популярные темы месяца


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

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

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


Последние 7 посещений сайта:
Время, дата Кто посещал IP, прокси Посещенный URL
03:13:50 21.05CCBot/1.0 (+http://www.commoncrawl.org/bot.html)38.107.179.212/log_info.php
03:13:18 21.05CCBot/1.0 (+http://www.commoncrawl.org/bot.html)38.107.179.211/
03:12:42 21.05Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/1109.205.253.177/scroll_top_buttom.php
03:04:38 21.05Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.081.200.28.95/password_generator.php
02:50:16 21.05Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.095.25.140.118/tineye.php
02:49:50 21.05Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.095.25.140.118/advego.php
02:49:42 21.05Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.095.25.140.118/trick.php


Дата создания: 2011-07-29 23:37:43
Последнее обновление: 2012-03-08 21:36:47
Данная страничка была посещена 2762 раз(а)



Последние комментарии посетителей:

ОЛЕГ
(2011-10-07 11:33:11)
0
Мне нужен скрипт статистики посещения сайта по моим параметрам вы можете написать?

Administrator
(2011-10-07 14:22:46)
1
ОЛЕГ, мы не занимаемся написанием скриптов "под заказ", но Вы можете описать,
что Вы хотите на нашем форуме по ссылке http://usefulscript.ru/forum/forumdisplay.php?fid=5 и возможно мы сможем оказать Вам необходимую помощь.

Alex
(2011-10-13 12:51:29)
1
А где присваивается переменная $bot?

Administrator
(2011-10-13 13:59:12)
0
Alex, спасибо, что нашли недоработку.
При написании данной темы, пропустил 3 строчки:
if (strstr($_SERVER['HTTP_USER_AGENT'], 'YandexBot')) {$bot='YandexBot';}
elseif (strstr($_SERVER['HTTP_USER_AGENT'], 'Googlebot')) {$bot='Googlebot';}
else { $bot=$_SERVER['HTTP_USER_AGENT']; }
В коде выше уже исправил.

Алексей
(2011-10-30 13:00:23)
0
Я в php полный ноль, помогите, пожалуйста добавить в Ваш замечательный скрипт статистики показывать ещё и имя пользователя из этого скрипта авторизации http://*** - скрипт №6 "Система (скрипт) авторизации (аутентификации) Auth Script v 0.5" Огромная благодарность!

Administrator
(2011-10-30 13:46:23)
-2
Показать/скрыть комментарий

Алексей
(2011-10-30 14:04:31)
2
Спасибо огромное. Всё работает! Замечательный сайт, есть очень редкие и интересные скрипты. От всей души желаю Вам удачи и развития!

Только я сделал так $lines[] = $date."|".$bot."|".$ip."|".$user_id."|".$home."|\r\n"; и всё заработало, ещё раз благодарю Вас.

Геннадий
(2012-01-08 01:26:05)
0
Скрип то работает, даже на Денвере мои переходы фиксирует, но почему время фиксации всегда больше ровно на три часа?

Administrator
(2012-01-08 20:17:02)
0
Геннадий, это связано с настройками времени на сервере. Если у Вас нет возможности перевести время на сервере, то замените строчку
$date = date("H:i:s d.m.Y");
на
$date = date("H:i:s d.m.Y", mktime(date("H")-3, date("i"), date("s"), date("m"), date("d"), date("Y")));

Геннадий
(2012-04-15 15:34:24)
0
По-моему простой и функциональный скрипт. Мне понравился. Спасибо автору.

Alex
(2012-04-26 21:23:23)
0
В статистике всегда необходимы показы реферреров. Без них никак. Было бы здорово, если бы Вы добавили данную опцию в этот скрипт.

Administrator
(2012-04-26 21:58:59)
1
Alex, о том, как добавить данную опцию, читайте на нашем форуме (сообщение №13) -
http://usefulscript.ru/forum/showthread.php?tid=50&page=2

akulina
(2012-05-18 12:00:16)
0
"При обращении к файлу просмотра результатов лога, на экране будет отображаться примерно такая табличка" - вот этого не понимаю :( В скриптах нуб, но очень хочу добавить этот скрипт на свой форум. Вставила код в шаблон, туда же где прописан и код статистики посещений (правда, без определения ip). Создала php-файл (переименованием обычного текстового файла). Вставила туда нужный код, сохранила на рабочем столе. Или я куда-то его должна поместить? Потому что при обращении файл просто открывается как текстовый файл и все((

Administrator
(2012-05-18 18:56:36)
0
akulina, второй файл (для просмотра результатов лога) поместите в папку сайта туда, где лежит файл base.log и обратитесь к нему через Ваш браузер.


Добавить комментарий к теме:

Ваше имя: 745 + 17 =

Перед публикацией все комментарии проходят обязательную модерацию!

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

Служебные разделы сайта



Последние добавленные темы

Рейтинг@Mail.ru
© Copyright 2011-2012 by UsefulScript.ru Время генерации странички - 0.09524с.
Обратная связь
Поиск по сайту