За последние 24 часа нас посетили 15807 программистов и 1666 роботов. Сейчас ищут 823 программиста ...

Проблема с редактированием текста, веденного через форму...

Тема в разделе "Прочие вопросы по PHP", создана пользователем vetal5_5_5, 18 ноя 2008.

  1. vetal5_5_5

    vetal5_5_5 Активный пользователь

    С нами с:
    8 ноя 2008
    Сообщения:
    19
    Симпатии:
    0
    Необходимо, чтобы пользователь мог редактировать ранее введенную информацию.
    Так для защиты и автоматического замены переноса строки было сделано следующее:

    Код (Text):
    1. $text=htmlspecialchars($text);
    2.  //$text = str_replace("n","<br>",$text);
    3.  
    4. $text=stripslashes($text);
    5. $text= trim(str_replace("\n", "<br>", $text));
    Содержимое $text заносим в БД

    При необходимости редактировать в переменную $text2 заносим текст из БД
    Далее выводим для редактирования в форме:

    Код (Text):
    1. print <<<HERE
    2. <form name="form1" method="post" action="file.php">
    3. <p>Текст<br>
    4. <textarea  name="stih_text" id="stih_text"> $text2</textarea>
    5. </form>
    6. HERE;
    В результате выводиться текст с тегами... А не хотелось бы чтоб пользователь их видел.
    Пытался ввести
    Код (Text):
    1. $text2=htmlspecialchars($text2);
    , но не помагает...

    Если кто знает, подскажите. Заранее спасибо
     
  2. obsrv

    obsrv Активный пользователь

    С нами с:
    2 окт 2008
    Сообщения:
    238
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    А
    Код (Text):
    1. $text2 = str_replace("<br>", "\n", $text2)
    не помогает ?
     
  3. vetal5_5_5

    vetal5_5_5 Активный пользователь

    С нами с:
    8 ноя 2008
    Сообщения:
    19
    Симпатии:
    0
    нет, результат тот же...
     
  4. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    Код (Text):
    1.  
    2. $text=htmlspecialchars($text);
    3. $text = str_replace("\r\n","<br>",$text);
    4. /*.....*/
    5. $text=stripslashes($text);
    6. $text=str_replace("<br>","\r\n", $text);
    а если так?
    Ps/ кстати magic_quotes выключи и убери stripslashes
     
  5. vetal5_5_5

    vetal5_5_5 Активный пользователь

    С нами с:
    8 ноя 2008
    Сообщения:
    19
    Симпатии:
    0
    Спасибо, помогло. )))
     
  6. Hight

    Hight Старожил
    Команда форума Модератор

    С нами с:
    5 мар 2006
    Сообщения:
    7.153
    Симпатии:
    0
    Адрес:
    из злой параллельной вселенной
    А я текст в базе храню как есть. Только при выводе форматирую. ИМХО это правильно!
     
  7. Green Bear

    Green Bear Активный пользователь

    С нами с:
    25 мар 2007
    Сообщения:
    14
    Симпатии:
    0
    имхо это не имхо. так и должно быть.
     
  8. Hight

    Hight Старожил
    Команда форума Модератор

    С нами с:
    5 мар 2006
    Сообщения:
    7.153
    Симпатии:
    0
    Адрес:
    из злой параллельной вселенной
    Попробуй объясни это всем ;)
     
  9. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    Hight
    а вот и нет!
    правельно что-то при выводе, что-то при добавлении
    иначе, пример из жизни, парсер бб кодов 200 строк, каждое сообщение нужно прогнать через этот парсер, каждая строчка в парсере это регулярка,
    представляешь как растёт время при выводе хотябы 15 на страницу?

    но есть и бб коды которые парсить при добавлении нет смысла...
    Ps/ Или это ты пошутил?
     
  10. Hight

    Hight Старожил
    Команда форума Модератор

    С нами с:
    5 мар 2006
    Сообщения:
    7.153
    Симпатии:
    0
    Адрес:
    из злой параллельной вселенной
    Mr.M.I.T.
    Да знаю я это. Нашёл кому объяснять :) Всё от задачки зависит. Я вообще в некоторых проектах обработанный контент в обычные html-файлы клал.
     
  11. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    Hight
    ты просто так сказал, как будто, только так и больше вообще не как
    а новички поведутся...