2013-12-06 1 views
2

Я нашел этот код replace(/\\r\\n/g, "<br />"); для замены новых строк на <br /> после ввода строк внутри текстового поля. Но я не могу найти ответы на вопрос о том, как сохранить его в базе данных.Замените новую строку на <br /> и сохраните ее в базе данных

Мои вопросы:

  1. Например, если я введу
    "Hello World
    !!!" in a textarea

    Будет ли это выглядеть как "Hello<br />World!!!" внутри базы данных? или
    Будет ли это выглядеть как "Hello\nWorld!!!" внутри базы данных?
    Но я попробовал его с <br />, и я получаю то, что хочу, поэтому я исправлю, что он будет выглядеть как первый?
  2. Как сохранить его в базе данных с помощью <br /> ???

    Ваш отзыв высоко ценится. Спасибо :)
+2

Вместо замены с
, используйте 'nl2br ($ datafromDB) 'при отображении данных –

+0

Thnanks sir, но что будет выглядеть в базе данных, когда в textarea содержится \ n ?? Мне просто любопытно, что я не могу найти
nor \ n. Нормально ли это видеть? Извините за плохой английский – AlexJaa

ответ

2

По той причине, я уже указано, вы дон Не хотите помещать HTML внутри базы данных, если вы не уверены, что он будет содержать только HTML.

Например, мое имя "Chris Völkel", если вы храните его как HTML в БД, оно будет выглядеть так: "Chris V&ouml;lkel". Проблема в том, что вы не можете использовать имя где-нибудь еще, где он не будет HTML.

Например, ваш клиент может попросить вас экспортировать данные БД в файл CSV. Вы в конечном итоге даете клиенту HTML внутри CSV-файла - не идеально, не так ли?

Вместо этого, вы должны кодировать данные в HTML, когда вы предоставляете его в веб-браузере:

$data = $_POST['data']; 
// ... 
$stmt->bind_param($data); 

А позже ...

echo nl2br(htmlspecialchars($data)); 
+0

Спасибо за ответ. Но я получаю эту ошибку. Уведомление: неопределенная переменная: stmt в C: \ xampp \ htdocs \ powersocial \ update_group.php в строке 9 Неустранимая ошибка: вызовите функцию-член bind_param() для не-объекта в C: \ xampp \ htdocs \ powersocial \ update_group.php в строке 9 – AlexJaa

+0

Это был * пример *. Не копируйте и не вставляете код, не зная, что он делает. – Christian

+0

Я заменяю $ data на $ update_con, и я использовал $ _GET [], поэтому я заменяю $ _POST [] на $ _GET []. – AlexJaa

4

использование

nl2br($string)

он автоматически перейдет <br /> «S, где символы новой строки в коде

http://php.net/manual/en/function.nl2br.php

+0

Нет, 'htmlspecialchars()' должен использоваться при рендеринге содержимого страницы: сохранение '' £ '' в БД возможно более полезно, чем '" £ "(подумайте о акцентах и ​​используя данные БД где-нибудь за пределами веб-среды). – Christian

+0

Извините @Christian неправильная функция, я отредактировал свой ответ, чтобы задуматься. Спасибо –

+0

Спасибо за ответ sir. В строке «echo nl2br (« foo is not \ n bar »); он имеет «\ n», это значит, что моя база данных должна иметь это, прежде чем отображать его? Извините за плохой английский – AlexJaa

Смежные вопросы