Ошибка Call to undefined function json_decode() или json_encode()

Тема в разделе "Перенос Joomla на хостинг и проблемы с хостингом", создана пользователем polkan, 29.03.2011.

  1. Offline

    polkan Недавно здесь

    Регистрация:
    25.09.2010
    Сообщения:
    13
    Симпатии:
    0
    Пол:
    Мужской
    Доброго времени суток. В текстовом редакторе JCE, когда открываю библиотеку, чтобы вставить изображение в текст. Ошибка JSON DATA ERROR: Fatl error: Call to undefined function: json_decode() in plugins\editors\jce\libraries\classes\plugin.php on line 860
    https://picasaweb.google.com/lh/photo/Dg5H_svAX-1LPr2uVTrBNg?feat=directlink
    Решение думал нашёл см. http://veselov.sumy.ua/277-oshibka-call-to-undefined-function-json_decode.html
    но ничего не помогло, есть ещё варианты решения данной проблемы.?
    СПАСИБО !
     
  2.  
  3. Offline

    joga Недавно здесь

    Регистрация:
    19.08.2008
    Сообщения:
    20
    Симпатии:
    3
    Пол:
    Мужской
    Попробуй это http://phpforum.ru/index.php?showtopic=24992

    И вопрос навстречу
    ты писал
    а ты понял что изменения нужно вносить в
    вместо json_decode ?
     
  4. Offline

    polkan Недавно здесь

    Регистрация:
    25.09.2010
    Сообщения:
    13
    Симпатии:
    0
    Пол:
    Мужской
    Решение думал нашёл см. http://veselov.sumy.ua/277-oshibka-call-to-undefined-function-json_decode.html
    писал я
    Проще будет если я вставлю код который у меня в файле plugin.php
    Вто что дописал в верхушке файла
    <?php
    include("JSON.php");
    if( !function_exists('json_encode') ) {
    function json_encode($data) {
    $json = new Services_JSON();
    return( $json->encode($data) );
    }
    }

    // Future-friendly json_decode
    if( !function_exists('json_decode') ) {
    function json_decode($data, $bool) {
    if ($bool) {
    $json = new Services_JSON(SERVICES_JSON_LOOSE_TYPE);
    } else {
    $json = new Services_JSON();
    }
    return( $json->decode($data) );
    }
    }

    Так же требовалось ??? Я прав???
     
  5. Offline

    polkan Недавно здесь

    Регистрация:
    25.09.2010
    Сообщения:
    13
    Симпатии:
    0
    Пол:
    Мужской
    Попробуй это http://phpforum.ru/index.php?showtopic=24992

    попробовал , но не вкурсе куда вставить этот код :

    function json2array($json){

    if(get_magic_quotes_gpc()){
    $json = stripslashes($json);
    }
    $json = substr($json, 1, -1);

    $json = str_replace(array(":", "{", "[", "}", "]"), array("=>", "array(", "array(", ")", ")"), $json);

    @eval("\$json_array = array({$json});");

    return $json_array;

    }

    буду очень благодарен если , поясните. Спасибо !
     
  6. Offline

    joga Недавно здесь

    Регистрация:
    19.08.2008
    Сообщения:
    20
    Симпатии:
    3
    Пол:
    Мужской
    Я тут немного поковырял этот файл. Что выяснил:

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

    А значит нужно детали: версия джумлы, версия jce, что за плагин, его версия, хостинг и т.д.
     
  7. Offline

    polkan Недавно здесь

    Регистрация:
    25.09.2010
    Сообщения:
    13
    Симпатии:
    0
    Пол:
    Мужской
    Joomla 1.5.22 JCE plg_jce_1.5.7.7
    ХОСТ
    Платформа: Linux vElse.naukanet.ru 2.6.18-194.32.1.el5 #1 SMP Wed Jan 5 17:52:25 EST 2011 x86_64
    Версия MySQL: 5.0.77
    Сравнение БД: utf8_general_ci
    Версия PHP: 5.1.6 тут косяк мне кажется , должно быть >= 5.2
    Веб-сервер: Apache
    Интерфейс веб-сервер -> PHP: apache2handler
     
  8. Offline

    joga Недавно здесь

    Регистрация:
    19.08.2008
    Сообщения:
    20
    Симпатии:
    3
    Пол:
    Мужской
    С одной стороны да, а с другой - в файле plugins\editors\jce\libraries\classes\plugin.php в строках 719 и 734 переопределены функции json_encode и json_decode соответственно. То-есть там уже используется прием на который вы ссылались (http://veselov.sumy.ua/277-oshibka-call-to-undefined-function-json_decode.html).
    Я использую JCE с версии 1.5.2 и такой проблемы не замечал. Если навскидку - могу посоветовать переустановить JCE. Причем переустановить полностью - с удалением компонента. Может поможет. Если же нет - и смена хостинга, или просьба в обновлении PHP у хостера не вариант - попробуйте использовать вариант из 2-го поста.

    Для этого нужно будет вставить функцию
    Код (PHP):
    1. function json2array($json){
    2.  
    3.    if(get_magic_quotes_gpc()){
    4.       $json = stripslashes($json);
    5.    }
    6.    $json = substr($json, 1, -1);
    7.    
    8.    $json = str_replace(array(":", "{", "[", "}", "]"), array("=>", "array(", "array(", ")", ")"), $json);
    9.  
    10.    @eval("\$json_array = array({$json});");
    11.  
    12.    return $json_array;
    13.  
    14. }

    где-то после 31-й строки и до 801-й строки, и заменить вызов json_decode на json2array в 736-й строке.
    Хотя это и плохой вариант, неправильный.
    Лучше стукни в аську - попробую помочь.
     
  9. Offline

    polkan Недавно здесь

    Регистрация:
    25.09.2010
    Сообщения:
    13
    Симпатии:
    0
    Пол:
    Мужской
    Решение проблемы найдено !!! Удалил старую версию 1577 и установил 15710 , с одним НО, файлы удалял вручную через FileZilla , т.к. заметил что после стандартной процедуры удаления (Расширения - Установить - Удалить - Компоненты
    там выделить JCE и нажать Удалить) удаляются не все файлы, вернее файлы все а вот коренные папки остаются такие как,
    administrator/components/com_jce
    components/com_jce
    plugins/editors/jce
    И вот только после ручного удаления этих папок
    ВСЁ ВСТАЛО И ЗАРАБОТАЛО !!!
    Всем СПАСИБО !!! Тема закрыта![!]
     

Поделиться этой страницей

Загрузка...