Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: добавить перевод строки при наличии функций htmlspecialchars() mysql_real_escape_string()

Сообщения:  [1-10]   [11-13] 

 
 автор: 1prom   (05.02.2011 в 16:49)   письмо автору
 
   для: neadekvat   (05.02.2011 в 16:39)
 

Ура! Я доволен как дитя!!!!
Второй вариант работает!

Спасиб neadekvat за терпение к моему незнанию)

  Ответить  
 
 автор: neadekvat   (05.02.2011 в 16:39)   письмо автору
 
   для: 1prom   (05.02.2011 в 16:36)
 

Попробуйте добавить в бд следующий текст, используя mysql_real_escape_string
Это
текст
с переносами.

А потом выведите его на экран (прежде достав из бд, конечно же), используя htmlspecialchars, и посмотрите исходный html код страницы.
Потом для интереса выведите на страницу этот же текст, но иначе: nl2br(htmlspecialchars());

  Ответить  
 
 автор: 1prom   (05.02.2011 в 16:36)   письмо автору
 
   для: neadekvat   (05.02.2011 в 16:24)
 

neadekvat - я не знал, что htmlspecialchars не съедает переносы... так откуда же они могут пропадать... от mysql_real_escape_string что ли?

  Ответить  
 
 автор: sim5   (05.02.2011 в 16:26)   письмо автору
 
   для: 1prom   (05.02.2011 в 16:22)
 

В базу свою вы можете помещать все что душа пожелает, даже "страшный" JavaScript. Если вы хотите, чтобы он исполнялся у клиента, то выводите как есть, а нет, значит пропускаете через htmlspecialchars. При выводе используйте эту функцию, а не при записи, меньше лишних хлопот будет.

  Ответить  
 
 автор: neadekvat   (05.02.2011 в 16:25)   письмо автору
 
   для: 1prom   (05.02.2011 в 16:22)
 

mysql_real_escape_string перед тем, как записать в базу данных.
htmlspecialchars перед тем, как вывести в браузер.
Это в общем случаи.
А еще лучше - посмотрите на задачу 21 (и на ее решения в разделе задач).

  Ответить  
 
 автор: neadekvat   (05.02.2011 в 16:24)   письмо автору
 
   для: 1prom   (05.02.2011 в 16:21)
 

> htmlspecialchars лучше использовать непосредственно перед выводом в поток, а не перед записью, чтобы данные хранились в первоначальном виде.

И вы не ответили, как узнали, что переносов строк нет. Просто потому, что вы применяете htmlspecialchars? Так он не трогает переносы строк.

  Ответить  
 
 автор: 1prom   (05.02.2011 в 16:22)   письмо автору
 
   для: sim5   (05.02.2011 в 16:12)
 

Да, я знаю, но какие функции безопасности тогда лучше использовать?

  Ответить  
 
 автор: 1prom   (05.02.2011 в 16:21)   письмо автору
 
   для: neadekvat   (05.02.2011 в 16:10)
 

Да, я узнал, потому как использую фильтры пере записью в БД. Думаю так и нужно. Или я не прав?

  Ответить  
 
 автор: sim5   (05.02.2011 в 16:12)   письмо автору
 
   для: 1prom   (05.02.2011 в 16:07)
 

Даже если вы поместите <br> в textarea, первод строки вы не получите в ней, нет для нее HTML, для нее все текст.

  Ответить  
 
 автор: neadekvat   (05.02.2011 в 16:10)   письмо автору
 
   для: 1prom   (05.02.2011 в 16:07)
 

Как вы узнали, что что-то теряется?

К тому же, htmlspecialchars лучше использовать непосредственно перед выводом в поток, а не перед записью, чтобы данные хранились в первоначальном виде.

  Ответить  

Сообщения:  [1-10]   [11-13] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования