• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

Mysql_query - Обработка Переносов На Новую Строчку

EmptyR

Веб мастер
06.10.2010
153
0
BIT
0
Не врубаюсь... Есть в движке CMS osCommerce 2.3.2 такой глюк - не выводятся описания товаров корректно. Точнее, что происходит. Данные в MySQL базе хранятся нормальные. В таком вот виде:
Код:
Первая строка
Вторая строка
Третья строка
Но osCommerce не хочет выводить его так же читабельно, "заглатывая" переносы на новую строку. Я начал разбираться почему. Выяснил, что всему виной функция tep_db_query, которая лежит в файле /includes/functions/database.php. Вот что там написано:

Код:
function tep_db_query($query, $link = 'db_link') {
global $$link;

if (defined('STORE_DB_TRANSACTIONS') && (STORE_DB_TRANSACTIONS == 'true')) {
error_log('QUERY ' . $query . "\n", 3, STORE_PAGE_PARSE_TIME_LOG);
}

$result = mysql_query($query, $$link) or tep_db_error($query, mysql_errno(), mysql_error());

if (defined('STORE_DB_TRANSACTIONS') && (STORE_DB_TRANSACTIONS == 'true')) {
$result_error = mysql_error();
error_log('RESULT ' . $result . ' ' . $result_error . "\n", 3, STORE_PAGE_PARSE_TIME_LOG);
}

return $result;
}

Понимаю, что всему дело в строке с mysql_query. И логично. Ибо надо бы всё хранить с <br> вместо переносов на новую строку, это же HTML, блин. :(

Т.е., по правильному бы так:
Код:
Первая строка<br>
Вторая строка<br>
Третья строка

Можно ли как то обойти этот косяк в моём случае? Как добавлять автоматически эти несчастные <br>, или может как-то по другому делать запрос?
 

EmptyR

Веб мастер
06.10.2010
153
0
BIT
0
Я врубился! :() Слава Богу! :() Так, короче, там где у меня выдавался уже результат выполнения запроса данных из базы (а это файл /product_info.php) - я просто предварительно окружил вывод функцией nl2br.
Было:
Код:
<?php echo stripslashes($product_info['products_description']); ?>
Стало:
Код:
<?php echo stripslashes(nl2br($product_info['products_description'])); ?>
Это если кто тоже столкнётся с этой проблемой. ;)
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!