Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Cтатистика посещений вашего ресурса. (https://forum.antichat.xyz/showthread.php?t=35208)

IIAHbI4 11.03.2007 04:17

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

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');
}
?>

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


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

session_start(); 


Здесь мы проверяем существует ли сессия с именем 'counted', если нет, то выполняем идущий за этой строкой код.
PHP код:

if(!session_is_registered('counted')){ 




А вот уже в этом куске кода мы объявляем список переменных, которые в свою очередь обращаются к глобальным переменным.
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'); 


Если человек пришел на ваш сайт, просто набрав в адресной строке браузера ваш адрес и он не зарегистрирован, то в этом случае в логе будет записано "нет".
PHP код:

$_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 "Нет";



В последнем куске кода - мы записываем соответствующую информацию в файл logs.txt. Все скрипт статистики готов!
PHP код:

$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'); 

Это мой дебют,надеюсь кому небудь понадобится =)

IIAHbI4 11.03.2007 04:34

Спустя некоторое время:
Я вот подумал...можно ещё и без использования сессии записывать информацию в лог файл,но если посещаемость вашего ресурса высокая,то этот варьянт вам не совсем подойдёт,хотя он предоставит вам пооолную картину посещения вашего ресурса.
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);
?>


mR_LiNK[deface_0nl 11.03.2007 05:24

Эт все конечно хорошо, появился новый велосепид...не пропадет..+

имхо лучше обычный счетчик поставить, spylog к примеру, предоставляет детальную инфу, в анализируемом виде..

IIAHbI4 11.03.2007 05:27

не велосипед, spylog не даст тебе такого результата как к примеру второй код.
(в плане того, сколько раз и когда именно юзер с одим сешэн ИД заходил на твой ресурс)

mR_LiNK[deface_0nl 11.03.2007 05:36

Цитата:

Сообщение от IIAHbI4
не велосипед, spylog не даст тебе такого результата как к примеру второй код.
(в плане того, сколько раз и когда именно юзер с одим сешэн ИД заходил на твой ресурс)

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

зы::платный пакет spylog дает более чем достаточно..

IIAHbI4 11.03.2007 05:39

Цитата:

Сообщение от mR_LiNK[deface_0nl
согласен, но я смысла не вижу в учете такой мелочи....

так жизнь то из мелочей состоит =)...ладно чтот флуд.

blackybr 11.03.2007 11:42

Ага.. многократное нажатие ф5 будет добавлять в лог одно и тоже

IIAHbI4 11.03.2007 14:02

Цитата:

Сообщение от blackybr
Ага.. многократное нажатие ф5 будет добавлять в лог одно и тоже

это только при использовании 2ого скрипта,вот скажем ты,когда заходиш на ресурс ,то тупо сидиш и на Ф5 жмакаеш? =)

Talisman 11.03.2007 14:05

а масенький досер заведет кучу сессий ))) и твой лог файл раздует фтп...

IIAHbI4 11.03.2007 14:27

Цитата:

Сообщение от Talisman
а масенький досер заведет кучу сессий ))) и твой лог файл раздует фтп...

ну ты же не досиш каждый ресурс на который заходиш...ну ей богу...


Время: 02:20