Новости Joomla

Вышли релизы безопасности Joomla 6.0.2 и Joomla 5.4.2

Релиз безопасности Joomla 6.0.2 и 5.4.2

Проект Joomla спешит сообщить о выпуске Joomla 6.0.2 и Joomla 5.4.2. Это релиз безопасности для серии Joomla 6.0 и релиз безопасности для серии Joomla 5.4.

JL Content Fields Filter 4.0.0

JL Content Fields Filter 4.0.0

JL Content Fields Filter - Это бесплатный модуль, который фильтрует материалы в категории Joomla согласно настраиваемым полям.

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

Ключевые Особенности:

- Полная совместимость с Joomla 6: Полная миграция на PSR-4, удаление устаревших методов, исправления для PHP 8.2+ и современные взаимодействия с базой данных.

- Полностью переписанный интерфейс компонента:

- Современный JS стек (Native Fetch, ES6+, модальные окна Bootstrap 5)

- Новое поле FilterfieldsField для предварительного просмотра фильтров в реальном времени.

- Полный CRUD, улучшенные функции SEO и улучшенный UX.

- Критические исправления безопасности:

- 5 SQL-инъекций устранены в нескольких файлах.

- Добавлена защита от XSS, улучшены токены CSRF и проверки разрешений.

- Улучшения модуля и плагина: Улучшенная функциональность слайдера, лучшие сбросы форм, динамическое обнаружение контекста для плагинов и оптимизированная логика фильтрации.

Страница расширения:
https://joomline.ru/rasshirenija/moduli/jlcontentfieldsfilter.html

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

ecolora

  • Завсегдатай
  • 1535
  • 171 / 2
  • творец
Пытаюсь создать таблицу в базе данных:

Код
$db1 =& JFactory::getDBO();
$query = 'CREATE TABLE IF NOT EXISTS `#__table1` (
      `rowid` integer NOT NULL AUTO_INCREMENT,
              `name` varchar(255) NOT NULL DEFAULT ``,
              `artist` varchar(80) NOT NULL DEFAULT ``,
              `title` varchar(80) NOT NULL DEFAULT ``,
              `down_count` integer NOT NULL DEFAULT 0,
              `raiting` integer NOT NULL DEFAULT 0,
              PRIMARY KEY (`rowid`),
              UNIQUE KEY `music_name` (`name`,`artist`,`title`)
      );';

        $result = $db1->setQuery($query);
        if (!$result = $db1->query($query)){
            echo "Error: ".$db1->getError();// отлавливаем ошибки
        }

Код выполняется внутри функции. Вернее должен выполняться. Всё остальное внутри функции выполняется. А этот код почему-то нет! Таблица не создаётся!

В чём может быть проблема?
Я рифме друг словесной. Тут
Свой упражняю словоблуд:
Блог Ecolora
*

icom

  • Давно я тут
  • 830
  • 202 / 4
Re: Проблемы работы с базой данных
« Ответ #1 : 01.09.2010, 12:50:18 »
может проблема в том что вы целочисленные поля объявили как integer а не например - int(11)
*

ecolora

  • Завсегдатай
  • 1535
  • 171 / 2
  • творец
Re: Проблемы работы с базой данных
« Ответ #2 : 01.09.2010, 13:04:09 »
может проблема в том что вы целочисленные поля объявили как integer а не например - int(11)

Изначально это было int(11)... уже и так и так пытался.

А в результате выдаёт:
Цитировать
Error:
И всё... никаких ошибок.

Может быть внутри функции такое сделать невозможно?

Даже не знаю, что предположить.
Я рифме друг словесной. Тут
Свой упражняю словоблуд:
Блог Ecolora
*

ecolora

  • Завсегдатай
  • 1535
  • 171 / 2
  • творец
Re: Проблемы работы с базой данных
« Ответ #3 : 01.09.2010, 13:23:31 »
Вот код страницы с начала:

Код
defined( '_JEXEC' ) or die( 'Restricted access' );
$mainframe->registerEvent( 'onPrepareContent', 'plugin1' );

function plugin1( &$row, &$params )  {

        $db1 =& JFactory::getDBO();
$query = 'CREATE TABLE IF NOT EXISTS `#__table1` (
      `rowid` integer NOT NULL AUTO_INCREMENT,
              `name` varchar(255) NOT NULL DEFAULT ``,
              `artist` varchar(80) NOT NULL DEFAULT ``,
              `title` varchar(80) NOT NULL DEFAULT ``,
              `down_count` integer NOT NULL DEFAULT 0,
              `raiting` integer NOT NULL DEFAULT 0,
              PRIMARY KEY (`rowid`),
              UNIQUE KEY `music_name` (`name`,`artist`,`title`)
      );';

        $result = $db1->setQuery($query);
        if (!$result = $db1->query($query)){
            echo "Error: ".$db1->getError();// отлавливаем ошибки
        }
}

И почему-то этот код не работает. Таблица не создаётся! :-(
Я рифме друг словесной. Тут
Свой упражняю словоблуд:
Блог Ecolora
*

ecolora

  • Завсегдатай
  • 1535
  • 171 / 2
  • творец
Re: Проблемы работы с базой данных
« Ответ #4 : 01.09.2010, 13:35:41 »
Такс... походу проблема в самом запросе... попробовал пример из ехтравоте плагина:

Код
$query = 'CREATE TABLE IF NOT EXISTS  `#__content_extravote` (
      `content_id` INT(11) NOT NULL,
      `extra_id` INT(11) NOT NULL,
      `lastip` VARCHAR(50) NOT NULL,
      `rating_sum` INT(11) NOT NULL,
      `rating_count` INT(11) NOT NULL,
  KEY `extravote_idx` (`content_id`)
      );';

Всё сработало! Таблица создалась. Всем спасибо. Буду копать дальше!
Я рифме друг словесной. Тут
Свой упражняю словоблуд:
Блог Ecolora
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
Re: Проблемы работы с базой данных
« Ответ #5 : 01.09.2010, 13:36:34 »
Код
if (!$db1->query()) {
  echo $db1->stderr();
}
*

Lex

  • Завсегдатай
  • 1615
  • 274 / 1
Re: Проблемы работы с базой данных
« Ответ #6 : 01.09.2010, 13:41:00 »
Вообще-то прежде чем совать в код, запрос стоит прогонять через phpmyadmin чистоганом. Т.е. без php.
Код: php
$query = "CREATE TABLE IF NOT EXISTS `#__table1` (
     `rowid` integer NOT NULL AUTO_INCREMENT,
              `name` varchar(255) NOT NULL DEFAULT '',
              `artist` varchar(80) NOT NULL DEFAULT '',
              `title` varchar(80) NOT NULL DEFAULT '',
              `down_count` integer NOT NULL DEFAULT 0,
              `raiting` integer NOT NULL DEFAULT 0,
              PRIMARY KEY (`rowid`),
              UNIQUE KEY `music_name` (`name`)
     )";
$db =& JFactory::getDBO();
$db->setQuery($query);
$db->query();
Жизнь заставила учиться.
В личке на вопросы не отвечаю.
*

ecolora

  • Завсегдатай
  • 1535
  • 171 / 2
  • творец
Re: Проблемы работы с базой данных
« Ответ #7 : 01.09.2010, 14:02:43 »
Не понимает в строке
Код
`rowid` int(11) NOT NULL AUTO_INCREMENT,
Слово:
Код
AUTO_INCREMENT

Также не понимает в конце каждой строки:

Код
DEFAULT ''

Почему?

Копаю дальше...
Я рифме друг словесной. Тут
Свой упражняю словоблуд:
Блог Ecolora
*

ecolora

  • Завсегдатай
  • 1535
  • 171 / 2
  • творец
Re: Проблемы работы с базой данных
« Ответ #8 : 01.09.2010, 14:11:55 »
Код
if (!$db1->query()) {
  echo $db1->stderr();
}

Спасибо! Теперь вижу ошибки!
Я рифме друг словесной. Тут
Свой упражняю словоблуд:
Блог Ecolora
*

ecolora

  • Завсегдатай
  • 1535
  • 171 / 2
  • творец
Re: Проблемы работы с базой данных
« Ответ #9 : 01.09.2010, 14:16:53 »
Почти разобрался! Вот эта конструкция работает вся кроме последней строчки:

Код
'CREATE TABLE IF NOT EXISTS `#__table1` (
      `rowid` int(11) unsigned NOT NULL AUTO_INCREMENT,
      `name` varchar(255) NOT NULL DEFAULT \'\',
      `artist` varchar(80) NOT NULL DEFAULT \'\',
               `title` varchar(80) NOT NULL DEFAULT \'\',
               `down_count` int(11) NOT NULL DEFAULT 0,
               `raiting` int(11) NOT NULL DEFAULT 0,
                PRIMARY KEY (`rowid`),
                UNIQUE KEY `music_name` (`name`,`artist`,`title`)
            );'

Если это убрать:

Код
,
                UNIQUE KEY `music_name` (`name`,`artist`,`title`)

То всё работает!

Иначе выдаёт ошибку:

Цитировать
Specified key was too long; max key length is 1000 bytes SQL=CREATE TABLE...

Я рифме друг словесной. Тут
Свой упражняю словоблуд:
Блог Ecolora
*

ecolora

  • Завсегдатай
  • 1535
  • 171 / 2
  • творец
Re: Проблемы работы с базой данных
« Ответ #10 : 01.09.2010, 14:23:35 »
Понял в чём причина:

для Utf8 1 символ — 3 байта.

Сократил кол-во символов в полях до 200, 50 и 50

Всем спасибо за помощь. Смоку отдельное за вывод ошибок! Уже поставил +.
Я рифме друг словесной. Тут
Свой упражняю словоблуд:
Блог Ecolora
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Проблемы с входом на сайт

Автор belovpaha

Ответов: 7
Просмотров: 4860
Последний ответ 20.09.2022, 14:30:51
от sivers
Проблемы с правами на запись папок "logs и tmp"

Автор murich

Ответов: 42
Просмотров: 29077
Последний ответ 07.10.2021, 18:29:16
от Maxandrey
Ошибка #1050 при переносе базы данных на хостинг

Автор Ksen

Ответов: 7
Просмотров: 25023
Последний ответ 16.03.2020, 17:47:29
от Petrovich
Есть у кого нибудь опыт работы с EZ Realty?

Автор stardel

Ответов: 5
Просмотров: 3596
Последний ответ 08.03.2019, 13:47:38
от zaspola
Передача данных в форму при нажатии на ссылку

Автор usmdamir

Ответов: 4
Просмотров: 1846
Последний ответ 26.07.2017, 09:40:22
от usmdamir