1. Важное и срочное обновление IPB 3.4.5 - https://nulled.cc/threads/243375/

[Другое] Ip.board обновление системы безопасности

Тема в разделе "IPB", создана пользователем GIwild, 21 фев 2012.

Модераторы: Maybe
  1. GIwild

    GIwild Постоялец

    Регистр.:
    6 май 2006
    Сообщения:
    116
    Симпатии:
    6
    mr.sven и Revenge-R нравится это.
  2. Tippmann

    Tippmann Создатель

    Регистр.:
    17 фев 2010
    Сообщения:
    35
    Симпатии:
    15
    Сегодня вышло новое обновление системы безопасности.
    Источник: http://community.invisionpower.com/topic/371625-ipboard-31x-32x-and-33x-security-update/
    It has come to our attention that a security issue is present in IP.Board.

    We strongly recommend that you follow the instructions below to patch your community.

    Instructions
    This security update is a simple one file patch. Simply download the relevant zip file for your version. Expand the zip file and upload /admin/sources/base/core.php to your /admin/sources/base directory on your server ensuring that the file is overwritten.

    Please contact technical support if you're unsure how to update your community.

    The main download zips have been updated at the time of this announcement.

    IP.Board 3.3.x
    [​IMG] ipb33_oct12.zip 38.93K 1181 downloads

    IP.Board 3.2.x
    [​IMG] ipb32_oct12.zip 37.28K 187 downloads

    IP.Board 3.1.x
    [​IMG] ipb31_oct12.zip 57.78K 135 downloads


    НО!!! После установки выдаёт ошибку и форум не загружается.
    Fatal error: Call to undefined method IPSText::makeSeoTransliterate() in /sata1/home/users/tuning1/www/forum.tuning.crimea.ua/admin/sources/classes/output/publicOutput.php on line 2036
    в чём может быть причина? Кто сталкивался?

    Установлен Invision Power Board 3.3.3 Russian Nulled by IPBMafia
     
  3. Sirius05

    Sirius05 Постоялец

    Регистр.:
    6 апр 2012
    Сообщения:
    55
    Симпатии:
    8
    Откройте файл root/admin/sources/base/core.php (где root - корень вашего форума).
    Найдите:
    Код:
    static public function encodeForXml( $string )
    {
    if ( function_exists( 'mb_detect_encoding' ) )
    {
    $encoding = mb_detect_encoding( $string );
    if ( $encoding != 'UTF-8' )
    {
    $string = IPSText::convertCharsets( $string, $encoding );
    }
    }
    elseif ( strtolower( IPS_DOC_CHAR_SET ) == 'utf-8' )
    {
    $string = utf8_encode( $string );
    }
     
    return $string;
    }
    ниже вставьте:
    Код:
    static public function transliterate( $text )
    {
    return str_replace( array('а','б','в','г','д','е','ё','ж','з','и','й','к','л','м','н','о','п','р','с','т','у','ф','х','ц','ч','ш','щ','э','ю','я','ы','ь','ъ'), array('a','b','v','g','d','e','e','zh','z','i','i','k','l','m','n','o','p','r','s','t','u','f','h','c','ch','sh','sh','a','ju','ja','i','',''), $text);
    }
     
    static public function makeSeoTransliterate( $text )
    {
    $text = urldecode($text);
    $text = self::transliterate( $text );
    $text = preg_replace('#[^a-z0-9-]#', '', $text);
    $text = urlencode($text);
    return $text;
    }
    Теперь в этом же файле найдите

    Код:
     /**
    * Make an SEO title for use in the URL
    * We parse them even if friendly urls are off so that the data is there when you do switch it on
    *
    * @param string Raw SEO title or text
    * @return string Cleaned up SEO title
    */
    static public function makeSeoTitle( $text )
    {
    if ( ! $text )
    {
    return '';
    }
     
    /* Strip all HTML tags first */
    $text = strip_tags($text);
     
    /* Preserve %data */
    $text = preg_replace('#%([a-fA-F0-9][a-fA-F0-9])#', '-xx-$1-xx-', $text);
    $text = str_replace( array( '%', '`' ), '', $text);
    $text = preg_replace('#-xx-([a-fA-F0-9][a-fA-F0-9])-xx-#', '%$1', $text);
     
    /* Convert accented chars */
    $text = self::convertAccents($text);
     
    /* Convert it */
    if ( self::isUTF8( $text ) )
    {
    if ( function_exists('mb_strtolower') )
    {
    $text = mb_strtolower($text, 'UTF-8');
    }
     
    $text = self::utf8Encode( $text, 250 );
    }
     
    /* Finish off */
    $text = strtolower($text);
     
    if ( strtolower( IPS_DOC_CHAR_SET ) == 'utf-8' )
    {
    $text = preg_replace( '#&.+?;#'  , '', $text );
    $text = preg_replace( '#[^%a-z0-9 _-]#', '', $text );
    }
    else
    {
    /* Remove &#xx; and &#xxx; but keep &#xxxx; */
    $text = preg_replace( '/&#(d){2,3};/', '', $text );
    $text = preg_replace( '#[^%&#;a-z0-9 _-]#', '', $text );
    $text = str_replace( array( '"', '&'), '', $text );
    }
     
    $text = str_replace( array( '`', ' ', '+', '.', '?', '_', '#' ), '-', $text );
    $text = preg_replace( "#-{2,}#", '-', $text );
    $text = trim($text, '-');
     
    IPSDebug::addMessage( "<span style='color:red'>makeSeoTitle ($text) called</span>" );
     
    return ( $text ) ? $text : '-';
    }
    и после строчки
    Код:
    $text = trim($text, '-');

    вставьте:

    Код:
    $text = self::makeSeoTransliterate( $text );

    Внимание Сохраните этот файл в кодировке UTF-8 БЕЗ BOM! По умолчанию он в кодировке ANSI, поэтому работать ничего не будет! Для того, чтобы сохранить файл в этой кодировке, скачайте программу Notepad++, откройте в ней этот файл (root/admin/sources/base/core.php) и выберите в верхнем менюКодировки → Преобразовать в UTF-8 без BOM, после этого сохраните файл и закачайте к себе на сервер.
    Теперь откройте файл root/admin/sources/classes/output/publicOutput.php
    Найдите:



    Код:
    /**
     
    * Formats the URL (.htaccess SEO, etc)
     
    *
     
    * @access public
     
    * @param string Raw URL
     
    * @param string Any special SEO title passed
     
    * @param string Any special SEO template to use. If none is passed but SEO is enabled, IPB will search all templates for a match
     
    * @return string Formatted URL
     
    */
     
    public function formatUrl( $url, $seoTitle='', $seoTemplate='' )
     
    {
     
    //-----------------------------------------
     
    // INIT
     
    //-----------------------------------------
     
    if ( ! ipsRegistry::$settings['use_friendly_urls'] )
     
    {
     
    return $url;
     
    }
    и после этой фигурной скобки вставьте:
    Код:
    $seoTitle = IPSText::makeSeoTransliterate( $seoTitle );

    Нашел подобную ошибку на другом ресурсе , это как бы статья для исправления ошибки.


     
    Doctor, Pokemon и Tippmann нравится это.
  4. Tippmann

    Tippmann Создатель

    Регистр.:
    17 фев 2010
    Сообщения:
    35
    Симпатии:
    15
    Спасибо. Помогло. Сравнил с предыдущей версией core.php - там это уже было.
    В связи с тем что транслит у меня уже был настроен, корректировать publicOutput.php не пришлось ;)
    Вопрос исчерпан.
     
  5. alexey_11

    alexey_11 Писатель

    Регистр.:
    11 мар 2010
    Сообщения:
    46
    Симпатии:
    0
    а заплатка не стучит?
    вышла новая версия и вот думаю, ставить - не ставить?
     
  6. Nagibator665

    Nagibator665

    Заблокирован
    Регистр.:
    27 авг 2012
    Сообщения:
    258
    Симпатии:
    79
    нет, заплатка не стучит.
    какая? последняя версия 3.3.4
     
    Bezhev нравится это.
  7. alexey_11

    alexey_11 Писатель

    Регистр.:
    11 мар 2010
    Сообщения:
    46
    Симпатии:
    0
    нет, имею в виду, последняя версия заплатки (тут)
     
  8. Nagibator665

    Nagibator665

    Заблокирован
    Регистр.:
    27 авг 2012
    Сообщения:
    258
    Симпатии:
    79
    нет, заплатка эта не стучит... в ipb не так много мест где идёт отстук.
     
    Bezhev нравится это.