Система статистики «Spesta 2.10 a+b»
Недавно я узнал, что существует клон это системы — Spesta 2, который написали в Analog Group. Приятно, что код написан с форматированием и почти не генерирует warnings и notices, но общее ощущение — что авторы двигались в правильном направлении, но заплутали по дороге.
Я было думал выпустить серию патчей, как это было со «Спестой», но патчей оказалось слишком много. В общем, выложил пропатченную версию у себя. Кому надо — забирайте. Оригинальная версия была 2.00a, эта называется 2.10a+b, потому что на «бету» она не тянет, а пачти обозначить
Итак, изменения, всё что успел увидеть и поправить за час работы:
- нарисован favicon и дорисован логотип
- выкинута реализация функции in_array (авторы плохо знают язык?)
- работа с файлами заменена на более безопасную — с flock и append. Там где можно, используются file_get_contents и file_put_contents (это означает, что раньше эта система «теряла» часть данных)
- патч для более точного подсчёта уников (с использованием данных браузера)
- вычищены .htaccess от лишнего мусора
- поправлены регулярные выражения в коде
- переписан странный поиск с stristr
- на странице хитов теперь выводятся тИЦ и Page Rank
- сделан парольный вход, задаётся в конфиге (по умолчанию, логин — admin, пароль — test)
- для совместимости со «Спестой» сделан файл click.php
- исправлены ситуации, в которых генерировались notices и warnings (в основном — на пустых данных)
- исправлена ошибка в работе с файлом sites.txt
- ряд мелких улучшений кода, которые лень описывать
Важно: данные «Спесты» и «Спесты 2» между собой несовместимы, т. е. вы потеряете предыдущую статистику при замене одной версии на другую. Второе важное замечание — в «Спесте 2» нет статистики по кликам на ссылки и IP-адресам (лично мне она не нужна, так что вставлять в код я её не буду).
Инструкция по установке: распаковываете в нужную папку «Спесту 2», скрипт должен иметь возможность писать в папки data и reports. Если у вас была оригинальная «Спеста», удалите её, поверх ставить нельзя. Далее, вы должны подключить «Спесту» на каждой странице вашего сайта. Для PHP это будет выглядеть так: <?include 'каталог со спестой/counter.php'?>;
для HTML страниц можно попробовать сделать следующее: <!--#include virtual='/каталог со спестой/counter.php' -->
Ссылка для невнимательных, скачать можно отсюда:
Комментарии 92
Warning: touch() [function.touch]: Utime failed: Operation not permitted in /home/skurudo/skurudo.ru/www/stat/includes/index.inc.php on line 124
Подскажи, пожалуйста, как лечить?
http://www.prchecker.info/pagerank-check-button.php — можно на
Можно качать новую версию — баг с PR поправил (находится на том же месте, файл называется так же).
drwxrwxrwx 2 skurudo users 512 Mar 20 15:05 data
drwxrwxrwx 2 skurudo users 512 Mar 20 15:32 reports
Уже стоят
http://www.analog-group.ru/projects/spesta2.html
А на файлы, которые внутри?
drwxrwxrwx 5 skurudo users 512 Mar 20 15:21 ..
-rwxrwxrwx 1 skurudo users 82 Mar 20 14:43 .htaccess
-rwxrwxrwx 1 skurudo users 1526 Mar 20 16:06 agents.txt
-rwxrwxrwx 1 wwwserver users 25 Mar 20 16:06 count.txt
-rwxrwxrwx 1 wwwserver users 224 Mar 20 16:06 ip.txt
-rwxrwxrwx 1 skurudo users 308 Mar 20 15:42 referers.txt
-rwxrwxrwx 1 skurudo users 4466 Mar 20 16:06 requests.txt
-rwxrwxrwx 1 wwwserver users 262 Mar 20 15:30 se.txt
-rwxrwxrwx 1 wwwserver users 262 Mar 20 15:30 se10.txt
-rwxrwxrwx 1 skurudo users 0 Mar 20 14:43 spiders.txt
-rwxrwxrwx 1 skurudo users 91 Mar 20 15:30 words.txt
Тоже нормал вроде бы.
Но вот статистики по «кликам» очень нехватает.
Буду очень признателен, если Вы ее
болтикова в Поисковых словах… не понимает utf8? Или это персонально у меня такое?
Гм, так проблема с правами ушла или нет? Если нет, то попробуй вписать туда var_dump($fstat); после touch и посмотри в какой файл оно пытается писать.
А с unicode там смешно — оно его только для google делает, для остальных — нет. Надо доделать, я думаю. А это какой поисковик?
Архив поломатый.
Сейчас попробовал воткнуть туда обнаружение кодировки. Кстати, у вас модули iconv или multibyte string есть? Я выкинул оттуда «ручное» преобразование, понадеявшись, что эти модули есть у всех.
Статистика по кликам нужна в двух случаях:
1. Если рекламу на ресурсе продали, и нужно отследить эффективность.
2. Чтобы посмотреть, с каких страниц народ активно уходит по ссылкам.
Вот пример: http://flogiston.ru/stat/?report=l
Для меня эта статистика полезна, т.к. я знаю, где людям не хватает контента, и они с сайта уходят.
Будешь смеяться, но ошибка была только с теми отчетами, которые от моего имени создались. Там выше есть список. А отчеты собственно: referers.txt, requests.txt, spiders.txt, words.txt. Удалил в пень. Оно создало заново уже от себя, в смысле от имении wwwserver'a.
Понятно. Возможно сделаю в скором времени, ничего не обещаю.
Ну и бог с ними :) Я из архива эти файлы вообще убрал :)
Можно на «ты». Скуруда не нежный.
Error where found in ZIP file
Да, только что перезалил. Не понимаю что случилось с архивом, можно качать.
Мне тут пришла мысль на тему маркировки
Гм,
Ещё раз скачай, сейчас всё ок. Если качаешь «Оперой», то зайди в закачки и выбери «скачать ещё раз» («restart transfer»). Оно кеширует, похоже.
Спасибо.
Ага. Пашет.
Спасибо.
Notice: Undefined variable: this in /stat/index.php on line 76
Способ установки я написал в своём посте.
Гм. А это
«Способ установки я написал в своём посте.»
ты про это?
«Инструкция по установке: полностью удаляете „Спесту“, ставите в ту же папку „Спесту 2“, скрипт должен иметь возможность писать в папки data и reports.»
А как быть, если спесты раньше не было?
Щас допишу. Файл можно скачать заново — надеюсь, я правильно догадался что происходит в том куске кода, файл поправил.
Ошибка исчезла, но ссылки он
Там формат файла, если не помнишь:
Название1|Урля1
Название2|Урля2
Название3|Урля3
А он генерит:
Название1|Урля1 | Название2|Урля2 | Название3|Урля3
Т.е. забывает про разделитель.
Инструкцию дописал.
Я не то что не помню, я этого не знаю, никогда этим не пользовался :) А эта фиговина, похоже, имеет свой формат. Впрочем, я уже поправил — сделал поддержку обоих форматов, можно качать заново.
$name ($site$link) — вот эта штука никогда не срабатывает
Как нет? Только что вписал:
Bolknote|bolknote.ru
Другой сайт|bolk.exler.ru
Сработало.
у меня не срабатывает проверка на strtolower($site) == $current_site
т.е. у меня там всегда false
давайте в аську, утомительно. 2993333
странная фигня. на локальном компе пашет, на серваке не пускает в админку.
в чем может быть прикол?
просто не пускает, как при неправильном вводе пароля.
PHP установлен как модуль? Или как CGI?
как CGI.
проверил на другом хосте, где стоит как модуль — то же самое.
Попробуйте выкачать ещё раз, я сделал небольшие правки на случай, если у вас PHP в режиме CGI.
4ert, russkij otvalilsja v windows.
poprobujte posmotret' 4to u vas v $_SERVER. V file 'auth.inc.php' dobav'te persuju stroku:
echo ''; var_dump($_SERVER);
potom posmotrite, est' li u vas tam peremennyi PHP_AUTH_USER i PHP_AUTH_USER. elsi net — posmotrite chto est'. Esli 4to — zavtra v as'ke mozhno otladit'.
большое спасибо. заработало!
Комментарий для alick.ru:
http://php.net/setlocale в помощь
Извиняюсь, последний комментарий не читайте, не проснулся ещё
Угу, баг исправили и он был совсем не в том.
Доброго вам утречка
Это только у меня такое?
Так что всё должно работать.
пример
img src= http://site.ru/stats/counter.php
Работать работает, но с некоторыми ошибками (в частности неправильно показываются страницы)
У меня ощущение, что вот этот способ
не вполне работает.
У меня раньше на одном из сайтов SpeSta ставилась через вот такой код:
<script language="javascript">
r="«+Math.random()+»&ref="+escape(document.referrer)+"&pg="+
escape(window.location.href);
document.write(«<img src=' http://psyberlink.flogiston.ru/stat/counte … ?id=%22%2B
r+»' border=0 width=1 height=1 alt=SpeSta>")</script>
Можно ли вызывать систему статистики
сорри, не знал, что
Не вполне — это как? Что конктретно не работает?
Как это не работает? Работает «<» и «
А ведь столько лет прослужила
Есть. Но мне пока не до «Спесты».
1) не увидел ничего внизу
2) по поводу других способов не знаю, посмотрите на сайте первых разработчиков Spesta2.
Статистики кликов в «Спесте2» не было никогда.
1) Внизу выдаёццо: «IP: 89.207.222.46 (091f412984b82451808b7d64aef2eb06)
Host: eduabroad.ru
Agent: Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9.0.4) Gecko/2008111317 Ubuntu/8.04 (hardy) Firefox/3.0.4
Request: /
Referer: bolknote.ru/2008/03/20/~1631»
2) Понял.
Статистика кликов в старой спесте:
http://eduabroad.ru/stat/?report=l%26l=demo%26p=demo
Гм… ничего не понимаю. Никогда такого не видел. А место в коде, где это происходит, вы не нашли?
Будет время, попробую поковырять.
Никак :) Куда вы его записали?
Не пронятно, ага.
# База своих
$cfg['stat']['ip'] = array();
$cfg['stat']['ip'][] = «127.0.0.1»;
$cfg['stat']['ip'][] = «мой айпи»;
И вот поэтому оно мне все это и показывает. Вам ведь этого не видно? Или Вам тоже видно?
Мне этого не видно.
А, ну может быть, видимо это фича :)
и что самое обидное, на локалхосте работает так же, а на сервере уже где то в 10 раз медленнее. например 0.007 спеста а у меня 0.07. причем если спеста стабильно, то у меня может и 0.5 вылезти…
Всё
Если MySQL, то тут: http://www.mysqlperformanceblog.com/
Спасибо!