We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 30458
    • 9 Posts
    Здравствуйте!

    С недавнего времени в логах Modx начала появляться ошибка (около 30 ошибок в день, судя по логам Modx)
    « MODx Parse Error »
    MODx encountered the following error while attempting to parse the requested resource:
    « PHP Parse Error »
     
    PHP error debug
      Error: 	mb_strpos() [function.mb-strpos]: Unknown encoding or conversion error.	 
      Error type/ Nr.: 	Warning - 2	 
      File: 	/home/сайт/www/manager/includes/document.parser.class.inc.php(769) : eval()'d code	 
      Line: 	4
    


    никак не могу понять причину появления. Если кто сталкивался с такой ошибкой помогите разобраться.

    Версия Modx 0.9.6.3
    функция mb_strpos() вообще нигде не используется на сайте.
      • 30458
      • 9 Posts
      На другом сайте (на этом же хостинге) вдруг начала появляться такая ошибка (ошибка начала появляться 4 дня назад)

      « MODx Parse Error »
      MODx encountered the following error while attempting to parse the requested resource:
      « PHP Parse Error »

      PHP error debug
      Error: mb_strpos() [function.mb-strpos]: Unknown encoding or conversion error.
      Error type/ Nr.: Warning - 2
      File: /home/сайт/www/assets/snippets/ditto/classes/filter.class.inc.php
      Line: 81
      Line 81 source: if (strpos($value[$this->array_key], $this->filterValue)===FALSE)

      Modx 0.9.6.3
      mb_strpos() тоже нигде не используется

      Хотя на этом сайте изменения не проводились около двух недель. В чем может быть проблема?
        • 32725
        • 107 Posts
        Скорее всего на вашем хостинге кто-то включил модуль mbstring и в нем mbstring.func_overload
        Это настройка в php.ini, которая заменяет некоторые строковые функции на их многобайтные эквиваленты. Т.е. Если вы в коде пишете strpos, то на самом деле выполняется mb_strpos с кодировкой, которая указана в php.ini

        В вашем случае, скорее всего, в php.ini указана некорректная кодировка.

        Либо посмотрите в конфиге php, либо, если нет доступа, напишите хостеру.

        Почитать подробнее можно здесь: http://www.php.net/manual/en/mbstring.configuration.php
          My portfolio
          Самурай без меча подобен самураю с мечом, только без меча.
          • 11067
          • 24 Posts
          попробуйте настроить mb_string как вам нужно через .htaccess
            • 30458
            • 9 Posts
            Да модуль mbstring включен (в аттаче прикрепил конфигурацию php)
            но судя по этим настройкам
            mbstring.func_overload установлена в "0"
            


            Никаких преобразований функций происходить не должно, или я не прав?
              • 30458
              • 9 Posts
              Проблема решена!
              В файл htaccess дописал следующее
              php_value mbstring.internal_encoding "кодировка сайта"
              


              Всем спасибо за помощь.

              Но все равно не понятно почему происходила конвертация функции при выключенной функции mbstring.func_overload ? Это осталось загадкой huh