Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: PowerCounter 3.0.2
 
 автор: cheops   (15.01.2006 в 01:44)   письмо автору
 
 

Выложена новая версия, в которой исправлены ошибки, обнаруженные в предыдущей версии http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=11508, продолжаем обуждение в этой теме. Общий тон, что уменьшилась функциональность, но это связано с усложнением движка, и планируется её вернуть на преждний уровень в версиях 3.x.

   
 
 автор: Sasha   (15.01.2006 в 10:52)   письмо автору
 
   для: cheops   (15.01.2006 в 01:44)
 

а для перехода с 3.0.1 на 3.0.2 нужно менять таблицы SQL ?

   
 
 автор: cheops   (15.01.2006 в 13:37)   письмо автору
 
   для: Sasha   (15.01.2006 в 10:52)
 

Нет, в версиях 3.0.x это не понадобится, если потребуется смена базы данных версия будет увеличина до 3.1.x и об этом будет сказано явно.

   
 
 автор: Loki   (15.01.2006 в 11:30)   письмо автору
 
   для: cheops   (15.01.2006 в 01:44)
 

12. Отчет время сеанса вы строите на основании данных которые удаляете при архивации.
Имеется ввиду, что отчет сторится на основании таблицы system_ip, которая очищается при выгрузке данных.

Из политических вопросов: предлагаю убрать поле searches из system_ip и добавить поле title в system_pages (можно его пока не задействовать). В этом случае, у нас не будет проблем с базами данных и можно будет проще договариваться о коде.

Кстати, у меня появилась идея еще одного отчета:) Но это после отладки третьей версии.

   
 
 автор: cheops   (15.01.2006 в 13:48)   письмо автору
 
   для: Loki   (15.01.2006 в 11:30)
 

12 Да, это так, для времени сеанса заведены временные таблицы time - где данные архивируются по минууам до 10 минут, по 10 минут до часу и по часу до 24 часов - их просто со временем нужно будет сложить для получения времени сеанса для более длительного переиода, чем текущие сутки. Т.е. сделаем по аналогии с хитами, браузерами и операционными системами.

Хорошо займусь searches в system_ip, с title у меня вот какие предубеждение - а зачем на вводить ещё одно поле, если у нас имеется поле name для URL? Там где имеется title - мы просто помещаем название страницы, где нет - URL. Или вы хотите, чтобы URL тоже всегда оставался на тот случай если потребуется точный переход? Для меня любой вариант приемлем, только хотелось бы взглянуть на механизм генерации новой страницы в count.php
<?php
$pgs 
mysql_query("SELECT id_page FROM $tbl_pages WHERE name='".$_SERVER['PHP_SELF']."'");
      if (
$pgs)
      {
        
// Выясним, первичный ключ (id_page) текущей страницы
        
if(mysql_num_rows($pgs)>0$id_page mysql_result($pgs,0);
        
// Если данная страница отсутствует в таблице pages
        // и не разу не учитывалась - добавляем данную страницу в таблицу.
        
else
        {
          
$query "INSERT INTO $tbl_pages VALUES (0, '".$_SERVER['PHP_SELF']."', 0)";
          
mysql_query($query);
          
// Выясняем первичный ключ только что добавленной
          // страницы
          
$id_page mysql_insert_id();
        }
      }
?>

И наверное в связи с этим придётся перейти с PHP_SELF на REQUEST_URI - т.е. по умолчанию сделать полный адрес страницы.

   
 
 автор: Loki   (15.01.2006 в 21:50)   письмо автору
 
   для: cheops   (15.01.2006 в 13:48)
 

>с title у меня вот какие предубеждение - а зачем на вводить ещё одно поле, если у нас имеется поле name для URL?
Такой вопрос вставал у меня сначала, но потом решил сделать так как есть по следующим причинам:
В процессе раскрутки сайта название страницы может неоднократно меняться, поэтому нужна какая-то привязка (адрес страницы). Можно, конечно, передавать некое условное имя, но при этом мы недалеко уходим от адреса. Так что я предпочитаю передавать счетчику имя страницы.
И второй момент. Часто удобно присвоить группе страниц одно имя. Например, в даном форуме около 11 тысяч страниц. Вести статистику по кажной, наверное, нецелесообразно, так что удобнее присвоить всем страницам форума одно название и учитывать его в целом.
Если есть возражения, то готов их выслушать...
Вот как блок проверки выглядит у меня сейчас:

<?
     $query 
"SELECT id_page FROM pages WHERE title='$titlepage'"
     
$pgs mysql_query($query);
     if (
$pgs)
      
// Выясним, первичный ключ (id_page) текущей страницы  (по названию страницы)
       
if(mysql_num_rows($pgs)>0$id_page mysql_result($pgs,0);
        
// Если название данной страницы отсутствует в таблице pages
        // то проверяем сраницу по ее адресу.
       
else
        {  
         
$query "SELECT id_page FROM pages WHERE name='".$_SERVER['REQUEST_URI']."'";
         
$pgs mysql_query($query);
          if (
$pgs)
            
// Выясним, первичный ключ (id_page) текущей страницы (по адресу страницы)
            
if(mysql_num_rows($pgs)>0)
            {
             
$id_page mysql_result($pgs,0); 
             
$query "UPDATE pages SET 'title'='$titlepage' WHERE id_page=$id_page"
             
mysql_query($query);
            }
        
// Если данная страница отсутствует в таблице pages
        // и не разу не учитывалась - добавляем данную страницу в таблицу.
            
else
            {  
          
$query "INSERT INTO pages VALUES (0, '".$_SERVER['REQUEST_URI']."','$titlepage', 0)";                
          
mysql_query($query);
          
// Выясняем первичный ключ только что добавленной
          // страницы
          
$id_page mysql_insert_id();
            }
        }
?>

   
 
 автор: cheops   (16.01.2006 в 03:09)   письмо автору
 
   для: Loki   (15.01.2006 в 21:50)
 

Хм... завтра попытаюсь это прикрутить к счётчику на softtime.ru. Вообще говоря наверное такой подход оправдан - он позволит безболезненно перейти к новой системе, так как всегда можно будет откатится на старую версию.

   
 
 автор: kievigor   (15.01.2006 в 18:03)   письмо автору
 
   для: cheops   (15.01.2006 в 01:44)
 

Захотел заменить $_SERVER['PHP_SELF'] на $_SERVER['REQUEST_URI'],
чтобы отображалась статистика по каждому запросу в отдельности,
у вас в пояснении написано, цитата – (можно просто открыть каждый файл
в блокноте и воспользоваться функцией автозамены.)
Я нашел упоминание о $_SERVER['PHP_SELF'] только в одном файле (count.php).
Достаточно ли внести изменения только в один этот файл,
или нужно еще изменять что то и в других файлах.

   
 
 автор: cheops   (15.01.2006 в 20:30)   письмо автору
 
   для: kievigor   (15.01.2006 в 18:03)
 

Дело в том, что в системе администрирования это переменная не нужна, так как адрес страницы определяется при учёте её при помщи скрипта count.php, а далее страница уже извлекается из базы данных. Просто исправьте count.php - дополнительных изменений не требуется - описание мы поправим к следующему релизу, чтобы оно не смущало пользователей.

   
 
 автор: Sasha   (16.01.2006 в 20:46)   письмо автору
 
   для: cheops   (15.01.2006 в 20:30)
 

А рефереры не определяются?
У меня пусто.... :(

   
 
 автор: Akira   (16.01.2006 в 21:31)   письмо автору
 
   для: Sasha   (16.01.2006 в 20:46)
 

Процентные баги

   
 
 автор: cheops   (17.01.2006 в 02:52)   письмо автору
 
   для: Akira   (16.01.2006 в 21:31)
 

Да, есть такое дело, будем разбираться с этим после версии 3.1, когда будут добавлены Firefox, Mozilla и MyIE.

   
 
 автор: cheops   (17.01.2006 в 02:51)   письмо автору
 
   для: Sasha   (16.01.2006 в 20:46)
 

>А рефереры не определяются?
>У меня пусто.... :(
Так не должно быть, у меня, например, работают корректно - опишите, если не сложно, как это контролируете?

   
 
 автор: Sasha   (17.01.2006 в 03:05)   письмо автору
 
   для: cheops   (17.01.2006 в 02:51)
 

Просто в Ссылках абсолютно пусто.....даже после переходов на сайт откуда-то.

   
 
 автор: cheops   (17.01.2006 в 13:41)   письмо автору
 
   для: Sasha   (17.01.2006 в 03:05)
 

Посмотрите добавляется ли что-нибудь в таблицу system_referer?

   
 
 автор: Sasha   (17.01.2006 в 17:05)   письмо автору
 
   для: cheops   (17.01.2006 в 13:41)
 

Да добавляются...

Тут моя ошибка, меня сбило слово реферер....я думал будут выводиться все рефереры, а они выводятся если только добавлены в базу :(

Извините за шум.

Жалко, что не работают страницы просмотренные с IP

   
 
 автор: Loki   (17.01.2006 в 17:21)   письмо автору
 
   для: Sasha   (17.01.2006 в 17:05)
 

если убрать удаление данных при архивации, то вроде как должно работать.

   
 
 автор: cheops   (17.01.2006 в 17:48)   письмо автору
 
   для: Loki   (17.01.2006 в 17:21)
 

Причём я пробежался по коду - вроде даже не должны нарушаться отчёты... т.е. вполне можно будет создать буффер скажем в месяц, для этого в файле archive.php следует исправить блок
<?php
  
if(mysql_num_rows($arh) > 0)
  {
    
$last_date_arch mysql_result($arh,0);
    
$arr[] = "DELETE FROM $tbl_ip WHERE putdate <= '$last_date_arch'";
    
$arr[] = "DELETE FROM $tbl_refferer WHERE putdate <= '$last_date_arch'";
    
$arr[] = "DELETE FROM $tbl_searchquerys WHERE putdate <= '$last_date_arch'";
    foreach(
$arr as $query) if(!mysql_query($query)) exit(mysql_error());
  }
?>

на
<?php
  
if(mysql_num_rows($arh) > 0)
  {
    
$last_date_arch mysql_result($arh,0);
    
$arr[] = "DELETE FROM $tbl_ip WHERE putdate <= '$last_date_arch' - INTERVAL 1 MONTH";
    
$arr[] = "DELETE FROM $tbl_refferer WHERE putdate <= '$last_date_arch' - INTERVAL 1 MONTH";
    
$arr[] = "DELETE FROM $tbl_searchquerys WHERE putdate <= '$last_date_arch' - INTERVAL 1 MONTH";
    foreach(
$arr as $query) if(!mysql_query($query)) exit(mysql_error());
  }
?>

Нужны только добровольцы для того, чтобы испытать это.

   
 
 автор: Loki   (17.01.2006 в 20:18)   письмо автору
 
   для: cheops   (17.01.2006 в 17:48)
 

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

   
 
 автор: Коляка   (16.01.2006 в 22:39)   письмо автору
 
   для: cheops   (15.01.2006 в 20:30)
 

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

 

admin/main.php was not found on this server.


Посмотрел а нет этого файла main.php

   
 
 автор: cheops   (17.01.2006 в 02:49)   письмо автору
 
   для: Коляка   (16.01.2006 в 22:39)
 

Этот файл переименован в hits.php - в следующей версии ссылка будет исправлена.

   
 
 автор: kievigor   (17.01.2006 в 01:37)   письмо автору
 
   для: cheops   (15.01.2006 в 01:44)
 

Главная страница счетчика.
Статистика посещений по страницам сайта.
После смены дня (после полуночи) перестали отображаться
Адреса посещаемых страниц, хотя ссылки на страницы со списком
посещенных страниц остались(строка разбивки на страницы).
У меня установлен $_SERVER['REQUEST_URI']
в (count.php), может в этом проблема.
В (Точки входа) при этом все адреса присутствуют
Если задумано, что эта статистика будет только за текущие сутки,
то надо убрать строку со ссылками на страницы где были
расположены адреса.

   
 
 автор: cheops   (17.01.2006 в 03:00)   письмо автору
 
   для: kievigor   (17.01.2006 в 01:37)
 

Это будет исправлено, но позже... в принципе если критично можно увеличить интервал в системе удаления, но это повлечёт искажение информации в остальных отчётах.

PS Loki уже заявил ноту по поводу суточной архивации... будем решать этот вопрос в ближайшие релизы...

   
 
 автор: cheops   (17.01.2006 в 17:44)   письмо автору
 
   для: cheops   (15.01.2006 в 01:44)
 

Сегодня после полуночи, после теста суточной архивации, в разделе downloads будет выложена новая версия 3.1.0, определяющая браузеры FireFox, MyIE, Mozilla и с расширенной таблицей system_pages, содержащей поле title для названия страниц (вопрочем это пока не будет использоваться). Переход с версии 3.0.x потребует выполнения нескольких SQL-запросов из файла update.sql.

   
 
 автор: 27   (17.01.2006 в 18:26)   письмо автору
 
   для: cheops   (17.01.2006 в 17:44)
 

Ждём =)

   
 
 автор: Sasha   (17.01.2006 в 18:42)   письмо автору
 
   для: 27   (17.01.2006 в 18:26)
 

Сheops.

Приведённые вами выше изменения кода там уже будут?

Те, куда требовались испытатели :)

   
 
 автор: cheops   (17.01.2006 в 22:45)   письмо автору
 
   для: Sasha   (17.01.2006 в 18:42)
 

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

   
 
 автор: Loki   (18.01.2006 в 00:44)   письмо автору
 
   для: cheops   (17.01.2006 в 22:45)
 

Просмотрел блок архивации. Что не понравилось: сначала выцепляем все данные, а потом их вносим в архив... Получается, что если у нас большой объем данных и set_time_limit не работает, то счетчик просто перестает работать: выгрузить данные мы не можем, а при попытке войти в админку у нас запускается архивация.

Хиты и засчитанные хиты выбираются одинаковым запросом. То есть они ихначально были кандидатами под сокращение:)

Короче, хотелось бы рабочую архивацию, которую уже можно использовать (поправить mail.ru). То есть я бы начал с ее проверки, а остальное - напишем:)

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования