![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| DezmASter |
|
||||||||||||||
![]() Дизайнер :) ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1520 Регистрация: 3.2.2006 Где: Украина, Запорожь е Репутация: 1 Всего: 109 |
Сегодня, даже далеко не все платные хостинг-компании предоставляют полную статистику посещений вашего сайта - что уж говорить о бесплатных. Разумеется, можно воспользоваться бесплатными сервисами, типа HotLog (например, счетчики чуть левее текста), однако более качественные услуги стоят дорого. Можно создать свою статистику, практически без труда, для этого нужно написать всего пару строчек кода. Ну что ж, приступим...
Доступ к лог-файлам сайта есть не везде, а хочется все-таки просмотреть логи, проблема решаема - пишем скрипт для создания своих лог-файлов. На вооружение возьмем два метода - с использованием сессий - в логе остается лишь одна запись - и без - остается запись после каждого нового хита пользователя. Для хранения мы будем использовать обчычные текстовые файлы. Метод первый с использованием сессий:
Теперь давайте пройдемся по отдельным частям кода:
Здесь мы запускаем механизм сессий, эта строчка просто необходима, ведь в представленном примере мы будем вести учет пользователей, "не учтенных" сессией.
Здесь мы проверяем существует ли сессия с именем 'counted', если нет, то выполняем идущий за этой строкой код.
А вот уже в этом куске кода мы объявляем список переменных, которые в свою очередь обращаются к глобальным переменным, пожалуй, не стоит описывать работу всех их, лишь скажу о функциях оных. $_SERVER['HTTP_USER_AGENT'] - расскажет нам в логе о том, каким браузером и ОС пользуется юзер. $_SERVER['REQUEST_URI'] - поведает о том, с какой страницы была произведена запись, можно также составить статистику наиболее популярных для входа страниц. $_SERVER['PHP_AUTH_USER'] - работает, только, если у вас на сайте есть регистрация и пользовательские аккуанты - запишется имя пользователя. $_SERVER['REMOTE_ADDR'] - ну здесь по-моему все понятно - определяется ip пользователя $_SERVER['HTTP_REFERER'] - очень удобная вещь - с помощью нее мы узнаем откуда пришел пользователь, и узнаем о сайтах, поместивших на нас ссылку. date('r') - записывается время в стандартно формате.
Если человек пришел на ваш сайт, просто набрав в адрестой строке браузера ваш адрес и он не зарегистрирован, то в этом случае в логе будет записано "нет".
В последнем куске кода - мы записываем соответствующую информацию в файл logs.txt. Все скрипт статистики готов! Способ второй - без использования сессий. Во втором способе мы не будем использовать сессии, то есть каждый хит пользователя будет заносится в ваш лог файл. Если посещаемость вашего ресурса высока - то не советую применять этот способ, хотя с помощью него вы получаете полную картину посещаемости вашего сайта.
Практически тоже самое, что и в первом способе - поэтому останавливаться на нем мы не будем. Данный скрипт можно модернизировать таким образом, чтобы, например, каждые 24 часа - информация из него отсылалась владельцу ресурса, а сам он очищался, но это уже совсем другая история... Автор: Гречухин Александр Сайт автора: http://scripts.atlanto.ru/ |
||||||||||||||
|
|||||||||||||||
| Валерия |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 598 Регистрация: 10.3.2007 Репутация: 3 Всего: 8 |
Это всё конешно хорошо, но файл не подходит для того что бы в него сильно часто записывали...
|
|||
|
||||
| Alukard |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 145 Регистрация: 14.11.2006 Репутация: нет Всего: нет |
Хм, честно говоря, я бы не советовал применять ни один из данных способов) Как альтернатива, Mysql или ещё SQLite...или любая другая БД...нужно признаться, хранить логи посещений в текстовом файле - прошлый век, тем более апатч ведет свои текстовые логи которые можно глянуть, а это двойную работу делать.
Хотя, это альтернатива для бесплатных хостингов, где нету MySQL, но это уже другая история. --------------------
Блог блогу рознь: Алукардные РецептыPHP, Операционные системы, Россия & США...etc. |
|||
|
||||
| Anarki |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 326 Регистрация: 14.3.2005 Репутация: 7 Всего: 11 |
Для такого скрипта вполне нормально и он быстрее будет работать, чем если бы скрипт отдавал данные в mysql. |
|||
|
||||
| Валерия |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 598 Регистрация: 10.3.2007 Репутация: 3 Всего: 8 |
И чем сильнее набиваеться файл, тем всё значительно медленнее начинает работать.
С БД также, но это в них намного слабее проявляеться... |
|||
|
||||
| Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 20 Всего: 42 |
Все это ерунда.
Чего вы решили что файл будет работать медленнее БД? Чего вы решили, что запись в файл может происходить реже чем в БД? Да и вообще, кто сказал, что файл должен быть один единственный? -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
| theworldcreator |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 362 Регистрация: 25.8.2007 Где: Москва Репутация: 10 Всего: 13 |
Вы слышали о констркции
м? В данном случае(при достаточном количестве посетителей) она необходима. |
||||
|
|||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
А где,товаришъ DezmASter, вычитал такую функцию? Это насколько-то актуально"? Imho, для PHP 4.0.xxx ? Таких уже не в каждом зоопарке встретишь... -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| Nigel |
|
|||
|
познаю мир ![]() ![]() Профиль Группа: Участник Сообщений: 515 Регистрация: 20.11.2007 Репутация: 7 Всего: 19 |
Ни за что бы не прочитал эту статью, если кое-кто из археологов ее не отрыл. Зачем возвращаться к тому, что давно не актуально. Статья была написана, лет 5 назад, наверно. А вообще, удивляют личности, которые сравнивают субд с файлами. Нет, даже не с файл-серверными бд, а с файлами
ksnk, какие претензии к DezmASter'у, писал-то не он, автора внизу видите? И смотрите, пожалуйста, на дату, не фиг в старье копаться |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |