Главная | Форум | Статьи | Фaйлы| Картинки WoW | Профиль | Регистрация | Вход

[ Новые сообщения · Правила форума · Поиск · RSS ]

WoW-Info — информационный World of Warcraft портал

Полная статистика посещений - Форум

  • Сторінка 1 з 1
  • 1
Полная статистика посещений
ADRE[N]ALINEДата: Неділя, 05.12.2010, 02:36 | Сообщение # 1



ADRE[N]ALINE
Сержант
Группа: Пользователи
Сообщений: 126

Замечания:

Оффлайн
Сегодня, даже далеко не все платные хостинг-компании предоставляют полную статистику посещений вашего сайта - что уж говорить о бесплатных. Разумеется, можно воспользоваться бесплатными сервисами, типа HotLog (например, счетчики чуть левее текста), однако более качественные услуги стоят дорого. Можно создать свою статистику, практически без труда, для этого нужно написать всего пару строчек кода. Ну что ж, приступим...

Доступ к лог-файлам сайта есть не везде, а хочется все-таки просмотреть логи, проблема решаема - пишем скрипт для создания своих лог-файлов. На вооружение возьмем два метода - с использованием сессий - в логе остается лишь одна запись - и без - остается запись после каждого нового хита пользователя. Для хранения мы будем использовать обчычные текстовые файлы.
Метод первый с использованием сессий:

Code
<?php  
session_start();  
if(!session_is_registered('counted')){  
$agent = $_SERVER['HTTP_USER_AGENT'];  
$uri = $_SERVER['REQUEST_URI'];  
$user = $_SERVER['PHP_AUTH_USER'];  
$ip = $_SERVER['REMOTE_ADDR'];  
$ref = $_SERVER['HTTP_REFERER'];  
$dtime = date('r');  

if($ref == ""){  
$ref = "None";  
}  
if($user == ""){  
$user = "None";  
}  

$entry_line = "$dtime - IP: $ip | Agent: $agent | URL: $uri  
| Referrer: $ref | Username: $user n";  
$fp = fopen("logs.txt", "a");  
fputs($fp, $entry_line);  
fclose($fp);  
session_register('counted');  
}  
?>

Теперь давайте пройдемся по отдельным частям кода:

session_start();
Здесь мы запускаем механизм сессий, эта строчка просто необходима, ведь в представленном примере мы будем вести учет пользователей, "не учтенных" сессией.

if(!session_is_registered('counted')){
Здесь мы проверяем существует ли сессия с именем 'counted', если нет, то выполняем идущий за этой строкой код.

Code
$agent = $_SERVER['HTTP_USER_AGENT'];  
$uri = $_SERVER['REQUEST_URI'];  
$user = $_SERVER['PHP_AUTH_USER'];  
$ip = $_SERVER['REMOTE_ADDR'];  
$ref = $_SERVER['HTTP_REFERER'];  
$dtime = date('r');

А вот уже в этом куске кода мы объявляем список переменных, которые в свою очередь обращаются к глобальным переменным, пожалуй, не стоит описывать работу всех их, лишь скажу о функциях оных.

$_SERVER['HTTP_USER_AGENT'] - расскажет нам в логе о том, каким браузером и ОС пользуется юзер.
$_SERVER['REQUEST_URI'] - поведает о том, с какой страницы была произведена запись, можно также составить статистику наиболее популярных для входа страниц.
$_SERVER['PHP_AUTH_USER'] - работает, только, если у вас на сайте есть регистрация и пользовательские аккуанты - запишется имя пользователя.
$_SERVER['REMOTE_ADDR'] - ну здесь по-моему все понятно - определяется ip пользователя
$_SERVER['HTTP_REFERER'] - очень удобная вещь - с помощью нее мы узнаем откуда пришел пользователь, и узнаем о сайтах, поместивших на нас ссылку.
date('r') - записывается время в стандартно формате.
f(!$ref){
$ref = "Нет";
}
if(!$user){
$user = "Нет";
}
Если человек пришел на ваш сайт, просто набрав в адрестой строке браузера ваш адрес и он не зарегистрирован, то в этом случае в логе будет записано "нет".

$entry_line = "$dtime - IP: $ip | Agent: $agent | URL: $uri
| Referrer: $ref | Username: $user n";
$fp = fopen("logs.txt", "a");
fputs($fp, $entry_line);
fclose($fp);
session_register('counted');
В последнем куске кода - мы записываем соответствующую информацию в файл logs.txt. Все скрипт статистики готов!

Способ второй - без использования сессий.

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

Code
<?php  
$agent = $_SERVER['HTTP_USER_AGENT'];  
$uri = $_SERVER['REQUEST_URI'];  
$user = $_SERVER['PHP_AUTH_USER'];  
$ip = $_SERVER['REMOTE_ADDR'];  
$ref = $_SERVER['HTTP_REFERER'];  
$dtime = date('r');  

if($ref == ""){  
$ref = "None";  
}  
if($user == ""){  
$user = "None";  
}  

$entry_line = "$dtime - IP: $ip | Agent: $agent | URL: $uri  
| Referrer: $ref | Username: $user n";  
$fp = fopen("logs.txt", "a");  
fputs($fp, $entry_line);  
fclose($fp);  
?>

Практически тоже самое, что и в первом способе - поэтому останавливаться на нем мы не будем.

Данный скрипт можно модернизировать таким образом, чтобы, например, каждые 24 часа - информация из него отсылалась владельцу ресурса, а сам он очищался, но это уже совсем другая история...



 
  • Сторінка 1 з 1
  • 1
Пошук:

Новые сообщения в темах
Сдам в аренду сервер и хостинг · (Хост Предложения)
Автор: redlaine
Последнее сообщение в 23:53
[Гайд] - Ездовые животные · (Гайды по WoW)
Автор: Darkensand
Последнее сообщение в 12:59
▃ ▅ █ STRIKE-DEATH | WOTL... · (Обычные сервера WoW)
Автор: Pensukdeath
Последнее сообщение в 05:18
Уход и забота за воинами: прок... · (Воин)
Автор: UncontesteD
Последнее сообщение в 17:34
Очень хороший зароботок!!! · (Флудилка)
Автор: Hordcore
Последнее сообщение в 12:57
Основы Sql · (Sql)
Автор: No-One
Последнее сообщение в 01:45
Баг на 30к крита 5.4.8 · (Баги WoW)
Автор: Darkensand
Последнее сообщение в 18:46
Баг на дамаг · (Баги WoW)
Автор: nikitadevil
Последнее сообщение в 18:44
Неуязвимость · (Баги WoW)
Автор: Darkensand
Последнее сообщение в 18:43
Бесконечный сокет · (Баги WoW)
Автор: Darkensand
Последнее сообщение в 18:42
Баг на ледянные баджи на uwow · (Баги WoW)
Автор: Darkensand
Последнее сообщение в 18:31
Новейший баг на дамаг ханта · (Баги WoW)
Автор: Act1mel
Последнее сообщение в 18:23
[БАГ] + к Урону для всех класс... · (Баги WoW)
Автор: Darkensand
Последнее сообщение в 18:22
Ретро паладин 4.3 · (Паладин)
Автор: Darkensand
Последнее сообщение в 02:05
Hellscream.ORG - Азиатский WoW... · (Обычные сервера WoW)
Автор: Alexstrasza007
Последнее сообщение в 10:30

Контакты Контакты Copyright WoW-Info — World of Warcraft портал © 2026 | Условия и правила использования ресурса | Реклама / Услуги
WoW-Info портал.World of Warcraft портал — готовые сервера, сайты, картинки, аддоны, патчи, читы, баги, mangos, ArcEmu, TrinityCore, Warcraft 3, новости, Cataclysm...
Яндекс.Метрика Хостинг від uCoz