Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: nl2br() не работает

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Estenny
Отправлено: 29 Декабря, 2011 - 22:12:37
Post Id



Гость


Покинул форум
Сообщений всего: 122
Дата рег-ции: Нояб. 2011  
Откуда: Москва


Помог: 0 раз(а)




Я обрабатываю комментарий функцией nl2br() перед тем, как сохранять в базу. Предварительно обрабатываю функциями mysql_real_escape_string(), trim() и htmlspecialchars() в порядке, указанном в этом сообщении (сначала mysql_real_escape_string(), потом trim(), потом htmlspecialchars()).

В итоге в базе у меня появляется просто обработанный текст, но без <br /> в местах, где есть перенос.

Какая может быть причина?
 
 Top
EuGen Администратор
Отправлено: 29 Декабря, 2011 - 22:29:21
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Давайте лучше кодом покажете.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Estenny
Отправлено: 29 Декабря, 2011 - 22:41:01
Post Id



Гость


Покинул форум
Сообщений всего: 122
Дата рег-ции: Нояб. 2011  
Откуда: Москва


Помог: 0 раз(а)




CODE (htmlphp):
скопировать код в буфер обмена
  1. $comment = nl2br(htmlspecialchars(mysql_real_escape_string(trim($_POST['comment']))));
  2.  
  3. $insert = mysql_query("INSERT INTO comments (article, author, comment) VALUES ('$id', '$author', '$comment')"); mysql_is_error($insert);


Код, который отвечает за добавление текста комментария.

(Отредактировано автором: 29 Декабря, 2011 - 22:44:20)

 
 Top
Саныч Модератор
Отправлено: 29 Декабря, 2011 - 23:14:30
Post Id



Участник


Покинул форум
Сообщений всего: 1365
Дата рег-ции: Июль 2010  
Откуда: Украина, Запорожье


Помог: 62 раз(а)






-----
Все возражают против того, что я гений, хотя никто еще так меня не назвал. - Орсон Уэллс
 
 Top
lamozavrik
Отправлено: 30 Декабря, 2011 - 11:24:38
Post Id



Частый гость


Покинул форум
Сообщений всего: 161
Дата рег-ции: Дек. 2011  


Помог: 4 раз(а)




Обрабатывайте при выборке из базы =))


Ну как то так вот =)

(Отредактировано автором: 30 Декабря, 2011 - 11:25:25)



-----
Ударим крепким сном по мукам совести!
 
 Top
Estenny
Отправлено: 30 Декабря, 2011 - 12:03:58
Post Id



Гость


Покинул форум
Сообщений всего: 122
Дата рег-ции: Нояб. 2011  
Откуда: Москва


Помог: 0 раз(а)




Саныч, ваш способ сработал, но не могли бы вы объяснить, почему?
 
 Top
Саныч Модератор
Отправлено: 30 Декабря, 2011 - 12:08:28
Post Id



Участник


Покинул форум
Сообщений всего: 1365
Дата рег-ции: Июль 2010  
Откуда: Украина, Запорожье


Помог: 62 раз(а)




Все дело в порядке функций. Через mysql_real_escape_string пропускаем в самую последнюю очередь, уже непосредственно перед отправкой в базу. Я точно не уверен, но после mysql_real_escape_string переносов строк уже попросту нет и естественно, что nl2br уже нечего будет изменять. Я просто для себя выработал такое правило: экранировать в самом конце, после всех обработок, если это требуется конечно.


-----
Все возражают против того, что я гений, хотя никто еще так меня не назвал. - Орсон Уэллс
 
 Top
Estenny
Отправлено: 30 Декабря, 2011 - 12:10:35
Post Id



Гость


Покинул форум
Сообщений всего: 122
Дата рег-ции: Нояб. 2011  
Откуда: Москва


Помог: 0 раз(а)




Саныч, понятно, спасибо.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB