0 Пользователей и 1 Гость просматривают эту тему.
  • 7 Ответов
  • 1253 Просмотров
*

pmikle

  • Новичок
  • 3
  • 0 / 0
Доброго времени суток.
Данная тема - тема для размышления.
Я решил, осваивая программирование для jooml'ы, написать свою функцию для запросов к базе данных.
Возможность использовать класс &JFactory::getDBO() есть, просто интересно почему возникает проблема.
Есть код:
         $str="select title from #__menu where id = 102";
         $jconfig = new JConfig();
         
         $database_host = $jconfig->host;
         $database_user = $jconfig->user;
         $database_password = $jconfig->password;
         $database_name = $jconfig->db;
         $dbprefix = $jconfig->dbprefix;
         
         $link = mysql_connect($database_host, $database_user, $database_password);
         if (!$link) {
            die('Could not connect: ' . mysql_error());
         } else {
            mysql_select_db($database_name);
            $str = str_replace("#__", $dbprefix, $str);
            $sql=mysql_query($str);
         }
         echo mysql_result($sql,0,0);

Выводит: "����� ���" (там символы кириллицей)
Кодировка страницы: UTF-8 без Boom
Кодировка поля в базе: utf8_general_ci

При выводе классом &JFactory::getDBO() все нормально. В чем может быть причина?
Заранее спасибо!
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Код: php
$link = mysql_connect($database_host, $database_user, $database_password);
mysql_set_charset('utf8',$link);
Пробовали?
интернет-блог: http://websiteprog.ru
*

Aleks.Denezh

  • Живу я здесь
  • 3406
  • 428 / 4
Решили осваивать программирование для Joomla и используете mysql_connect вместо JFactory::getDbo(); ??
*

pmikle

  • Новичок
  • 3
  • 0 / 0
Код: php
$link = mysql_connect($database_host, $database_user, $database_password);
mysql_set_charset('utf8',$link);
Пробовали?
Спасибо большое, zomby6888!
Все заработало. Вопрос оказался не из области Joomla, a из области php+mysql)) Просто меня посещали мысли, что Joomla 3 может кодировать/декодировать данные, чтобы не из класса не обращались..
*

pmikle

  • Новичок
  • 3
  • 0 / 0
Решили осваивать программирование для Joomla и используете mysql_connect вместо JFactory::getDbo(); ??
Да, теоретически это может пригодиться для подключения к не джумловской базе.
*

capricorn

  • Завсегдатай
  • 1949
  • 118 / 3
возможно все дело в настройках веб-сервера хостера - попробуйте задать header и скорее всего и ваш код сработает.
*

AlekVolsk

  • Гуру
  • 6915
  • 415 / 4
Да, теоретически это может пригодиться для подключения к не джумловской базе.
Вы не правы. Пользуйтесь api J, а не прямым доступом, это безопаснее: J использует все те же функции прямого доступа, но передает в них значения, обработанные должным образом. частично избавляя от sql-инъекций.
*

capricorn

  • Завсегдатай
  • 1949
  • 118 / 3
Цитировать
частично избавляя от sql-инъекций

Вероятность sql-инъекции для ядра Joomla ничтожно мала. Цель инъекции - вывести содержимое системного файла OS на экран. Когда все средства php использованы, то всегда остается уязвимость сервера. Именно поэтому всем говорят - делайте бэкапы. Всегда.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Проблема с 404 страницей

Автор prog5

Ответов: 5
Просмотров: 715
Последний ответ 20.04.2024, 23:05:53
от Alexeyman
Проблема вебвизором в Яндекс метрике при использовании плагина jch optimize

Автор polezniy

Ответов: 32
Просмотров: 2876
Последний ответ 01.03.2024, 10:26:31
от Vastriet
Замена данных сайта на данные поддомена

Автор rezchik

Ответов: 5
Просмотров: 403
Последний ответ 05.02.2024, 11:45:36
от web1
Окно заполнение контактных данных

Автор Vlad1323

Ответов: 1
Просмотров: 386
Последний ответ 29.03.2023, 16:47:54
от arma
Окно заполнение контактных данных

Автор Vlad1323

Ответов: 0
Просмотров: 323
Последний ответ 29.03.2023, 01:15:03
от Vlad1323