Пишу, по большей части, про историю, свою жизнь и немного про программирование.

«Спеста» — винтажная система статистики, часть II.

Ещё несколько советов по работе со «Спестой», предыдущая пачка — в первой части статьи.

Совет пять. Судя по коду, «Спеста» иногда способна пропустить какую-то часть хитов (кстати, у «Spesta 2» тот же недостаток). Для слабопосещаемого сайта это не слишком важно, для сильнонагруженных станет серьёзной проблемой. Для того, чтобы поправить ситуацию, открываем файл counter.php, ищем строки, содержащие «SP_fr ($COUNT_FILE)» и «SP_fw ($COUNT_FILE, $content)». Заменяем их на следующие куски кода (первую найденную строку — на первый, вторую — на второй):

$fp = fopen($COUNT_FILE, 'a+');
flock($fp, LOCK_EX);
fseek($fp, 0);
$conts = fread($fp, filesize($COUNT_FILE));
ftruncate($fp, 0);
fseek($fp, 0);
fwrite($fp, $content);
fclose($fp);

Совет номер шесть. Открываем все PHP-файлы последовательно и в каждый, в начало PHP-кода ставим нижеприведённый кусок. Файл mailto.php удаляем.

$s_addurl = "";
9 комментариев
yakovis.com 2007

А не проще ли выложить собственный дистрибутив? :) Чем вот такие правки по одной публиковать?

Евгений Степанищев (bolknote.ru) 2007

Его ж поддерживать надо, отвечать на письма читателей и т. д. Да и за отправную точку лучше взять Spesta 2.

not-available.livejournal.com 2007

Проверка?

Евгений Степанищев (bolknote.ru) 2007

Комментарий для not-available.livejournal.com:

Мусоришь мне комменты, даже удалять не буду, чтобы все знали, что я порицаю!

isk.livejournal.com 2007

совет 5.1
после выполнения совета 5 вдумчиво читаем http://spectator.ru/technology/php/flock_workaround

Евгений Степанищев (bolknote.ru) 2007

Комментарий для isk.livejournal.com:

Искандер, что тут читать? Думаешь, я знаю о flock меньше? Дима просто не умел тогда обращаться с flock. Что же до неработы flock на «NFS and many other networked file systems», FAT и возможно некорректной работы под multithread ISAPI, то меня это мало волнует — много ты видел блогов, установленных с такими условиями?

И даже в этом случае (если не удасться сделать flock), данные потеряются точно так же как при последовательном чтении/записи в немодифицированной «Спесте».

skurudo.livejournal.com 2008

Комментарий для Евгения Степанищева:

А можно рекомендации конкретно по Spesta2? Дело в том, что далеко не везде включен register_globals ;-(

Евгений Степанищев (bolknote.ru) 2008

Комментарий для skurudo.livejournal.com:

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

Евгений Степанищев (bolknote.ru) 2008

Комментарий для skurudo.livejournal.com:

Как же она неаккуратно написана. Автор двигался в правильном направлении, но как-то… недотянул. Всё-таки я переоценил своё желание делать хоть что-то на праздники. Возможно, смотреть буду после 9-10-го.

А может и завтра посмотрю. Править по-крупному не буду, только те же правки, что и в original Spesta.