|
|
|
| Доброго дня. Как ни странно, но меня отправили в форум. Хотя я следовал инструкциям, что указаны в конце страницы:
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)
| | 1. Warning: set_time_limit() - Это наш недосмотр, нужно просто поставить символ @ перед функцией set_time_limit() в файле archive.php. В следующей версии это будет исправлено. | |
|
|
|
|
|
|
|
для: Xenos
(21.09.2006 в 11:19)
| | 2. У вас MySQL какой версии и какая кодировка используется для названий страниц? | |
|
|
|
|
|
|
|
для: cheops
(21.09.2006 в 13:49)
| | Спасибо за оказанное внимание!
1. Ок, понял. Но чес гря меня эт не пугало... :)
2. БД - UTF8, сайт - win1251 | |
|
|
|
|
|
|
|
для: 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
|
| |
|
|
|
|
|
|
|
для: 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, '/ | |
|
|
|
|
|
|
|
для: Xenos
(22.09.2006 в 15:55)
| | В принципе... даже и с кирилицей могут быть проблемы, если это UTF8... именно поэтому по умолчанию испльзуется переменная $_SERVER['PHP_SELF'] вместо $_SERVER['REQUEST_URI']...
PS Для таких URL понадобиться всю архивирующую часть обновлять... мы выложим патч в эту тему в ближайшее время. | |
|
|
|
|
|
|
|
для: 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/
Уже первые два пункта бы облегчили возможность использовать данные собранные счётчиком, вне его собственной админки. Если это ещё документировать - сняло бы ряд тем в форуме. | |
|
|
|
|
|
|
|
для: tuder
(24.09.2006 в 18:22)
| | 1) Да
2) Не хотелось бы сейчас это делать, так как это может внести дополнительные ошибки (возможно чуть-чуть позже)
3) Такую систему лучше реализовывать самостоятельно, многим нужны все хосты и хиты, в том числе и собственные.
4) Про тайм-аут что-то не очень понятно... | |
|
|
|
|
|
|
|
для: cheops
(25.09.2006 в 11:31)
| | 1) И это радует. :-)
2) а в чём собственно могут быть ошибки? Подключается файл исключительно с переменными.
Никаких относительных путей, никаких дополнительных ссылок/включений.
3) так что мешает по дефолту держать это отключенным? Но ведь есть желающие имет такую возможность, почему бы не включить? Или такая проверка сильно затормозит работу счётчика?
при $ignore_ip="" ?
if (substr_count($ignore_ip, $ip)==0) {/* считаем такой заход */}
|
4) если какой-то пользователь с того же ип, тем же бровзером загружает ту же страницу, что и 5 секунд назад - не вносить эти данные в базу. И если 5 минут назад - не вносить. А если полчаса назад - то уже записать. Время - как раз настраивается.
Это уменьшит рост базы, и избавит от лишних хостов(?) | |
|
|
|
|
|
|
|
для: tuder
(26.09.2006 в 08:22)
| | 4) Не совсем это корректно для огромных предприятий, которые выходят в интернет через единый прокси-сервер. Лучше отображаться всё как есть на самом деле. | |
|
|
|
|
|
|
|
для: cheops
(26.09.2006 в 12:15)
| | Может быть. Но, опять же по дефолту таймаут - 0. Отключено. Ни на что не влияет. И включить может любой, кто не ждёт посетителей с таких предприятий. :-)
Кстати, вроде есть способ получить дополнительный ип-адрес, который за прокси? | |
|
|
|
|
|
|
|
для: tuder
(26.09.2006 в 13:16)
| | Если только прокси не отрезает его, в ранних версиях счётчик учитывал его, но потом из соображений производительности от этого пришлось отказаться. | |
|
|
|
|
|
|
|
для: cheops
(22.09.2006 в 20:35)
| | >PS Для таких URL понадобиться всю архивирующую часть обновлять... мы выложим патч в эту тему в ближайшее время.
Все окончилось само по себе. Теперь при обращении к админки mysql просто вешает вервер и все. Патча нет, будем удалять. | |
|
|
|