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

Форум PHP

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

 

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

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

тема: Powercounter 3: enterpoint_day You have an error
 
 автор: Xenos   (21.09.2006 в 11:19)   письмо автору
 
 

Доброго дня. Как ни странно, но меня отправили в форум. Хотя я следовал инструкциям, что указаны в конце страницы:

http://www.softtime.ru/info/powercounter30.php

Обратная связь
e-mail: softtime@softtime.ru


Ситуация: скрипт отработал чуть более суток с постоянно выдаваемым сообщением:
Warning: set_time_limit() has been disabled for security reasons in /var/www/cxid/cxid.info/_counter/admin/archive.php on line 11

Но я так понял, что это просто настройки моего РНР отличны от фабричных, и лимит чего-то, у меня, по умолчанию отключен.

После чего появилось сообщение, в админке:
enterpoint_day You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'т?тЈу?', 64),(NULL, '2006-09-20 23:59:' at line 12

И админка функционировать перестала вообще...

Подскажите, пожалуйста, что это и как это вылечить?

   
 
 автор: tuder   (21.09.2006 в 12:02)   письмо автору
 
   для: Xenos   (21.09.2006 в 11:19)
 

http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=22606&page=1

   
 
 автор: Xenos   (21.09.2006 в 13:32)   письмо автору
 
   для: tuder   (21.09.2006 в 12:02)
 

Я прошу прощения... но какое отношение имеет данная Вами ссылка к моей проблеме?

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

   
 
 автор: cheops   (21.09.2006 в 13:43)   письмо автору
 
   для: Xenos   (21.09.2006 в 11:19)
 

1. Warning: set_time_limit() - Это наш недосмотр, нужно просто поставить символ @ перед функцией set_time_limit() в файле archive.php. В следующей версии это будет исправлено.

   
 
 автор: cheops   (21.09.2006 в 13:49)   письмо автору
 
   для: Xenos   (21.09.2006 в 11:19)
 

2. У вас MySQL какой версии и какая кодировка используется для названий страниц?

   
 
 автор: Xenos   (21.09.2006 в 15:28)   письмо автору
 
   для: cheops   (21.09.2006 в 13:49)
 

Спасибо за оказанное внимание!

1. Ок, понял. Но чес гря меня эт не пугало... :)

2. БД - UTF8, сайт - win1251

   
 
 автор: cheops   (21.09.2006 в 19:05)   письмо автору
 
   для: Xenos   (21.09.2006 в 15:28)
 

2) У вас у таблиц по умолчанию стоит DEFAULT CHARACTER SET = UTF8? Скорее всего если происходит сбой придётся очистить таблицы счётчика и настроить кодировки соединения с базой данных, для этого в файл count.php и admin/config.php нужно будет добавить строку
<?php
  
@mysql_query("SET NAMES 'cp1251'");
?>

При этом таблицам счётчика лучше назначить кодировку cp1251, если сейчас стоит uft8, для этого можно воспользоваться запросом
ALTER TABLE имя_таблицы DEFAULT CHARACTER SET = cp1251

   
 
 автор: Xenos   (22.09.2006 в 15:55)   письмо автору
 
   для: cheops   (21.09.2006 в 19:05)
 

У таблиц новостей: да. А у таблиц счетчика: нет: 1251.

Я так понимаю, что сбой происходит, когда наши ссылки смотрят не из стран с кирилицей...

Часть того запроса, что пытается выполниться, и отпадает:

INSERT INTO system_arch_enterpoint VALUES(NULL, '2006-09-21 23:59:59' - INTERVAL 2 DAY, '/main.php', 311),(NULL, '2006-09-21 23:59:59' - INTERVAL 2 DAY, '/main.php?newsid=33548&newsgroup=%CF%EE%EB%E8%F2%E8%EA%E0#1', 198),(NULL, '2006-09-21 23:59:59' - INTERVAL 2 DAY, '/main.php?newsid=33580&newsgroup=%CF%EE%EB%E8%F2%E8%EA%E0', 190),(NULL, '2006-09-21 23:59:59' - INTERVAL 2 DAY, '/main.php?newsid=33586&newsgroup=т?у?т?тЈу?у?тЮу?у'т?тЈу?', 64),(NULL, '2006-09-21 23:59:59' - INTERVAL 2 DAY, '/main.php?newsid=33551&newsgroup=%D1%EA%E0%ED%E4%E0%EB', 59),(NULL, '2006-09-21 23:59:59' - INTERVAL 2 DAY, '/main.php?newsid=33586&newsgroup=Происшествия', 55),(NULL, '2006-09-21 23:59:59' - INTERVAL 2 DAY, '/main.php?newsid=33548&newsgroup=%CF%EE%EB%E8%F2%E8%EA%E0', 55),(NULL, '2006-09-21 23:59:59' - INTERVAL 2 DAY, '/main.php?newsid=33618&newsgroup=%D1%EF%EE%F0%F2', 33),(NULL, '2006-09-21 23:59:59' - INTERVAL 2 DAY, '/

   
 
 автор: cheops   (22.09.2006 в 20:35)   письмо автору
 
   для: Xenos   (22.09.2006 в 15:55)
 

В принципе... даже и с кирилицей могут быть проблемы, если это UTF8... именно поэтому по умолчанию испльзуется переменная $_SERVER['PHP_SELF'] вместо $_SERVER['REQUEST_URI']...

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

   
 
 автор: tuder   (24.09.2006 в 18:22)   письмо автору
 
   для: cheops   (22.09.2006 в 20:35)
 

>PS Для таких URL понадобиться всю архивирующую часть обновлять... мы выложим патч в эту тему в ближайшее время.

А можно всё же в патч включить небольшие изменения описанные на
http://www.files.byte.nsk.su/test/ ?

В частности:
1) выделить функции подсчёта хитов/хостов в отдельный файл.
2) изменить название файла /config.php на /admin/dbconfig.php
чтобы всё-таки различать файлы общей конфигурации и конфигурации баз данных не только по их месторасположению.
Соотвестственно внести изменения в /admin/config.php и /count.php

Думаю, тем, кому понадобится использовать только сам счётчик count.php не составит особого труда создать папку admin, для размещения там конфига баз dbconfig.php, либо положить его рядом со счётчиком поправив в count.php путь до этого конфига.

3) Вставить игнорирование собственных ip:
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=19624&page=1
В конец config.php добавляем


// Список ип-адресов игнорируемых счётчиком 
  $ignore_ip="127.0.0.1;127.0.0.2"; 


а в count.php


// ограничение на наши ip адреса  
if (substr_count($ignore_ip, $ip)==0) {/* считаем такой заход */}  
/* дальше код счетчика  
    в самом конце закрываем действие */  



4) ввести тайм-аут, для уменьшения количества повторных занесений в базу.
http://files.byte.nsk.su/test/

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

   
 
 автор: cheops   (25.09.2006 в 11:31)   письмо автору
 
   для: tuder   (24.09.2006 в 18:22)
 

1) Да
2) Не хотелось бы сейчас это делать, так как это может внести дополнительные ошибки (возможно чуть-чуть позже)
3) Такую систему лучше реализовывать самостоятельно, многим нужны все хосты и хиты, в том числе и собственные.
4) Про тайм-аут что-то не очень понятно...

   
 
 автор: tuder   (26.09.2006 в 08:22)   письмо автору
 
   для: cheops   (25.09.2006 в 11:31)
 

1) И это радует. :-)
2) а в чём собственно могут быть ошибки? Подключается файл исключительно с переменными.
Никаких относительных путей, никаких дополнительных ссылок/включений.
3) так что мешает по дефолту держать это отключенным? Но ведь есть желающие имет такую возможность, почему бы не включить? Или такая проверка сильно затормозит работу счётчика?
при $ignore_ip="" ?

if (substr_count($ignore_ip, $ip)==0) {/* считаем такой заход */}


4) если какой-то пользователь с того же ип, тем же бровзером загружает ту же страницу, что и 5 секунд назад - не вносить эти данные в базу. И если 5 минут назад - не вносить. А если полчаса назад - то уже записать. Время - как раз настраивается.

Это уменьшит рост базы, и избавит от лишних хостов(?)

   
 
 автор: cheops   (26.09.2006 в 12:15)   письмо автору
 
   для: tuder   (26.09.2006 в 08:22)
 

4) Не совсем это корректно для огромных предприятий, которые выходят в интернет через единый прокси-сервер. Лучше отображаться всё как есть на самом деле.

   
 
 автор: tuder   (26.09.2006 в 13:16)   письмо автору
 
   для: cheops   (26.09.2006 в 12:15)
 

Может быть. Но, опять же по дефолту таймаут - 0. Отключено. Ни на что не влияет. И включить может любой, кто не ждёт посетителей с таких предприятий. :-)

Кстати, вроде есть способ получить дополнительный ип-адрес, который за прокси?

   
 
 автор: cheops   (26.09.2006 в 17:27)   письмо автору
 
   для: tuder   (26.09.2006 в 13:16)
 

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

   
 
 автор: Xenos   (13.11.2006 в 12:25)   письмо автору
 
   для: cheops   (22.09.2006 в 20:35)
 

>PS Для таких URL понадобиться всю архивирующую часть обновлять... мы выложим патч в эту тему в ближайшее время.

Все окончилось само по себе. Теперь при обращении к админки mysql просто вешает вервер и все. Патча нет, будем удалять.

   
Rambler's Top100
вверх

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