Перейти к публикации

Рекомендованные сообщения

Дело в том, что можно разлогинется и зайти под другим пользователем. А кука всё ещё будет существовать. У меня в таблице ключом является user_id. И если кука будет существовать от другого пользователя, то запрос

зразлогинивание можно узнать элентарно

if( $_REQUEST['action'] == "logout" )
и удалить свою куку
Это когда пользователь один раз отметиться в модуле и в течении 15 минут не будут идти запросы. Только когда он выпадет из online и умрёт его кука, только тогда он снова будет обновлён в блоке он-лайн.
если логин пропадет на минуту если он активно находится на сайте, после 15 минут, то это мелочи по сравнению с экономленной нагрузкой.
if( isset( $_REQUEST['action'] ) and $_REQUEST['action'] == "logout" )

{

	set_cookie( "module_online", "", 0 );

}

Что то - не работает (((

Как сделать оф. версию модуля?) :rolleyes:

Лень скачать модуль и посмотреть что он может!?

Всё, кроме группы и когда был в последний раз - РЕАЛИЗОВАНО.

Прежде скачал и поставил его. Кроме группы вроде ж еще нету страны и города?

Группа реализована. Страны и города нету, вместо этого после IP выводится флаг страны. (в 1.5 версии)

Кстате, вывод группы добавляет +1 запрос к базе данных при самом входе на сайт. При сёрфинге остаётся 2-а запроса: 1. очистка базы данных старых строчек, 2. вывод онлайна.

Изменено пользователем flo.mAster
Ссылка на сообщение
Поделиться на других сайтах

Похоже этот модуль станет легче и лучше предыдущих. При таком то, оживленном участии главного :P

Ссылка на сообщение
Поделиться на других сайтах

Похоже этот модуль станет легче и лучше предыдущих. При таком то, оживленном участии главного :P

Насчёт легче = уже стал. Насчёт лучше = вам решить.

Ссылка на сообщение
Поделиться на других сайтах

Поставил тоже.

Та же версия не обновлялась, что с начала поста ? Сообщение отредактировал flo.mAster - 28.04.2009, 16:57

А что у него с браузерами ?

Не в состоянии определить юзер_агента , пишет всё время Mozilla 5.0 ??

заходил оперой , ИЕ8, сафари, камино, омнивеб та же пестня

Ссылка на сообщение
Поделиться на других сайтах

Поставил тоже.

Та же версия не обновлялась, что с начала поста ? Сообщение отредактировал flo.mAster - 28.04.2009, 16:57

А что у него с браузерами ?

Не в состоянии определить юзер_агента , пишет всё время Mozilla 5.0 ??

заходил оперой , ИЕ8, сафари, камино, омнивеб та же пестня

1.5 ещё не вылаживал.

Пока тока 1.0

С браузером? Гм! Всё кул! Оперу, мозилу - определило

Попробовал, поставил. Настроек и в самом деле почти нет. Пара строк в индексе, даже не верил, что это работает... Правильно не верил, не работает!

Если серьезно, то поставил мод, сделал все, что написано в readme.chm, сделал запрос, залил файлы и... Вместо инфы о заходах, просто {online}. (префиксы менял).

Модуль block_online_v2.3 от PAVa гораздо сложней, но работал и на версии 8.0...

Кто-то, кроме автора проверял, ставил? :(

Настроек мало ибо 1-ая версия. В 1.5 версии уже гораздо болььше настроек. Их уже около 10.

Что хочу сказать о сторонних модулях онлайна: в них один хлам ненужного кода.

$tpl->set ( '{online}', $tpl->result['online'] );

вставляли в index.php?

в main.tpl - {online} вставляли?

Ждём 1.5 версию!

Изменено пользователем flo.mAster
Ссылка на сообщение
Поделиться на других сайтах

...конечно все поставил!

Нашел ошибку (не сохранил один файл). Моя невнимательность, чувствую себя чайником :(.

Все работает, но где находится посетитель не показывает. Написано "просматривает 1 страницу" или "просматривает 40 страницу". И прокси все время неизвестно...

Ссылка на сообщение
Поделиться на других сайтах

...конечно все поставил!

Нашел ошибку (не сохранил один файл). Моя невнимательность, чувствую себя чайником :(.

Все работает, но где находится посетитель не показывает. Написано "просматривает 1 страницу" или "просматривает 40 страницу". И прокси все время неизвестно...

Ибо нету прокси у тебя скорее всего.

Где находится показывает. Список:

Добавляет новость

Просматривает облако тегов

Просматривает последние новости

Просматривает статическую страницу

Просматривает избранные статьи

Просматривает правила сайта

Просматривает статистику сайта

Просматривает категорию

Просматривает полную новость

Просматривает полную новость

Просматривает * страницу

Просматривает главную страницу

Не более...

Заливаю 1.5 версию!

Скачать Module Online v1.5 (прямая ссылка)

celsoft, дайте пожалуйста разрешение на редактирование первого поста :)

Изменено пользователем flo.mAster
Ссылка на сообщение
Поделиться на других сайтах

Что хочу сказать о сторонних модулях онлайна: в них один хлам ненужного кода.

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

в вашем тоже не меньше бреда))))) у меня не плохое настроение, просто я ожидал большего - деёствительно половина хлама)))

Ссылка на сообщение
Поделиться на других сайтах

Что хочу сказать о сторонних модулях онлайна: в них один хлам ненужного кода.

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

в вашем тоже не меньше бреда))))) у меня не плохое настроение, просто я ожидал большего - деёствительно половина хлама)))

Дану! Скажи, чего у меня лишнего?

Ссылка на сообщение
Поделиться на других сайтах

Дану! Скажи, чего у меня лишнего?

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

ps: вот такое вот "дану"

pps: вот прицепился то, да? :lol:

Ссылка на сообщение
Поделиться на других сайтах

Дану! Скажи, чего у меня лишнего?

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

ps: вот такое вот "дану"

pps: вот прицепился то, да? :lol:

я ж говорю, код в студию...

предлагаю целсофту - дать пару процентов в репу автору ненужных постов ...

Ссылка на сообщение
Поделиться на других сайтах

Стал работать ещё хуже.

Теперь он тупо теряет пользователей, даже admin-a не показывает при обновлении.

Определяет ай-пи, но браузеры у него все маззилы :angry:

Ссылка на сообщение
Поделиться на других сайтах

Стал работать ещё хуже.

Теперь он тупо теряет пользователей, даже admin-a не показывает при обновлении.

Определяет ай-пи, но браузеры у него все маззилы :angry:

ммм...

В каком смысле теряет пользователей?

При каком обновлении не показывает админа?

Спецам:

$user_agent_array = explode("/", $_SERVER['HTTP_USER_AGENT']);

$user_agent_version_array = explode("(", $user_agent_array[1]);

$user_agent = trim($user_agent_array[0])." ".trim($user_agent_version_array[0]);
у меня есть ошибка в коде? Создайте файлик в корне test.php:
<?php

echo $_SERVER['HTTP_USER_AGENT'];

?>

зайдите на него: http://ваш_сайт.ру/test.php и скиньте сюда то, что там пишет.

Изменено пользователем flo.mAster
Ссылка на сообщение
Поделиться на других сайтах

В каком смысле теряет пользователей?

При каком обновлении не показывает админа?

то есть, то нету пользоватедля на сайте, сижу с 2 компов и себя же не вижу

При каком обновлении

обновлении страницы

Код

$user_agent_array = explode("/", $_SERVER['HTTP_USER_AGENT']);

$user_agent_version_array = explode("(", $user_agent_array[1]);

$user_agent = trim($user_agent_array[0])." ".trim($user_agent_version_array[0]);

куда это пихать, поскажи, щас сделаю

Ссылка на сообщение
Поделиться на других сайтах

В каком смысле теряет пользователей?

При каком обновлении не показывает админа?

то есть, то нету пользоватедля на сайте, сижу с 2 компов и себя же не вижу

При каком обновлении

обновлении страницы

Код

$user_agent_array = explode("/", $_SERVER['HTTP_USER_AGENT']);

$user_agent_version_array = explode("(", $user_agent_array[1]);

$user_agent = trim($user_agent_array[0])." ".trim($user_agent_version_array[0]);

куда это пихать, поскажи, щас сделаю

Если ты только что залогинился. В течении лимита который стоит в настройках НИЧЕГО СВЕРЯТСЯ С БАЗОЙ ДАННЫХ НЕ БУДЕТ! Будут только очищатся старые записи и выводится онлайн. Как только это время пройдёт - скрипт обновит или занесёт информацию в бд.

Не, этот код я давал спецам. Хочу удостоверится что браузер я определяю правильно :)

Создайте файлик в корне test.php:

<?php

echo $_SERVER['HTTP_USER_AGENT'];

?>

зайдите на него: http://ваш_сайт.ру/test.php и скиньте сюда то, что там пишет.

Ссылка на сообщение
Поделиться на других сайтах

Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_6; ru-ru) AppleWebKit/525.27.1 (KHTML, like Gecko) Version/3.2.1 Safari/525.27.1

сижу в safari на Мас и

Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; WebMoney Advisor; GTB6; MRA 5.4 (build 02647); Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)

IE 8 на windows

Opera/9.64 (Macintosh; Intel Mac OS X; U; ru) Presto/2.1.1

опера на мак

Mozilla/5.0 (Macintosh; U; Intel Mac OS X; ru; rv:1.8.1.21) Gecko/20090327 Camino/1.6.7 (MultiLang) (like Firefox/2.0.0.21pre)

Camino на мак

Mozilla/5.0 (Macintosh; U; Intel Mac OS X; ru; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12 WebMoney Advisor

фаефокс на мак (установлен плагин адвизор)

Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en-US) AppleWebKit/525.18 (KHTML, like Gecko, Safari/525.20) OmniWeb/v622.4.0.109283

омнивеб

Изменено пользователем veb74
Ссылка на сообщение
Поделиться на других сайтах

Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_6; ru-ru) AppleWebKit/525.27.1 (KHTML, like Gecko) Version/3.2.1 Safari/525.27.1

сижу в safari на Мас и

Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; WebMoney Advisor; GTB6; MRA 5.4 (build 02647); Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)

IE 8 на windows

ммм. что то мне ничего не понятно

сначало написано мозиле, потом MSIE 6.0 (6 версия ИЕ, как я понял) ...

бред какойто...

что скажут профи?

Я так и не понял, что там с админами? Если у компов 2-а разных IP. Эти два пользователя и покажутся.

Ссылка на сообщение
Поделиться на других сайтах

Один admin (админ)

Второй Сокол (пользователь )

другой щапс на сайте сидит - нету его

айпи один

и что бы они не показались ?

на подобных модулях работало

ЗЫ смотри обновил ещё браузеров

Ссылка на сообщение
Поделиться на других сайтах

Поставил версию 1.5. Вот что у меня получается.

Во-первых, флаг "выставить" не получается. При $options['show_country_flag'] = true; // Выводить флаг страны? ошибка:

Fatal error: Cannot redeclare getrecordwithdnsservice() (previously declared in /usr/hosting/.../html/engine/classes/geoip/geoipcity.inc:65) in /usr/hosting/..../html/engine/classes/geoip/geoipcity.inc on line 112

e505ddfd416f.jpg

Еще минусы.

То, что не определены прокси, бог с ним, но вот не видно где пользователь, очень плохо!

Кстати браузеры определяются нормально. Видно Мозилу, Оперу (IE не удалось посмотреть) поэтому не скажу.

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

c45fa5d0ab37.jpg

Вывод. Получается хуже, изменения не большие. Проще только добавлять код (всего в одном файле).

Вот примерно таков мой тест. Блоков подобных у меня было около 4...

Ссылка на сообщение
Поделиться на других сайтах

Один admin (админ)

Второй Сокол (пользователь )

другой щапс на сайте сидит - нету его

айпи один

и что бы они не показались ?

на подобных модулях работало

ЗЫ смотри обновил ещё браузеров

Вот и получается что 1 юзер. Какой первый зайдёт - такого юзера и покажет.

Подумаю как решить данный вопрос.

Для профи: как сделать 2-а UNIQUE ? Что бы в одном запросе он проверял дубликаты по столбцу uid, а в другом по столбцу ip ?

Поставил версию 1.5. Вот что у меня получается.

Во-первых, флаг "выставить" не получается. При $options['show_country_flag'] = true; // Выводить флаг страны? ошибка:

Fatal error: Cannot redeclare getrecordwithdnsservice() (previously declared in /usr/hosting/.../html/engine/classes/geoip/geoipcity.inc:65) in /usr/hosting/..../html/engine/classes/geoip/geoipcity.inc on line 112

e505ddfd416f.jpg

Еще минусы.

То, что не определены прокси, бог с ним, но вот не видно где пользователь, очень плохо!

Кстати браузеры определяются нормально. Видно Мозилу, Оперу (IE не удалось посмотреть) поэтому не скажу.

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

c45fa5d0ab37.jpg

Вывод. Получается хуже, изменения не большие. Проще только добавлять код (всего в одном файле).

Вот примерно таков мой тест. Блоков подобных у меня было около 4...

Базу скачивали? Делали всё как в инструкции?

Как не видно где пользователь? Показывает же на какой он странице! Если он на 2-ой странице сайта. что показать? Думаем головой ...

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

Проблему с ошибкой:

Fatal error: Cannot redeclare getrecordwithdnsservice() (previously declared in /usr/hosting/.../html/engine/classes/geoip/geoipcity.inc:65) in /usr/hosting/..../html/engine/classes/geoip/geoipcity.inc on line 112

нашёл, архив перезалил. Обновляем файл online.php

Ссылка на сообщение
Поделиться на других сайтах

я ж говорю, код в студию...

я ж тоже говорю - вы хотите получить модуль и продвигать его под своим? ;) Я только хотел указать вам на ошибки, которые вы сами должны исправлять...

Ну вот к примеру:

if($_REQUEST['do'] == 'addnews') { $location = "Добавляет новость"; }

if($_REQUEST['do'] == 'tags') { $location = "Просматривает облако тегов"; }
тут обычно используют свитчи - гораздо быстрее работают. Что-то вроде switch (1){ case (условие): break; } дальше
$db->query("DELETE FROM `".PREFIX."_online` WHERE `time` < '$time'");
зачем делать этот запрос постоянно и пересматривать всю таблицу? делайте хотя бы у каждого 3-5 посетителя, зашедшего на сайт. Делается с помощью стандартной функции rand (как именно - гугль в помощь), там код на 10-15 символов. дальше, к примеру, file_exists( ROOT_DIR . "/uploads/fotos/" . $row['foto'] ) какой смысл постоянно проверять наличие аватара на сервере, при этом постоянно обращаясь к файлу. дальше, к примеру, зачем в цикле постоянно грузить файл include(ROOT_DIR."/engine/classes/geoip/geoipcity.inc"); и $gi = geoip_open(ROOT_DIR."/engine/data/GeoLiteCity.dat", GEOIP_STANDARD); За одно обновление страницы обращений к этому файлу будет столько раз, сколько пользователей он-лайн. Ну и т.п. На самом деле я далеко не всё перечислил. Судя по тому, что я вижу в коде - вы даже не знаете всех возможностей движка. К примеру, зачем нужен данный запрос вообще:
$row_user_group = $db->super_query("SELECT group_name FROM ".PREFIX."_usergroups WHERE id='{$member_id['user_group']}'");
если эти данные всегда и так доступны при работе скрипта.
Для профи: как сделать 2-а UNIQUE ? Что бы в одном запросе он проверял дубликаты по столбцу uid, а в другом по столбцу ip ?
очень просто. Выбираются оба поля и объединяются в одно уникальное (это всё там, in phpmyadmin). Правда тут возникнут глюки - если один пользователь зайдёт с другого ип (при динамическом ип это возможно), то в списке будут два одинаковых ника. Сделать два уникальных поля в данном случае не выйдет - будут конфликты записи uid равного 0.
$user_agent_array = explode("/", $_SERVER['HTTP_USER_AGENT']);

$user_agent_version_array = explode("(", $user_agent_array[1]);

$user_agent = trim($user_agent_array[0])." ".trim($user_agent_version_array[0]);

смотри модуль пава. Я два года использовал его механизм на более чем 3000 копиях скрипта. Нареканий не было. Правда сейчас наверное имеет смысл уточнять его базу - выходили новые ОС и броузеры.

Ссылка на сообщение
Поделиться на других сайтах

я ж говорю, код в студию...

я ж тоже говорю - вы хотите получить модуль и продвигать его под своим? ;) Я только хотел указать вам на ошибки, которые вы сами должны исправлять...

Ну вот к примеру:

if($_REQUEST['do'] == 'addnews') { $location = "Добавляет новость"; }

if($_REQUEST['do'] == 'tags') { $location = "Просматривает облако тегов"; }
тут обычно используют свитчи - гораздо быстрее работают. Что-то вроде switch (1){ case (условие): break; } дальше
$db->query("DELETE FROM `".PREFIX."_online` WHERE `time` < '$time'");
зачем делать этот запрос постоянно и пересматривать всю таблицу? делайте хотя бы у каждого 3-5 посетителя, зашедшего на сайт. Делается с помощью стандартной функции rand (как именно - гугль в помощь), там код на 10-15 символов. дальше, к примеру, file_exists( ROOT_DIR . "/uploads/fotos/" . $row['foto'] ) какой смысл постоянно проверять наличие аватара на сервере, при этом постоянно обращаясь к файлу. дальше, к примеру, зачем в цикле постоянно грузить файл include(ROOT_DIR."/engine/classes/geoip/geoipcity.inc"); и $gi = geoip_open(ROOT_DIR."/engine/data/GeoLiteCity.dat", GEOIP_STANDARD); За одно обновление страницы обращений к этому файлу будет столько раз, сколько пользователей он-лайн. Ну и т.п. На самом деле я далеко не всё перечислил. Судя по тому, что я вижу в коде - вы даже не знаете всех возможностей движка. К примеру, зачем нужен данный запрос вообще:
$row_user_group = $db->super_query("SELECT group_name FROM ".PREFIX."_usergroups WHERE id='{$member_id['user_group']}'");
если эти данные всегда и так доступны при работе скрипта.
1. Насчёт свичей не подумал... 2. Насчёт очистки подумаю ... 3. Насчёт фото - спросите у celsoft - зачем он так сделал? 4. Выше написано, что обновлён архив. Ошибка с инклудом была пофикшена. У меня 2-ая компа. Но со вторым кое, что не так. Поэтому я проверяю всё это один. И не вижу некоторых ошибок. 5. Возможно всех не знаю. Только что нашёл. 6. Его механизм - это если есть в юзер агенте слово opera - то это сразу опера? Тогда не пойдёт ... Перечисляй ещё. Мне интересно. ==== Перезалил архив... Поправлена функция вывода группы и вывода прокси. Заменяем online.php + Делаем запрос:
ALTER TABLE `Ваш префикс_online` DROP `user_group`

Изменено пользователем flo.mAster
Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...