forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   JavaScript / HTML (http://forum.boolean.name/forumdisplay.php?f=136)
-   -   HTML, оторажение текста с переносами из textarea (http://forum.boolean.name/showthread.php?t=18570)

St_AnGer 27.09.2013 12:39

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

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

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

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

upd проблему решил пока что функцией nl2br (php). Но советы всё равно лишними не будут.

pax 27.09.2013 13:59

Ответ: HTML, оторажение текста с переносами из textarea
 
Вероятно можно было бы использовать тэг http://htmlbook.ru/html/pre

moka 27.09.2013 14:31

Ответ: HTML, оторажение текста с переносами из textarea
 
textarea использует \n (или там вроди платформо-зависимый символ) для указания новой строки. Естественно это будет игнорироваться при парсинге DOM'а, но в сорсах html будет выглядеть что с новой строки. Но в HTML новая строка обозначается либо другим элементом либо <br /> тегом. Следственно что ты сделал это использовал nl2br что конвертирует этот самый \n в <br /> теги.
Учти что т.к. ты сам постишь - тут ещё ок, но если кто-то другой сможет постить, у тебя будут проблемы - нужно парсить текст и избегать любой скрипт или html в тексте, либо у тебя будет риск js/html injection'а, что приводит к возможности запустить любой скрипт кем-либо через посты (или коменты например).

St_AnGer 27.09.2013 15:39

Ответ: HTML, оторажение текста с переносами из textarea
 
Цитата:

Сообщение от moka (Сообщение 267702)
textarea использует \n (или там вроди платформо-зависимый символ) для указания новой строки. Естественно это будет игнорироваться при парсинге DOM'а, но в сорсах html будет выглядеть что с новой строки. Но в HTML новая строка обозначается либо другим элементом либо <br /> тегом. Следственно что ты сделал это использовал nl2br что конвертирует этот самый \n в <br /> теги.
Учти что т.к. ты сам постишь - тут ещё ок, но если кто-то другой сможет постить, у тебя будут проблемы - нужно парсить текст и избегать любой скрипт или html в тексте, либо у тебя будет риск js/html injection'а, что приводит к возможности запустить любой скрипт кем-либо через посты (или коменты например).

Честно, даже не подумал про возможность написания скриптов. Спасибо большое! Пока что конечно никто ничего постить кроме меня там не сможет, но к сведенью приму.

moka 27.09.2013 15:54

Ответ: HTML, оторажение текста с переносами из textarea
 
А если используешь SQL базы данных, то конечно ещё ковычки и всё такое могут поломать твои query, и привезти к SQL Injection.

Phantom 28.09.2013 06:45

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

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

Randomize 28.09.2013 18:42

Ответ: HTML, оторажение текста с переносами из textarea
 
Для работы с БД используй только PDO. Старых mysql_* стоит избегать.

nl2br, pre не очень правильные решения. Раз у тебя блог и сообщения будешь править ты сам, то не проще ли в админке использовать ckeditor или другой WYSIWYG.

Nex 07.10.2013 21:28

Ответ: HTML, оторажение текста с переносами из textarea
 
Цитата:

Сообщение от St_AnGer (Сообщение 267700)
Пишу тут самопальный бложик

Тоже хочу, научите. :)

moka 07.10.2013 22:22

Ответ: HTML, оторажение текста с переносами из textarea
 
Цитата:

Сообщение от Nex (Сообщение 268375)
Тоже хочу, научите. :)

Берёшь и пишешь. Что значит "научите". В кодерах не учат, а только "учатся".

Nex 08.10.2013 15:35

Ответ: HTML, оторажение текста с переносами из textarea
 
Цитата:

Сообщение от moka (Сообщение 268379)
Берёшь и пишешь.

Ага. Сел в ракету и полетел на Луну. Круто, чо.

Почитать бы нормальные уроки по php и всему что нужно знать. Я находил только всякие видео уроки от попова под которые засыпал.

moka 08.10.2013 15:56

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

Учи всё сам, начни с настройки сервера и простых вещей - начни тупо кодить..
Я учился блиц3д ваще дома с стандартной документацией и без интернета. Мне не у кого было что-то спросить. И поэтому я его знал вдоль и поперёк как 5 своих пальцев.

Nex 09.10.2013 05:09

Ответ: HTML, оторажение текста с переносами из textarea
 
Цитата:

Сообщение от moka (Сообщение 268415)
Те кто садились в ракету и летели - делали это впервые, у них небыло туториалов как садиться и лететь - они изучали всё сами.

Wat? То есть ты вышел из дома, сел в ракету и начал рандомно жать кнопки и смотреть что происходит? :user:

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

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

А хотя да, проще написать бред про то, что не надо, не у кого ничего спрашивать/интересоваться, а полностью все учить самому бессмысленно тратя время.

pax 09.10.2013 09:21

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

Phantom 09.10.2013 09:37

Ответ: HTML, оторажение текста с переносами из textarea
 
Цитата:

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

Nex 09.10.2013 09:45

Ответ: HTML, оторажение текста с переносами из textarea
 
Цитата:

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

Думал что посоветуют что нибудь, ссылок дадут, скажут что надо учить/читать, но все как обычно по шаблону. Делай все сам с одной справкой, никого не слушай.

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

St_AnGer 09.10.2013 10:00

Ответ: HTML, оторажение текста с переносами из textarea
 
Цитата:

Сообщение от Nex (Сообщение 268496)
В одном лишь разделе про Unity есть жизнь и в реакторе иногда побулькивают треды про политику и религию.

Потому что разделом по Unity управляет человек у которого есть дети, цель, желание помочь новичкам (и не только новичкам) и немного свободного времени.

Я конечно не ой какой спец (вообще совсем не спец, если точнее), но чем то помочь смогу. Сам же это сейчас делаю, а вдвоём может чего накумекаем совсем умное :) Если что - стукнись в асю (560030987), Вконтакте, вечером (часов в 5-6) буду онлайн. Можно ещё в скайп (st.anger855), но там я бываю ооочень редко, ввиду очень плохого интернета сейчас.

moka 09.10.2013 13:58

Ответ: HTML, оторажение текста с переносами из textarea
 
Nex, современная система школы, заставляет учеников следовать конкретным правилам, и если ты чуть отойдёшь "в сторону", то получишь кол "наказание". Такая система не помогает тебе взрослеть как самостоятельный человек, готовый к само-развитию, движению вперёд в неведомое. Такая система развивает в тебе страх перед ошибками, страх что-то предпринимать.
Поэтому предпринимателей очень мало. И посмотри на детей - они все интересуются космосом, все любопытные, а в 9ом класе что? Из них это вышибают так, что там и намёка на интерес и инициативу не остаётся.

И ты теперь говоришь про систему? Ало! Выйди из рамок узкого восприятия того как тебя учили должно быть, думай за себя а не так как тебе сказали.
Посмотри TED речи, там каждый второй говорит о проблемах современной системы обучения, она нихера не работает!


Теперь ты тут уже не первый день ноешь что тебя никто не учит. А мог бы заместо сесть бл**дь, и начать что-то делать. Нет, проще ведь поныть чем что-то делать, не правда ли?
Ну ной ной, далеко пойдёшь..

Reizel 09.10.2013 14:23

Ответ: HTML, оторажение текста с переносами из textarea
 
Цитата:

Сообщение от moka (Сообщение 268514)
Nex, современная система школы, заставляет учеников следовать конкретным правилам, и если ты чуть отойдёшь "в сторону", то получишь кол "наказание". Такая система не помогает тебе взрослеть как самостоятельный человек, готовый к само-развитию, движению вперёд в неведомое. Такая система развивает в тебе страх перед ошибками, страх что-то предпринимать.
Поэтому предпринимателей очень мало. И посмотри на детей - они все интересуются космосом, все любопытные, а в 9ом класе что? Из них это вышибают так, что там и намёка на интерес и инициативу не остаётся.

И ты теперь говоришь про систему? Ало! Выйди из рамок узкого восприятия того как тебя учили должно быть, думай за себя а не так как тебе сказали.
Посмотри TED речи, там каждый второй говорит о проблемах современной системы обучения, она нихера не работает!


Теперь ты тут уже не первый день ноешь что тебя никто не учит. А мог бы заместо сесть бл**дь, и начать что-то делать. Нет, проще ведь поныть чем что-то делать, не правда ли?
Ну ной ной, далеко пойдёшь..

ты сегодня какой-то нервный. Сказали ему раз, если умный - поймёт. Зачем ругаться?)

moka 09.10.2013 14:35

Ответ: HTML, оторажение текста с переносами из textarea
 
Цитата:

Сообщение от Reizel (Сообщение 268519)
ты сегодня какой-то нервный. Сказали ему раз, если умный - поймёт. Зачем ругаться?)

Ругаться? Я изливаюсь :D

На самом деле проблема распространённая, и мне не паралельно куда и чё идёт, а идёт оно не туда куда нужно, т.к. там самая система обучения совсем этому не способствует.

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

Reizel 09.10.2013 15:00

Ответ: HTML, оторажение текста с переносами из textarea
 
Цитата:

Сообщение от moka (Сообщение 268524)
Ругаться? Я изливаюсь :D

На самом деле проблема распространённая, и мне не паралельно куда и чё идёт, а идёт оно не туда куда нужно, т.к. там самая система обучения совсем этому не способствует.

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

ты хочешь сказать - "давай, будем изливать на него негатив"?
да лучше пойду чайку глотну. А он пока порыщет можт в инете чего нибудь

Тратить своё время на чувака, которому на тебя совершенно насрать. Вот знал бы я его лично - другое дело

Randomize 09.10.2013 15:45

Ответ: HTML, оторажение текста с переносами из textarea
 
Цитата:

Сообщение от Nex (Сообщение 268496)
Думал что посоветуют что нибудь, ссылок дадут, скажут что надо учить/читать, но все как обычно по шаблону. Делай все сам с одной справкой, никого не слушай.

Терпение, сударь, я пришёл.
http://archive-ipq-co.narod.ru
Пройди побольше заданий чтоб понять как работают php программы.
После этого можешь брать какой-нибудь фреймворк (или не брать) и пробовать написать свой блог. Вопросов естественно у тебя будет много, но большинство ответов есть на http://php.net/
Так же рекомендую сразу поставить хорошую IDE: NetBeans, PhpStorm или Eclipse. Они толстоваты, но экономят кучу времени при разработке.
Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 100 сообщение(ий)):
У вас нет прав, чтобы видеть скрытый текст, содержащийся здесь.

Из того на чём всё это дело тестировать могу порекомендовать OpenServer.

Phantom 09.10.2013 16:10

Ответ: HTML, оторажение текста с переносами из textarea
 
А я похапу до сих пор пишу просто в Notepad2, если человек никогда не работал с крупными IDE (из перечисленных работал с нетбинсом и эклипсом), я бы сначала порекомендовал обычный редактор. Меня бесит, что все IDE тормозят даже тогда, когда я просто ПИШУ КОД БЛЯТЬ.

OpenServer тоже рекомендую, сам сейчас на ноутбуке им пользуюсь.

Рекомендую сервис: http://inphp.org/ Зарегистрируйся, там можно проходить тесты по нарастающей сложности. Минус, правда, в том, что правильных ответов там не дают, и где ты ошибся придётся думать самому.

pax 09.10.2013 16:27

Ответ: HTML, оторажение текста с переносами из textarea
 
Для тех кто помнит все команды наизусть, тому блокнот хорошо, но имхо для новичков и для серьезной разработки нужна IDE.

Я, как немного пытавшийся писать на php, рекомендую PhpStorm, реактивные мозги хороший софт пишут. Для node js я так же использую WebStorm от реактивных мозгов.

moka 09.10.2013 20:27

Ответ: HTML, оторажение текста с переносами из textarea
 
Цитата:

Сообщение от pax (Сообщение 268534)
Для тех кто помнит все команды наизусть, тому блокнот хорошо, но имхо для новичков и для серьезной разработки нужна IDE.

Немного не соглашусь.

Если изучаешь - лучше как раз блокнот. Т.к. не будешь полагаться на автодополнение и будешь запоминать.

А если требуется продуктивность и есть конкретные цели - то да, IDE с хорошими фичами.

Либо по хардкору: vim или vintage mode в sublime text, имхо, ничего круче vim нету... Гуру когда на нём кодят, просто мозг выносит..

Phantom 09.10.2013 21:16

Ответ: HTML, оторажение текста с переносами из textarea
 
Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 100 сообщение(ий)):
У вас нет прав, чтобы видеть скрытый текст, содержащийся здесь.

pax 10.10.2013 07:27

Ответ: HTML, оторажение текста с переносами из textarea
 
Цитата:

Сообщение от moka (Сообщение 268551)
Немного не соглашусь.

Если изучаешь - лучше как раз блокнот. Т.к. не будешь полагаться на автодополнение и будешь запоминать.

А если требуется продуктивность и есть конкретные цели - то да, IDE с хорошими фичами.

Либо по хардкору: vim или vintage mode в sublime text, имхо, ничего круче vim нету... Гуру когда на нём кодят, просто мозг выносит..

Немного не соглашусь.

У каждого свои возможности по запоминанию. Я, например, не могу все подряд помнить, особенно в какой последовательности параметры в функции вставлять. С блокнотом за каждой функцией придется лезть в онлайн документацию, что очень медленно (хотя я и с ide так же гуглю все что мне нужно). Да и чтобы стать гуру надо много лет практики. IDE для меня спасение, особенно когда что-то новое приходится изучать.

Возможно это касается только меня, но кто знает какой процент таких же как я? :pardon:

PS: с текстовым редактором кстати еще и много уйдет времени на исправление орфографических ошибок, если такие часто делаешь.

Randomize 10.10.2013 09:16

Ответ: HTML, оторажение текста с переносами из textarea
 
Цитата:

Сообщение от Phantom (Сообщение 268558)
*** скрытый текст ***

Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 1 сообщение(ий)):
У вас нет прав, чтобы видеть скрытый текст, содержащийся здесь.

Reizel 10.10.2013 11:20

Ответ: HTML, оторажение текста с переносами из textarea
 
оч советую PSPad - тот же блокнот, но код подсветит + форматировать проще, чем в блокноте. А остальное - то же самое. + там таблица ASCII котов есть, что иногда выручает


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

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot