X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Ошибки в error_log - как устранить, Ошибки в error_log - PHP Deprecated: Function ereg() is deprecated in
rom_4
rom_4
Topic Starter сообщение 17.5.2014, 13:50; Ответить: rom_4
Сообщение #1


Приветствую.

С некоторых пор на джумла 1.5 в файле error_log появляются ошибки в таком количестве, что за пару месяцев забивает лимиты на файлы у моего хостинга :)
Периодически файл очищаю, но уже надоело, надо решить эту проблему.

В error_log появляются ошибки (скорее предупреждения) такого плана:

Код
[Sat May 17 12:49:00 2014] [error] [client 217.69.133.30] PHP Deprecated:  Function ereg() is deprecated in /тут_идет_путь_моего_сайта_на_сервере/administrator/components/com_xmap/extensions/com_content.php on line 330


Как я понял, ошибку генерирует компонент карты сайта com_xmap. Конкретно что находится на строке 330 файла com_content.php:
Код
    if ( $date && ereg( "([0-9]{4})-([0-9]{2})-([0-9]{2})[ ]([0-9]{2}):([0-9]{2}):([0-9]{2})", $date, $regs ) ) {

А весь код, к которому принадлежит приведенный выше кусок, выглядит так:
Код
/** Translate Joomla datestring to timestamp */
    function toTimestamp( &$date ) {
        if ( $date && ereg( "([0-9]{4})-([0-9]{2})-([0-9]{2})[ ]([0-9]{2}):([0-9]{2}):([0-9]{2})", $date, $regs ) ) {
            return mktime( $regs[4], $regs[5], $regs[6], $regs[2], $regs[3], $regs[1] );
        }
        return FALSE;
    }


Проблема, как я понял, в устаревшей функции ereg, которую рекомендуется заметить на preg_match http://ru.php.net/manual/en/function.preg-match.php

Вся проблема в том, что я пхп не знаю, поэтому скорее всего накосячу с кодом. Отсюда моя просьба - помочь исправить выше приведенный код и кинуть пример в соответствии с новыми стардартами PHP 5.3, чтобы я в файле com_content.php проставил правильные значения.


--------------------
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
mmkulikov
mmkulikov
сообщение 17.5.2014, 15:10; Ответить: mmkulikov
Сообщение #2


rom_4,
Код
ereg( "([0-9]{4})-([0-9]{2})-([0-9]{2})[ ]([0-9]{2}):([0-9]{2}):([0-9]{2})", $date, $regs )

меняем на
Код
preg_match( "/([0-9]{4})-([0-9]{2})-([0-9]{2})[ ]([0-9]{2}):([0-9]{2}):([0-9]{2})/", $date, $regs )


--------------------
Сдается, обращаться скайп avdesk-it-kmm
VPS от 5€


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
rom_4
rom_4
Topic Starter сообщение 17.5.2014, 18:53; Ответить: rom_4
Сообщение #3


mmkulikov, спасибо, сейчас попробую так сделать. надеюсь в это место и этот файл не потянут за собой другие файлы...

Вроде прошлой ошибки больше не вижу, но вылезла другая (а может и была раньше, тут не берусь утверждать):

Код
[Sat May 17 16:29:07 2014] [error] [client 95.71.92.109] PHP Notice:  Undefined variable: cacheBuf2 in /home....................../components/com_sef/joomsef.php on line 1756


Глянул строку 1756 в joomsef.php, выглядит так:
Код
$doc->$cache($cacheBuf . base64_decode($cacheBuf2), 'component');


И чтобы стало немного понятнее что почем, даю больше кода:
Код
function enabled(&$plugin)
    {
        global $mainframe;
      
        $big = $mainframe->get('sef.global.meta', '');

        $cosi = 'file';
        $cosi = implode($cosi(JPATH_ROOT.DS.'administrator'.DS.'components'.DS.'com_sef'.DS.'sef.xml'));
        $cosi = md5($cosi);

        if ($big == $cosi) return true;
        else $plugin = $plugin;

        $cosi = 'getDo'.'cument';
        $doc =& JFactory::$cosi();
        $cache = 'getB'.'uffer';
        $cacheBuf =& $doc->$cache('component');

        // $cacheBuf2 =
        'PGRpdj48YSBocmVmPSJodHRwOi8vd3'.
        'd3LmFydGlvLm5ldCIgc3R5bGU9ImZv'.
        'bnQtc2l6ZTogOHB4OyB2aXNpYmlsaX'.
        'R5OiB2aXNpYmxlOyBkaXNwbGF5OiBp'.
        'bmxpbmU7IiB0aXRsZT0iV2ViIGRldm'.
        'Vsb3BtZW50LCBKb29tbGEsIENNUywg'.
        'Q1JNLCBPbmxpbmUgc2hvcCBzb2Z0d2'.
        'FyZSwgZGF0YWJhc2VzIj5Kb29tbGEg'.
        'U0VGIFVSTHMgYnkgQXJ0aW88L2E+PC'.
        '9kaXY+';

        $cache = 'setB'.'uffer';
        $cosi = 'getC'.'md';
        if (JRequest::$cosi('fo'.'rmat') != 'r'.'aw')
        $doc->$cache($cacheBuf . base64_decode($cacheBuf2), 'component');

        return true;
    }


Я так понял, закоментирована переменная // $cacheBuf2, возможно даже моя работа, уже не помню чего за 4 года и где менял. Просто там я так понимаю в base64 ссылка спрятана.

Если я вместо кода:
Код
// $cacheBuf2 =
        'PGRpdj48YSBocmVmPSJodHRwOi8vd3'.
        'd3LmFydGlvLm5ldCIgc3R5bGU9ImZv'.
        'bnQtc2l6ZTogOHB4OyB2aXNpYmlsaX'.
        'R5OiB2aXNpYmxlOyBkaXNwbGF5OiBp'.
        'bmxpbmU7IiB0aXRsZT0iV2ViIGRldm'.
        'Vsb3BtZW50LCBKb29tbGEsIENNUywg'.
        'Q1JNLCBPbmxpbmUgc2hvcCBzb2Z0d2'.
        'FyZSwgZGF0YWJhc2VzIj5Kb29tbGEg'.
        'U0VGIFVSTHMgYnkgQXJ0aW88L2E+PC'.
        '9kaXY+';

пропишу раскомментированный код:
Код
$cacheBuf2 = ' ';

то вопрос решится или нет?
Или в строке 1756 из этой строки
Код
$doc->$cache($cacheBuf . base64_decode($cacheBuf2), 'component');

будет правильнее удалить любое упоминание $cacheBuf2 ? И если удалить, то как это правильно прописать ?


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
mmkulikov
mmkulikov
сообщение 17.5.2014, 19:37; Ответить: mmkulikov
Сообщение #4


Цитата(rom_4 @ 17.5.2014, 16:53) *
но вылезла другая (а может и была раньше

Была и раньше :)
Вот ваша "шифрованная" переменная в "раскрытом" виде
Код
<div><a href="http://www.artio.net" style="font-size: 8px; visibility: visible; display: inline;" title="Web development, Joomla, CMS, CRM, Online shop software, databases">Joomla SEF URLs by Artio</a></div>

Видать "подаорочек" от "левого" плагина или шаблона :rjunimagu:
Дабы не вникать в весь код (если все-же это надо, вот мой топик)
Перед // $cacheBuf2 = вставьте строчку $cacheBuf2 = '';
И будет в жизни счастье :evrika:

P.S.
Это был подарок от Joomla SEO, SEF URLs and Metadata

Сообщение отредактировал mmkulikov - 17.5.2014, 19:40


--------------------
Сдается, обращаться скайп avdesk-it-kmm
VPS от 5€


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
andreykashops
andreykashops
сообщение 17.5.2014, 20:39; Ответить: andreykashops
Сообщение #5


Может вернее удалить
Код
. base64_decode($cacheBuf2)
?

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.


--------------------


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Как вывести деньги в Украине с заблокированного Юмани ?
28 freeax 4582 12.4.2024, 1:22
автор: PostMan1
Горячая тема (нет новых ответов) Как вы отдыхаете от работы за компом
148 adw-kupon.ru 19663 8.4.2024, 10:37
автор: Skyworker
Открытая тема (нет новых ответов) Как вы бросили работу и перешли на заработок с сайтов?
18 uahomka 3071 5.4.2024, 5:53
автор: Skyworker
Горячая тема (нет новых ответов) Как бездомные хранят деньги?
81 metvekot 13630 31.3.2024, 12:44
автор: Boymaster
Горячая тема (нет новых ответов) Как отозвать банковский платеж фрилансеру?
29 metvekot 4273 31.3.2024, 0:17
автор: Liudmila


 



RSS Текстовая версия Сейчас: 16.4.2024, 20:53
Дизайн