Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Подсчитать количество посещений страницы 
:(
    Опции темы
nicka
  Дата 2.6.2004, 15:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 378
Регистрация: 11.6.2003

Репутация: нет
Всего: 1



Мне надо подсчитать количество посещений страницы на сайте(php/mysql)
Как, с использованием чего мне это лучше сделать, чтоб было ближе к правде?

Еще так же надо подсчитать количество скачиваний с сайта файлов - как?
PM MAIL   Вверх
tserbis
Дата 2.6.2004, 15:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 28.8.2002
Где: Хмельницкий, Укра ина

Репутация: 0
Всего: 0



>> подсчитать количество посещений
поставь spylog

>> подсчитать количество скачиваний
ссылка должна быть не на сам файл, который хотят скачивать, а на скрипт, который будет увеличивать счётчик скачиваний (файл или таблица базы данных), слать соответствующие файлу заголовки, а потом слать само содержимое файла.
PM MAIL WWW ICQ AOL   Вверх
Akina
Дата 2.6.2004, 16:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 5
Всего: 454



Например:

[counter.inc]

Код
<?
       $tmp=date("Y.m.d H:i:s");
       $fp=fopen("protocol.txt","a");
       $tmp=fwrite($fp,"$tmp $REMOTE_ADDR $PHP_SELF\n");
       $tmp=fclose($fp);
?>

Добавлено @ 16:05
tserbis
Цитата
поставь spylog

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


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
nicka
Дата 2.6.2004, 19:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 378
Регистрация: 11.6.2003

Репутация: нет
Всего: 1



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

Код
<?
      $tmp=date("Y.m.d H:i:s");
      $fp=fopen("protocol.txt","a");
      $tmp=fwrite($fp,"$tmp $REMOTE_ADDR $PHP_SELF\n");
      $tmp=fclose($fp);
?>


Не совсем понятно тут, как понимаю данный код открывает текстовой файл и записывает туда текущую дату, адрес клиента и $PHP_SELF (это что?)
и что дальше? Куда сажать этот код? Вообще можно узнать файлы с расширением .inc - это что?

И еще,как я понимаю вариант с куки здесь не подойдет, не так ли?
PM MAIL   Вверх
Master
Дата 3.6.2004, 11:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1530
Регистрация: 13.5.2003
Где: Mother Russia

Репутация: 8
Всего: 10



Цитата
Куда сажать этот код? Вообще можно узнать файлы с расширением .inc - это что?

На страницу. файл может быть с любым расширением. главное обрабатывать его PHP интерпритатором раз это PHP код.

Терь по поводу всего этого. Счетчики лучше всего содержать в БД.
Давным давно делал такой вот счетчик на файлах и даже с учетам lock файла перед записью с переодичностью где-то раз в месяц счетчик обнулялся. Так что постоянно обновляющийся контент надо содержать именно в БД.


--------------------
Вавилон, Вавилон
Что ты построил, что разрушил?
Вавилон, Вавилон
Плавятся души дьявольским огнем.
PM WWW ICQ   Вверх
nicka
Дата 3.6.2004, 12:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 378
Регистрация: 11.6.2003

Репутация: нет
Всего: 1



Цитата
Счетчики лучше всего содержать в БД.
- это хорошо, только если я допустим буду всякий раз как страница делает обновление увеличивать счетчик, то будет не объективная информация посещаемости страницы, хорошо бы , чтобот одного IP посещением считалось бы вход на страницу один раз за день, как это реализовать, подскажите какие функции при этом надо задействовать, например откуда взять IP клиента?

PM MAIL   Вверх
Master
Дата 3.6.2004, 12:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1530
Регистрация: 13.5.2003
Где: Mother Russia

Репутация: 8
Всего: 10



IP адрес клиента всю жизнь содержался в $_SERVER['REMOTE_ADDR']
и лучше всего делать через куки, т.к. например у нас в сети порядка 40 внешних публичных ip адресов, а народу там если не ошибаюсь более 3 тысяч человек.


--------------------
Вавилон, Вавилон
Что ты построил, что разрушил?
Вавилон, Вавилон
Плавятся души дьявольским огнем.
PM WWW ICQ   Вверх
nicka
Дата 4.6.2004, 14:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 378
Регистрация: 11.6.2003

Репутация: нет
Всего: 1



Цитата
и лучше всего делать через куки

Да, но если делать через куки, то надо как то идентифицировать клиента?
предлогать ввести юзернейм и по нему определять юзера - не все согласяться?
А как иначе - не знаю....
PM MAIL   Вверх
Chuck
Дата 4.6.2004, 15:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Сушня
**


Профиль
Группа: Эксперт
Сообщений: 442
Регистрация: 12.12.2003
Где: Узбекистан, Ташке нт

Репутация: нет
Всего: 9



Народ, а разве счетчик не должен увеличиваться на 1 при любом переходе юзера на другую, внутреннюю страничку сайта! (при том же юзере)????
Или можно сделать счетчик для каждой странички, так ты узнаешь, что посещается, а что нет!!!
И интересно, и куки отдыхают и ip адресами!!!
PM MAIL WWW GTalk   Вверх
nicka
Дата 7.6.2004, 14:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 378
Регистрация: 11.6.2003

Репутация: нет
Всего: 1



Цитата
Да, но если делать через куки, то надо как то идентифицировать клиента?
предлогать ввести юзернейм и по нему определять юзера - не все согласяться?
А как иначе - не знаю....
- все таки я не поняла, что народ по этому поводу думает?

Неужели пока с этим делом никто не встречался?

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

Куки... здесь тоже надо просить хоть раз залогиниться, для последующих посещений, ну а если они не зарегистрировались, то теряються посещения...

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

PM MAIL   Вверх
Akina
Дата 7.6.2004, 15:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 5
Всего: 454



$PHP_SELF (это что?)
Цитата
'PHP_SELF'
The filename of the currently executing script, relative to the document root. For instance, $_SERVER['PHP_SELF'] in a script at the address http://example.com/test.php/foo.bar would be /test.php/foo.bar.

If PHP is running as a command-line processor, this variable is not available.



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Chuck
Дата 7.6.2004, 16:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Сушня
**


Профиль
Группа: Эксперт
Сообщений: 442
Регистрация: 12.12.2003
Где: Узбекистан, Ташке нт

Репутация: нет
Всего: 9



Цитата(nicka @ 7.6.2004, 14:08)
Цитата
Да, но если делать через куки, то надо как то идентифицировать клиента?
предлогать ввести юзернейм и по нему определять юзера - не все согласяться?
А как иначе - не знаю....
- все таки я не поняла, что народ по этому поводу думает?

Неужели пока с этим делом никто не встречался?

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

Куки... здесь тоже надо просить хоть раз залогиниться, для последующих посещений, ну а если они не зарегистрировались, то теряються посещения...

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

Стукнись ко мне в асю 199786920 в понедельник, среду или пятницу с 14 00 до 16 00 по Москве!!!
Помогу, обсудим!!! Постараюсь!
PM MAIL WWW GTalk   Вверх
nicka
Дата 8.6.2004, 14:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 378
Регистрация: 11.6.2003

Репутация: нет
Всего: 1



ТУТ ПРИшла мне в голову такая идея:

беру следующий код для установки куки счетчика
Код
$count++;
         setcookie("count",$count);


который будет мне возвращать 1 всякий раз как клиент зашел на страничку в новом браузере(т.е в новой сессии), я эту единичку пошлю в базу, там ее прибавлюк остальным посещениям и верну какую нибудь переменную флажок, насчет того чтобы далее при обновлении страницы больше в базу бы ничего не посылалось, таким образом от каждого клиента за одно посещение будет прибавляться 1 посещение, сколько бы он не обновлял страницу... tounge.gif

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

Если я в чем ошибаюсь прошу просветлить.... smile.gif
PM MAIL   Вверх
Akina
Дата 8.6.2004, 14:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 5
Всего: 454



Предложенный мной код пишет IP клиента и страницу, которую он запросил (это чтобы один код инклюдить во все страницы). Код не зависит от настроек клиента (есть куки там или нет). А писАть в файл или в базу - совершенно пофиг. Равно как при записи посмотреть что за текущую дату этого IP нету (одним селектом)... хотя ресурсно имхо дешевле накапливать все и потом уже группить...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Chuck
Дата 8.6.2004, 16:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Сушня
**


Профиль
Группа: Эксперт
Сообщений: 442
Регистрация: 12.12.2003
Где: Узбекистан, Ташке нт

Репутация: нет
Всего: 9



Я так и не понимаю, в чем проблема???
Нужно для каждого юзера вести количество посещений - ставьте кук, с огромным сроком жизни, и увеличивайте его на 1!
База не очень преспективна. Обычный mySQL держит до 2-3 Гб, ну вот представьте зайдут к вам миллион пользователей и упадет ваша база (тут я немного преувеличил smile.gif)
Нужно, чтобы при перемещении по сайту счетчик не увеличивался - создавайте сессию и с помощью неё уже решайте увеличивать на 1 или нет!
Причем тут IP??? Я сорвался - переподключился, и что - совсем другой IP!
Плз поясните, что нужно конкретно сделать, а то я путаюсь - счетчики, спайлоги и т д!!!
PM MAIL WWW GTalk   Вверх
scriptcoder
Дата 8.6.2004, 17:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 106
Регистрация: 8.6.2004

Репутация: нет
Всего: нет



По-моему все проще.
1 таблица хранит IP, с которых заходили сегодня,
2 - сетчик.
При каждом запуске скрипта удаляются записи об IP, которые были добавлены более суток назад. Текущего IP не найдено - увеличиваем счетчик посещений на 1. А чтоб база не рухнула после INT-го IP адреса -- при достижении mysql_insert_id равного определенному значению мы ее DROP TABLE, а потом снова CREATE TABLE.
--------------------
null
PM MAIL   Вверх
Ignat
Дата 8.6.2004, 17:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Флудератор
****


Профиль
Группа: Экс. модератор
Сообщений: 4030
Регистрация: 19.4.2004
Где: غيليندزيك مدينة

Репутация: 10
Всего: 73



Цитата
ТУТ ПРИшла мне в голову такая идея:

беру следующий код для установки куки счетчика

Код 
$count++;
        setcookie("count",$count);



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

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

Если я в чем ошибаюсь прошу просветлить.... 


Пробовал этот способ - 32 тыс. посещений за два месяца - мечта промоутера. Реальных раз в 100 меньше. Врет безбожно smile.gif
А всё лень человеческая


--------------------
Теперь при чем :P
PM   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0604 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.