Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Веб-программирование > JavaScript / HTML

JavaScript / HTML Создание динамической разметки страниц

Ответ
 
Опции темы
Старый 27.09.2013, 12:39   #1
St_AnGer
Элита
 
Аватар для St_AnGer
 
Регистрация: 21.01.2010
Адрес: Россия, Рязанская область, г.Михайлов
Сообщений: 2,067
Написано 1,185 полезных сообщений
(для 2,828 пользователей)
HTML, оторажение текста с переносами из textarea

Добрый день, Булчане!
Пишу тут самопальный бложик, и у меня имеется проблема.

Ситуация такая - имею textarea в который введён текст и следом сохранён в БД (MySQL, тип поля - longtext), имею страничку в которую данный текст из БД читается. Если читать текст в textarea, то переносы строк сохраняются. Если же в любое другое место - текст идёт сплошной строкой.

От сюда возникает следующий вопрос - как мне отобразить текст на страничке со всеми переносами? "Парсить" ручками переносы?

Конечно, можно банально писать в нужных местах текста в textarea <br>, но, помоему, это не православно. Собственно, вопрос то наверно глупый, но нагуглить что то не получилось. Или я не правильно гуглю. Потому прошу помощи.

upd проблему решил пока что функцией nl2br (php). Но советы всё равно лишними не будут.
__________________
Main PC:
Intel Core i5 4260U 1.44 GHz + LPDDR3 1x4096 1600 MHz + Intel HD Graphics 5000.

Asus Ёжик T101-MT:
Intel Atom N-570 1.66 Ghz + DDR2 2x1024 800 Mhz + Intel GMA 3150 128 Mb DDR2


Скачать Doom 2D: Remake v0.3.8a
(Offline)
 
Ответить с цитированием
Старый 27.09.2013, 13:59   #2
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: HTML, оторажение текста с переносами из textarea

Вероятно можно было бы использовать тэг http://htmlbook.ru/html/pre
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
St_AnGer (27.09.2013)
Старый 27.09.2013, 14:31   #3
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: HTML, оторажение текста с переносами из textarea

textarea использует \n (или там вроди платформо-зависимый символ) для указания новой строки. Естественно это будет игнорироваться при парсинге DOM'а, но в сорсах html будет выглядеть что с новой строки. Но в HTML новая строка обозначается либо другим элементом либо <br /> тегом. Следственно что ты сделал это использовал nl2br что конвертирует этот самый \n в <br /> теги.
Учти что т.к. ты сам постишь - тут ещё ок, но если кто-то другой сможет постить, у тебя будут проблемы - нужно парсить текст и избегать любой скрипт или html в тексте, либо у тебя будет риск js/html injection'а, что приводит к возможности запустить любой скрипт кем-либо через посты (или коменты например).
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
St_AnGer (27.09.2013)
Старый 27.09.2013, 15:39   #4
St_AnGer
Элита
 
Аватар для St_AnGer
 
Регистрация: 21.01.2010
Адрес: Россия, Рязанская область, г.Михайлов
Сообщений: 2,067
Написано 1,185 полезных сообщений
(для 2,828 пользователей)
Ответ: HTML, оторажение текста с переносами из textarea

Сообщение от moka Посмотреть сообщение
textarea использует \n (или там вроди платформо-зависимый символ) для указания новой строки. Естественно это будет игнорироваться при парсинге DOM'а, но в сорсах html будет выглядеть что с новой строки. Но в HTML новая строка обозначается либо другим элементом либо <br /> тегом. Следственно что ты сделал это использовал nl2br что конвертирует этот самый \n в <br /> теги.
Учти что т.к. ты сам постишь - тут ещё ок, но если кто-то другой сможет постить, у тебя будут проблемы - нужно парсить текст и избегать любой скрипт или html в тексте, либо у тебя будет риск js/html injection'а, что приводит к возможности запустить любой скрипт кем-либо через посты (или коменты например).
Честно, даже не подумал про возможность написания скриптов. Спасибо большое! Пока что конечно никто ничего постить кроме меня там не сможет, но к сведенью приму.
__________________
Main PC:
Intel Core i5 4260U 1.44 GHz + LPDDR3 1x4096 1600 MHz + Intel HD Graphics 5000.

Asus Ёжик T101-MT:
Intel Atom N-570 1.66 Ghz + DDR2 2x1024 800 Mhz + Intel GMA 3150 128 Mb DDR2


Скачать Doom 2D: Remake v0.3.8a
(Offline)
 
Ответить с цитированием
Старый 27.09.2013, 15:54   #5
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: HTML, оторажение текста с переносами из textarea

А если используешь SQL базы данных, то конечно ещё ковычки и всё такое могут поломать твои query, и привезти к SQL Injection.
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо moka за это полезное сообщение:
Reizel (09.10.2013), St_AnGer (27.09.2013)
Старый 28.09.2013, 06:45   #6
Phantom
Элита
 
Аватар для Phantom
 
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений
(для 1,833 пользователей)
Ответ: HTML, оторажение текста с переносами из textarea

При выводе текста из бд используй функцию htmlspecialchars, чтобы никто тебе html теги и скрипты, ворующие куки, в комментариях не запостил. Переносы строк можно через nl2br или какой-то свой "продвинутый" парсер написать, например регулярное выражение, которое будет много идущих подряд переносов строк сводить к одному <br /> и т. п. При сохранении данных в базу не забывай экранировать кавычки и другие символы, как это сделать, зависит от используемого драйвера бд, обычно они предоставляют для этого какой-либо функционал. Тег <pre> для форматирования текста использовать не надо, используй его разве что для вывода блоков исходного кода. Если помимо текста планиуется использование какой-либо разметки, то юзай bb коды. Можно, конечно, и html, но всё равно через какой-нибудь парсер, который ограничивает теги, что-то вроде bb кодов, но html.

Всё вышесказанное не является чётким руководством к действию, это просто напутствия новичку, со временем сам поймёшь что и как нужно делать, не отправлять же тебя с самого начала изучать фреймворки и какие-то сложные технологии.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
St_AnGer (28.09.2013)
Старый 28.09.2013, 18:42   #7
Randomize
[object Object]
 
Аватар для Randomize
 
Регистрация: 01.08.2008
Адрес: В России
Сообщений: 4,354
Написано 2,470 полезных сообщений
(для 6,850 пользователей)
Ответ: HTML, оторажение текста с переносами из textarea

Для работы с БД используй только PDO. Старых mysql_* стоит избегать.

nl2br, pre не очень правильные решения. Раз у тебя блог и сообщения будешь править ты сам, то не проще ли в админке использовать ckeditor или другой WYSIWYG.
__________________
Retry, Abort, Ignore? █
Intel Core i7-9700 4.70 Ghz; 64Gb; Nvidia RTX 3070
AMD Ryzen 7 3800X 4.3Ghz; 64Gb; Nvidia 1070Ti
AMD Ryzen 7 1700X 3.4Ghz; 8Gb; AMD RX 570
AMD Athlon II 2.6Ghz; 8Gb; Nvidia GTX 750 Ti
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо Randomize за это полезное сообщение:
Phantom (30.09.2013), St_AnGer (28.09.2013)
Старый 07.10.2013, 21:28   #8
Nex
Гигант индустрии
 
Аватар для Nex
 
Регистрация: 13.09.2008
Сообщений: 2,893
Написано 1,185 полезных сообщений
(для 3,298 пользователей)
Ответ: HTML, оторажение текста с переносами из textarea

Сообщение от St_AnGer Посмотреть сообщение
Пишу тут самопальный бложик
Тоже хочу, научите.
(Offline)
 
Ответить с цитированием
Старый 07.10.2013, 22:22   #9
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: HTML, оторажение текста с переносами из textarea

Сообщение от Nex Посмотреть сообщение
Тоже хочу, научите.
Берёшь и пишешь. Что значит "научите". В кодерах не учат, а только "учатся".
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Phantom (08.10.2013)
Старый 08.10.2013, 15:35   #10
Nex
Гигант индустрии
 
Аватар для Nex
 
Регистрация: 13.09.2008
Сообщений: 2,893
Написано 1,185 полезных сообщений
(для 3,298 пользователей)
Ответ: HTML, оторажение текста с переносами из textarea

Сообщение от moka Посмотреть сообщение
Берёшь и пишешь.
Ага. Сел в ракету и полетел на Луну. Круто, чо.

Почитать бы нормальные уроки по php и всему что нужно знать. Я находил только всякие видео уроки от попова под которые засыпал.
(Offline)
 
Ответить с цитированием
Старый 08.10.2013, 15:56   #11
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: HTML, оторажение текста с переносами из textarea

Те кто садились в ракету и летели - делали это впервые, у них небыло туториалов как садиться и лететь - они изучали всё сами. Так вот если ты полагаешься на туториалы - то ничему сам в итоге толковому не научишься, по кучи причин. Послушай лучше тех кто прошёл через кучу вариантов "обучения".

Учи всё сам, начни с настройки сервера и простых вещей - начни тупо кодить..
Я учился блиц3д ваще дома с стандартной документацией и без интернета. Мне не у кого было что-то спросить. И поэтому я его знал вдоль и поперёк как 5 своих пальцев.
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо moka за это полезное сообщение:
Phantom (09.10.2013), St_AnGer (08.10.2013)
Старый 09.10.2013, 05:09   #12
Nex
Гигант индустрии
 
Аватар для Nex
 
Регистрация: 13.09.2008
Сообщений: 2,893
Написано 1,185 полезных сообщений
(для 3,298 пользователей)
Ответ: HTML, оторажение текста с переносами из textarea

Сообщение от moka Посмотреть сообщение
Те кто садились в ракету и летели - делали это впервые, у них небыло туториалов как садиться и лететь - они изучали всё сами.
Wat? То есть ты вышел из дома, сел в ракету и начал рандомно жать кнопки и смотреть что происходит?

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

Так и тут можно было бы написать что надо знать/учить php, css. Может даже подкинуть пару сайтов где объясняют основы (хотя бы что в php надо в конце строки писать ";").

А хотя да, проще написать бред про то, что не надо, не у кого ничего спрашивать/интересоваться, а полностью все учить самому бессмысленно тратя время.
(Offline)
 
Ответить с цитированием
Старый 09.10.2013, 09:21   #13
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: HTML, оторажение текста с переносами из textarea

Мока имеет ввиду что нет готовых туториалов на все случаи жизни. ИМХО в этой теме надо начинать с понимания того как работает вэб сервер, потом узнать на что способен тот же php и его особенности. Если лень много самому писать, то можно взять какой-то например Zend Framework и изучать его. Либо найти исходник какого то простого блога и изучать его. Способов много дойти до нужной цели.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 09.10.2013, 09:37   #14
Phantom
Элита
 
Аватар для Phantom
 
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений
(для 1,833 пользователей)
Ответ: HTML, оторажение текста с переносами из textarea

Так и тут можно было бы написать что надо знать/учить php, css. Может даже подкинуть пару сайтов где объясняют основы (хотя бы что в php надо в конце строки писать ";").
http://www.php.net/manual/ru/ там тебе не только про точку с запятой написано, не нужно благодарности
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Nex (09.10.2013)
Старый 09.10.2013, 09:45   #15
Nex
Гигант индустрии
 
Аватар для Nex
 
Регистрация: 13.09.2008
Сообщений: 2,893
Написано 1,185 полезных сообщений
(для 3,298 пользователей)
Ответ: HTML, оторажение текста с переносами из textarea

Сообщение от pax Посмотреть сообщение
Мока имеет ввиду что нет готовых туториалов на все случаи жизни. ИМХО в этой теме надо начинать с понимания того как работает вэб сервер, потом узнать на что способен тот же php и его особенности. Если лень много самому писать, то можно взять какой-то например Zend Framework и изучать его. Либо найти исходник какого то простого блога и изучать его. Способов много дойти до нужной цели.
Думал что посоветуют что нибудь, ссылок дадут, скажут что надо учить/читать, но все как обычно по шаблону. Делай все сам с одной справкой, никого не слушай.

Помню как SubZero сказал что булка была создана как спасение для новичков от гнева тролей и всезнаек с какого то сайта игростроения, призывал всех помогать и в итоге булка стала тем же самым. В одном лишь разделе про Unity есть жизнь и в реакторе иногда побулькивают треды про политику и религию.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 07:43.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com