We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 1967
    • 8 Posts
    Apache 2.2

    PHP Version 5.2.6

    MySql 5.1.26-rc-community

    Проблема с русской кодировкой, прочитал какие методы есть но ни как не могу разрешить проблему с

    "Error while inserting event log into database."

    пробовал все возможные способы при создании БД из PhpMyAdmin - 2.11.2 (кодировку)

    потом соответствено и при устоновке менял.

    В итоге ничего.
    Как избавиться о этого
    я сделал
    Ошибка записи события возникает, когда в поле названия источника события система пытается записать большой текст. В поле источника (source) следует записывать имя части MODx, сниппета, модуля или плагина, отправившего сообщение, но при проверке конфигурации вместо этого в поле пишется достаточно длинная фраза о возникшей проблеме. Ошибка проявляется не у всех, так как если замечаний при проверке конфигурации нет, сообщения не генерируются.
    Решение проблемы:
    В папке manager/includes найти файл config_check.inc.php
    Найти в нем четыре вызова функции logEvent:
    Code:
    $modx->logEvent(0,2,$warnings[$i][1],$_lang[’configcheck_configinc’]);
    $modx->logEvent(0,2,$warnings[$i][1],$_lang[’configcheck_installer’]);
    $modx->logEvent(0,2,$warnings[$i][1],$_lang[’configcheck_cache’]);
    $modx->logEvent(0,2,$warnings[$i][1],$_lang[’configcheck_images’]);
    КАЖДЫЙ вызов заменить на
    Code:
    $modx->logEvent(0,2,$warnings[$i][1],’Config Check’);
    То есть сделать все вызовы одинаковыми. Если есть желание, можно сделать их разными, например ’Config Check inclide’ и ’Config Check installer’.
    Теперь все должно работать. Если опять появятся сообщения об ошибке записи события, следует искать, какой сниппет, плагин или модуль неверно обращается к функции logEvent

    Но после этого безопасность под угрозой прочитал так же на форуме что делать?
    и что мы делаем когда так меняем
      • 785
      • 2,113 Posts
      1. Если хотите, чтобы кто-то понял этот поток сознания, выучите немного русский язык. В нем, например, существенную роль играют знаки препинания. Ясное и последовательное изложение проблем также очень помогло бы.
      2. Какая безопасность под угрозой? Где такой бред говорится? В функции исправлена явная ошибка, никаких проблем с этим не возникает.
      3. Зачем создавать новую тему и помещать в ней большую цитату? Лучше добавить сообщение в той теме, откуда взята информация.
        Создание сайтов на MODx, поддержка сайтов, поисковая оптимизация, программирование, копирайтинг
        Статьи о MODx, регулярно новые публикации
        • 1967
        • 8 Posts
        Сорри, поздно было, когда создавал новый пост.
        Буду стараться лучше изъяснять свои мысли.
        Я вчера весь день пытался исправить этот момент (Error while inserting event log into database) и честно сказать не помню где именно я нашел пост, в котором говорилось о возникновении угрозы безопасности. (((

        Я только начинаю изучать MODx, и я хочу знать, что именно я меняю когда
        $modx->logEvent(0,2,$warnings[$i][1],$_lang['configcheck_configinc']);

        заменяю на
        $modx->logEvent(0,2,$warnings[$i][1],'Config Check');


        Я хочу знать все то, что происходит внутри MODx. smiley
          • 1967
          • 8 Posts
          и еще такой момент :
          Почему на некторых есть машинаъ такой глюк на некоторых нет.
          Я ставил MODx на др. машину и там этого момента нет. архив тот же самый.
            • 785
            • 2,113 Posts
            Вместо длинной строки:
            Файл конфигурации все еще доступен для записи, установите атрибут "Только для чтения".
            В функцию, которая записывает сообщение об ошибке в базу, передается короткая:
            Config Check
            И это правильно, так как четвертый параметр функции logEvent предполагает название фрагмента, вызвавшего проблему, а описание этой проблемы помещается в третий параметр. Ошибка возникала как раз из-за того, что описание помещалось в поле, слишком короткое для него.
            А если хотите понимать, что и как исправляете, то просто посмотрите код функций.

            Quote from: ar4i at Aug 08, 2008, 02:14 AM

            Я ставил MODx на др. машину и там этого момента нет. архив тот же самый.
            Значит на той машине нет такой проблемы с конфигурацией (файл доступен для записи), следовательно не требуется записывать сообщение в журнал.


              Создание сайтов на MODx, поддержка сайтов, поисковая оптимизация, программирование, копирайтинг
              Статьи о MODx, регулярно новые публикации
              • 1967
              • 8 Posts
              Теперь такая проблема.
              При установки поставил галочку что бы установить стандартный шаблон сайта.
              Сделал соответствующие замены в config_check.inc.php. в админке все ок.
              Но сам сайт пишет Error while inserting event log into database. :’(
                • 785
                • 2,113 Posts
                Для начала можно попробовать очистить кэш. Но в действительности если возникают проблемы в сниппетах и включен режим отображения предупреждений PHP, то системные сообщения PHP также пытаются записываться в поле названия проблемы.

                Для окончательного решения проблемы нужно изменить файл
                document.parser.class.inc.php
                Найти в нем функцию
                function logEvent
                и после строки
                $source= mysql_escape_string($source);

                вставить для utf8 строку
                $source = mb_substr($source, 0, 50 , "UTF-8");

                или не для utf8 такую строку
                $source = substr($source, 0, 50);


                Сам я это не делал, так что надо тестировать.
                  Создание сайтов на MODx, поддержка сайтов, поисковая оптимизация, программирование, копирайтинг
                  Статьи о MODx, регулярно новые публикации
                  • 1967
                  • 8 Posts
                  Вообщем так в функции
                  startCMSSession
                  вызывается функция session_start();
                  и из за нее возникает ошибка

                  "Error while inserting event log into database."
                  Где еще что исправить
                    • 785
                    • 2,113 Posts
                    Опять у меня эта ошибка возникла, так что сделал исправления, которые раньше лень было делать:
                    В файле document.parser.class.inc.php
                    нужно исправить функцию function logEvent

                    Сначала добавить информативности к выводу сообщения: вместо
                    echo "Error while inserting event log into database.";

                    выводить
                    echo "Error while inserting event log into database: ". mysql_error();

                    То есть писать, какая именно ошибка возникла, чтобы ее в дальнейшем исправить.
                    Про обрезание поля названия написал выше, но еще у меня возникла проблема с номером пользователя. Ее решил так:
                    после строки
                    $evtid= intval($evtid);

                    добавил две строки
                    $LoginUserID=$this->getLoginUserID();	
                    if ($LoginUserID=='') $LoginUserID=0;

                    и изменил
                    "VALUES($evtid,$type," . time() . ",'$source','$msg','" . $this->getLoginUserID() . "')";

                    на
                    "VALUES($evtid,$type," . time() . ",'$source','$msg','" . $LoginUserID . "')";

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

                    Кстати, после исправлений не будет появляться ошибка «Error while inserting event log into database», но исходная проблема останется, так что необходимо проверять лог событий, в который записываются все ошибки и предупреждения.
                      Создание сайтов на MODx, поддержка сайтов, поисковая оптимизация, программирование, копирайтинг
                      Статьи о MODx, регулярно новые публикации
                      • 36823
                      • 334 Posts
                      AKots Откуда такие ошибки? Это локалка или хост?