Доступ к лог-файлам сайта есть не везде, а хочется все-таки просмотреть логи, проблема решаема - пишем скрипт для создания своих лог-файлов. Для хранения мы будем использовать обчыный текстовый файл и сессию. 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'); Это мой дебют,надеюсь кому небудь понадобится =)
Спустя некоторое время: Я вот подумал...можно ещё и без использования сессии записывать информацию в лог файл,но если посещаемость вашего ресурса высокая,то этот варьянт вам не совсем подойдёт,хотя он предоставит вам пооолную картину посещения вашего ресурса. 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); ?>
Эт все конечно хорошо, появился новый велосепид...не пропадет..+ имхо лучше обычный счетчик поставить, spylog к примеру, предоставляет детальную инфу, в анализируемом виде..
не велосипед, spylog не даст тебе такого результата как к примеру второй код. (в плане того, сколько раз и когда именно юзер с одим сешэн ИД заходил на твой ресурс)
согласен, но я смысла не вижу в учете такой мелочи, если ты конечно пряники особо активным серферам раздавать не собираешься зы::платный пакет spylog дает более чем достаточно..
это только при использовании 2ого скрипта,вот скажем ты,когда заходиш на ресурс ,то тупо сидиш и на Ф5 жмакаеш? =)
Причем тут это? Просто надо делать на все случаи жизни, а не надейтся на порядочность людей. Вот и все.