[bug] Поддержка нестандартных портов в MySQLi

Тема в разделе "DLE", создана пользователем masima, 27 май 2008.

Информация :
Актуальная версия DataLife Engine 11.2
( Final Release v.11.2 | Скачать DataLife Engine | Скачать 11.2 demo )
Нужно ли обновляться | Как обновиться | Изменения в шаблонах
> Нет русских символов <
[Приватная тема DLE (Все подробности в ЛС к модератору раздела)]

Версии 11.1 и ниже - уязвимы!

Локализации | F.A.Q. | Внешний вид
Правила раздела | Правила форума
Обсуждение хайда карается баном!
В каждом сообщении указывайте версию DLE, которого они касаются!
Статус темы:
Закрыта.
Модераторы: killoff
  1. masima

    masima

    Регистр.:
    9 мар 2007
    Сообщения:
    731
    Симпатии:
    1.338
    Была обнаружена небольшая проблема, при которой если MySQLi сервер использует нестандартный порт для подключения, например если ваш хостер в качестве адреса к MySQL сообщает адрес website.ru:3307, то скрипт не может подключится по этим параметрам к базе данных. Данная проблема существует только если используется подключение с нестандартным портом, и только если используется MySQLi расширение для подключения к базе данных

    Ошибка в версии: все версии поддерживающие MySQLi

    Ручное исправление:

    Файл: engine/classes/mysqli.class.php

    Найти:
    Код:
         if(!$this->db_id = @mysqli_connect($db_location, $db_user, $db_pass, $db_name)) {
    Заменить на:
    Код:
         $db_location = explode(":", $db_location);
    
            if ($db_location[1]) {
    
                $this->db_id = @mysqli_connect($db_location[0], $db_user, $db_pass, $db_name, $db_location[1]);
    
            } else {
    
                $this->db_id = @mysqli_connect($db_location[0], $db_user, $db_pass, $db_name);
    
            }
    
            if(!$this->db_id) {
    

    ссылка на офф сайт: _http://dle-news.ru/bags/v70/292-podderzhka-nestandartnykh-portov.html
     
  2. PoMaH

    PoMaH

    Регистр.:
    8 июн 2006
    Сообщения:
    753
    Симпатии:
    142
    ctob nelezlo osybok v error logi,
    pravelnei budit napisat
    if (isset($db_location[1])) {

    mozno tagze vsunut i proverku na cyfrenos porta
    && intval($db_location[1])
     
  3. masima

    masima

    Регистр.:
    9 мар 2007
    Сообщения:
    731
    Симпатии:
    1.338
    Уважаемый РоМаН! фикс данного бага выпустил разработчик, так что я думаю нецелесообразно обсуждать через какую жопу он заткнул данный баг...

    спасибо за ваще мнение... и я считаю ваще сообщение бесмысленным замечание не относяшиеся к делу...
     
  4. PoMaH

    PoMaH

    Регистр.:
    8 июн 2006
    Сообщения:
    753
    Симпатии:
    142
    da Vy pravy. Sam razrabotcik latajet SVOJUZE osibku.

    tak cem tebe moj variant ne nravitca? jesli eto opiatze JEGOZE osibka? a ja jejo pravliu?

    Vezde byvajut osibki, odni praviat avtory drugije praviat te kto zameciajet (a avtor potom pravit i govorit eto on dodumalsia...)

    v dannom sluciaji ja zametil i predlozyl, i skozal dlia cego ja eto predlozyl.

    Ne v vashei kompitencii rassuzdat eto pravelno ili net. no vam vybirat prislushatca k etomu ili net...
     
    dm_mb нравится это.
  5. E-body

    E-body

    Регистр.:
    6 сен 2007
    Сообщения:
    980
    Симпатии:
    315
    Бывает ошибка на эту же строку такого вида:
    Fatal error: Trying to clone an uncloneable object of class mysqli in *корневая-вашего-сайта*\engine\classes\mysqli.class.php on line 38

    Причины
    Интерпретатор PHP работает в режими совместимости с Zend Engine первой версии (zend.ze1_compatibility_mode)

    Для исправления добавьте в .htaccess
    PHP:
    php_flag zend.ze1_compatibility_mode off
    спасибо описанию с: wiki.iblink.ru/kb/fatal_error_trying_to_clone_an_uncloneable_object_of_class_mysqli
     
Статус темы:
Закрыта.