flo.mAster 7 Опубликовано: 29 апреля 2009 Рассказать Опубликовано: 29 апреля 2009 (изменено) Автор Дело в том, что можно разлогинется и зайти под другим пользователем. А кука всё ещё будет существовать. У меня в таблице ключом является user_id. И если кука будет существовать от другого пользователя, то запрос зразлогинивание можно узнать элентарно if( $_REQUEST['action'] == "logout" ) и удалить свою кукуЭто когда пользователь один раз отметиться в модуле и в течении 15 минут не будут идти запросы. Только когда он выпадет из online и умрёт его кука, только тогда он снова будет обновлён в блоке он-лайн. если логин пропадет на минуту если он активно находится на сайте, после 15 минут, то это мелочи по сравнению с экономленной нагрузкой. if( isset( $_REQUEST['action'] ) and $_REQUEST['action'] == "logout" ) { set_cookie( "module_online", "", 0 ); } Что то - не работает ((( Как сделать оф. версию модуля?) Лень скачать модуль и посмотреть что он может!? Всё, кроме группы и когда был в последний раз - РЕАЛИЗОВАНО. Прежде скачал и поставил его. Кроме группы вроде ж еще нету страны и города? Группа реализована. Страны и города нету, вместо этого после IP выводится флаг страны. (в 1.5 версии) Кстате, вывод группы добавляет +1 запрос к базе данных при самом входе на сайт. При сёрфинге остаётся 2-а запроса: 1. очистка базы данных старых строчек, 2. вывод онлайна. Изменено 29 апреля 2009 пользователем flo.mAster Цитата Ссылка на сообщение Поделиться на других сайтах
freeswap 2 Опубликовано: 29 апреля 2009 Рассказать Опубликовано: 29 апреля 2009 Похоже этот модуль станет легче и лучше предыдущих. При таком то, оживленном участии главного Цитата Ссылка на сообщение Поделиться на других сайтах
flo.mAster 7 Опубликовано: 30 апреля 2009 Рассказать Опубликовано: 30 апреля 2009 Автор Похоже этот модуль станет легче и лучше предыдущих. При таком то, оживленном участии главного Насчёт легче = уже стал. Насчёт лучше = вам решить. Цитата Ссылка на сообщение Поделиться на других сайтах
veb74 10 Опубликовано: 30 апреля 2009 Рассказать Опубликовано: 30 апреля 2009 Поставил тоже. Та же версия не обновлялась, что с начала поста ? Сообщение отредактировал flo.mAster - 28.04.2009, 16:57 А что у него с браузерами ? Не в состоянии определить юзер_агента , пишет всё время Mozilla 5.0 ?? заходил оперой , ИЕ8, сафари, камино, омнивеб та же пестня Цитата Ссылка на сообщение Поделиться на других сайтах
dedugan 0 Опубликовано: 30 апреля 2009 Рассказать Опубликовано: 30 апреля 2009 (изменено) попробуем, потестим. Кто-то уже ставил, смотрел? Изменено 30 апреля 2009 пользователем dedugan Цитата Ссылка на сообщение Поделиться на других сайтах
flo.mAster 7 Опубликовано: 30 апреля 2009 Рассказать Опубликовано: 30 апреля 2009 (изменено) Автор Поставил тоже. Та же версия не обновлялась, что с начала поста ? Сообщение отредактировал 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 версию! Изменено 30 апреля 2009 пользователем flo.mAster Цитата Ссылка на сообщение Поделиться на других сайтах
dedugan 0 Опубликовано: 30 апреля 2009 Рассказать Опубликовано: 30 апреля 2009 ...конечно все поставил! Нашел ошибку (не сохранил один файл). Моя невнимательность, чувствую себя чайником . Все работает, но где находится посетитель не показывает. Написано "просматривает 1 страницу" или "просматривает 40 страницу". И прокси все время неизвестно... Цитата Ссылка на сообщение Поделиться на других сайтах
flo.mAster 7 Опубликовано: 30 апреля 2009 Рассказать Опубликовано: 30 апреля 2009 (изменено) Автор ...конечно все поставил! Нашел ошибку (не сохранил один файл). Моя невнимательность, чувствую себя чайником . Все работает, но где находится посетитель не показывает. Написано "просматривает 1 страницу" или "просматривает 40 страницу". И прокси все время неизвестно... Ибо нету прокси у тебя скорее всего. Где находится показывает. Список: Добавляет новость Просматривает облако тегов Просматривает последние новости Просматривает статическую страницу Просматривает избранные статьи Просматривает правила сайта Просматривает статистику сайта Просматривает категорию Просматривает полную новость Просматривает полную новость Просматривает * страницу Просматривает главную страницу Не более... Заливаю 1.5 версию! Скачать Module Online v1.5 (прямая ссылка) celsoft, дайте пожалуйста разрешение на редактирование первого поста Изменено 30 апреля 2009 пользователем flo.mAster Цитата Ссылка на сообщение Поделиться на других сайтах
IT-Security 33 Опубликовано: 30 апреля 2009 Рассказать Опубликовано: 30 апреля 2009 Обновил первый пост Цитата Ссылка на сообщение Поделиться на других сайтах
Al-x 7 Опубликовано: 30 апреля 2009 Рассказать Опубликовано: 30 апреля 2009 Что хочу сказать о сторонних модулях онлайна: в них один хлам ненужного кода. забавно рассуждают люди, впервые пишущие модуль по следам и опыту чуть ли не десятка людей, бывыших раннее... в вашем тоже не меньше бреда))))) у меня не плохое настроение, просто я ожидал большего - деёствительно половина хлама))) Цитата Ссылка на сообщение Поделиться на других сайтах
flo.mAster 7 Опубликовано: 30 апреля 2009 Рассказать Опубликовано: 30 апреля 2009 Автор Что хочу сказать о сторонних модулях онлайна: в них один хлам ненужного кода. забавно рассуждают люди, впервые пишущие модуль по следам и опыту чуть ли не десятка людей, бывыших раннее... в вашем тоже не меньше бреда))))) у меня не плохое настроение, просто я ожидал большего - деёствительно половина хлама))) Дану! Скажи, чего у меня лишнего? Цитата Ссылка на сообщение Поделиться на других сайтах
Al-x 7 Опубликовано: 30 апреля 2009 Рассказать Опубликовано: 30 апреля 2009 Дану! Скажи, чего у меня лишнего? кода, запросов ненужных, лишних операций и расчётов. Отсутсвуют фильтрации данных, добавляемых в базу, лишняя нагрузка на файловую систему сервера, бесполезное расходование места в бд, нежелательный тип таблицы в бд (хотя тут уже не столь принципиально). ps: вот такое вот "дану" pps: вот прицепился то, да? Цитата Ссылка на сообщение Поделиться на других сайтах
flo.mAster 7 Опубликовано: 30 апреля 2009 Рассказать Опубликовано: 30 апреля 2009 Автор Дану! Скажи, чего у меня лишнего? кода, запросов ненужных, лишних операций и расчётов. Отсутсвуют фильтрации данных, добавляемых в базу, лишняя нагрузка на файловую систему сервера, бесполезное расходование места в бд, нежелательный тип таблицы в бд (хотя тут уже не столь принципиально). ps: вот такое вот "дану" pps: вот прицепился то, да? я ж говорю, код в студию... предлагаю целсофту - дать пару процентов в репу автору ненужных постов ... Цитата Ссылка на сообщение Поделиться на других сайтах
veb74 10 Опубликовано: 30 апреля 2009 Рассказать Опубликовано: 30 апреля 2009 Стал работать ещё хуже. Теперь он тупо теряет пользователей, даже admin-a не показывает при обновлении. Определяет ай-пи, но браузеры у него все маззилы Цитата Ссылка на сообщение Поделиться на других сайтах
flo.mAster 7 Опубликовано: 30 апреля 2009 Рассказать Опубликовано: 30 апреля 2009 (изменено) Автор Стал работать ещё хуже. Теперь он тупо теряет пользователей, даже admin-a не показывает при обновлении. Определяет ай-пи, но браузеры у него все маззилы ммм... В каком смысле теряет пользователей? При каком обновлении не показывает админа? Спецам: $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 и скиньте сюда то, что там пишет. Изменено 30 апреля 2009 пользователем flo.mAster Цитата Ссылка на сообщение Поделиться на других сайтах
veb74 10 Опубликовано: 30 апреля 2009 Рассказать Опубликовано: 30 апреля 2009 В каком смысле теряет пользователей? При каком обновлении не показывает админа? то есть, то нету пользоватедля на сайте, сижу с 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]); куда это пихать, поскажи, щас сделаю Цитата Ссылка на сообщение Поделиться на других сайтах
flo.mAster 7 Опубликовано: 30 апреля 2009 Рассказать Опубликовано: 30 апреля 2009 Автор В каком смысле теряет пользователей? При каком обновлении не показывает админа? то есть, то нету пользоватедля на сайте, сижу с 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 и скиньте сюда то, что там пишет. Цитата Ссылка на сообщение Поделиться на других сайтах
veb74 10 Опубликовано: 30 апреля 2009 Рассказать Опубликовано: 30 апреля 2009 (изменено) 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 омнивеб Изменено 30 апреля 2009 пользователем veb74 Цитата Ссылка на сообщение Поделиться на других сайтах
flo.mAster 7 Опубликовано: 30 апреля 2009 Рассказать Опубликовано: 30 апреля 2009 Автор 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. Эти два пользователя и покажутся. Цитата Ссылка на сообщение Поделиться на других сайтах
veb74 10 Опубликовано: 30 апреля 2009 Рассказать Опубликовано: 30 апреля 2009 Один admin (админ) Второй Сокол (пользователь ) другой щапс на сайте сидит - нету его айпи один и что бы они не показались ? на подобных модулях работало ЗЫ смотри обновил ещё браузеров Цитата Ссылка на сообщение Поделиться на других сайтах
flo.mAster 7 Опубликовано: 30 апреля 2009 Рассказать Опубликовано: 30 апреля 2009 Автор veb74, информацию о браузере я беру из начала строчки ...и Цитата Ссылка на сообщение Поделиться на других сайтах
dedugan 0 Опубликовано: 30 апреля 2009 Рассказать Опубликовано: 30 апреля 2009 Поставил версию 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 Еще минусы. То, что не определены прокси, бог с ним, но вот не видно где пользователь, очень плохо! Кстати браузеры определяются нормально. Видно Мозилу, Оперу (IE не удалось посмотреть) поэтому не скажу. По кругу получается не так уж и мало запросов, если почти все включить, как это было у меня раньше Вывод. Получается хуже, изменения не большие. Проще только добавлять код (всего в одном файле). Вот примерно таков мой тест. Блоков подобных у меня было около 4... Цитата Ссылка на сообщение Поделиться на других сайтах
flo.mAster 7 Опубликовано: 30 апреля 2009 Рассказать Опубликовано: 30 апреля 2009 Автор Один 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 Еще минусы. То, что не определены прокси, бог с ним, но вот не видно где пользователь, очень плохо! Кстати браузеры определяются нормально. Видно Мозилу, Оперу (IE не удалось посмотреть) поэтому не скажу. По кругу получается не так уж и мало запросов, если почти все включить, как это было у меня раньше Вывод. Получается хуже, изменения не большие. Проще только добавлять код (всего в одном файле). Вот примерно таков мой тест. Блоков подобных у меня было около 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 Цитата Ссылка на сообщение Поделиться на других сайтах
Al-x 7 Опубликовано: 30 апреля 2009 Рассказать Опубликовано: 30 апреля 2009 я ж говорю, код в студию... я ж тоже говорю - вы хотите получить модуль и продвигать его под своим? Я только хотел указать вам на ошибки, которые вы сами должны исправлять... Ну вот к примеру: 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 копиях скрипта. Нареканий не было. Правда сейчас наверное имеет смысл уточнять его базу - выходили новые ОС и броузеры. Цитата Ссылка на сообщение Поделиться на других сайтах
flo.mAster 7 Опубликовано: 30 апреля 2009 Рассказать Опубликовано: 30 апреля 2009 (изменено) Автор я ж говорю, код в студию... я ж тоже говорю - вы хотите получить модуль и продвигать его под своим? Я только хотел указать вам на ошибки, которые вы сами должны исправлять... Ну вот к примеру: 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` Изменено 30 апреля 2009 пользователем flo.mAster Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.