[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Функция nl2br()
SwqapON
Познавая PHP параллельно пишу свой блог с нуля и без всяких фреймворков. Дошло дело до вывода информации из БД, в которой либо прописывать все теги по переносу текста, ибо текст идёт сплошняком, либо как я нашёл удобную функцию nl2br(), которая автоматически видя переход на новую строку, добавляет тег br. Так всё вроде бы ничего, но если по пути встречается тег pre, то после него закрывающего, тег p больше не встречается. Может кто подскажет как это исправить. Ну или может я не совсем правильно вывожу текст из БД?

Текст в БД
Просмотр через F12

Сам код
<div class="single">
<div class="article">
<h2><?=$articleOne['title'];?></h2>
<div class="update">Обновлено: <?=$articleOne['datarelease'];?></div>
<p><?=nl2br($articleOne['content']);?></p>
</div>
</div>
Valick
SwqapON, абсолютно всё, что вы получаете от пользователя будь то 1 символ или огромный текст с html (и не важно где оно хранится или выводится на лету) выводить надо через htmlspecialchars(). Именно выводить, хранить в БД нужно как есть применив соответсвующие меры предосторожности (минимально mysql_escape_string() )
https://www.php.net/manual/ru/function.htmlspecialchars.php

_____________
Стимулятор ~yoomoney - 41001303250491
SwqapON
Цитата (Valick @ 31.01.2025 - 10:31)
выводить надо через htmlspecialchars().

Вы видимо не поняли. Вот так выводится текст из БД по Вашей рекомендации, а вот так он выводится через функцию nl2br()
Valick

<p><?= htmlspecialchars(nl2br($articleOne['content'])) ?></p>


_____________
Стимулятор ~yoomoney - 41001303250491
SwqapON
Цитата (Valick @ 31.01.2025 - 11:21)

<p><?= htmlspecialchars(nl2br($articleOne['content'])) ?></p>

Не работает sad.gif
Valick
SwqapON, что не работает? Всё равно обрезается текст?
А при вставке в БД его не режет?

_____________
Стимулятор ~yoomoney - 41001303250491
SwqapON
Цитата (Valick @ 31.01.2025 - 16:42)
SwqapON, что не работает? Всё равно обрезается текст?
А при вставке в БД его не режет?

Я не совсем понимаю как вставлять в БД текст с htmlspecialchars(). Может если я покажу код, станет яснее...?

<form action="createnew.php" method="post">
<label
for="title">Название</label>
<input
type="text" name="title" id="title">
<select
name="navigation" id="">
<option
selected>Категория</option>
<?php
foreach ($navigation as $nav): ?>
<option
value="<?=$nav['id'];?>"><?=$nav['title'];?></option>
<?php
endforeach;?>
</select>
<textarea
name="content" rows="10"></textarea>
<button
name="add-post" type="submit">Запостить</button>
</form>


// Добавление новости
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['add-post'])) {

// Перемнные с формы
$nav = $_POST['navigation'];
$title = $_POST['title'];
$content = $_POST['content'];

try {
global $connectdb;
$data = [
'navigation' => $nav,
'title' => $title,
'content' => $content,
'datarelease' => date("Y-m-d")
];


$query = $connectdb->prepare("INSERT INTO `articles` (navigation, title, content, datarelease) values (:navigation, :title, :content, :datarelease)");
$query->execute($data);
} catch (PDOException $e){
print "Ошибка! " . $e->getMessage() . "<br/>";
}
}
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.