За последние 24 часа нас посетили 22106 программистов и 1394 робота. Сейчас ищет 691 программист ...

HTML код заданный через форму textarea

Тема в разделе "PHP для новичков", создана пользователем VLK, 18 июн 2014.

  1. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    Это пример, есть страница 1.php на ней форма textarea куда я ввожу HTML код, я нажимаю отправить и.. полученные данные сохранятся в БД (где проходят экранирование).
    На 2.php должен вывестись введенный мною HTML код взятый из БД.

    я допустим туда вставляю:
    Код (Text):
    1. <span style="font-weight: bold;"></span>
    но выводится у меня этот текст с экранированием т.е.:
    Код (Text):
    1. <span style=\"font-weight: bold;\"></span>
    как быть? как избавиться от экранирования?
    нормально ли будет если я произведу замену вот так перед выводом данных:
    Код (PHP):
    1. str_replace( array('\"', "\'"), array('"', "'"),  $str );
    или это повлечет за собой еще какие то последствия, которые я по не опытности не замечу, а потом для меня это обернется..

    может есть какая то встроенная функция на этот случай?
     
  2. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.555
    Симпатии:
    1.754
    Покажите код записи в базу и вывода
     
  3. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    Извените за долгу заминку, был в отъезде, в БД код добавляет с экранированием, т.е. я ввожу:
    в базе:
     
  4. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.555
    Симпатии:
    1.754
    Что непонятно в просьбе показать код? Имеется в виду php код, а не что у вас там в БД добавляется.
     
  5. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.155
    Симпатии:
    1.769
    Адрес:
    :сердА
    Покажи:
    1) Как идет экранирование.
    2) Вывод из БД на страницу.
     
  6. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    там наверху было слово пример не просто так, т.к. на самом деле все это происходит на CMS Wordpress там сложно что то найти :)
     
  7. Хыиуду

    Хыиуду Активный пользователь

    С нами с:
    3 июн 2014
    Сообщения:
    618
    Симпатии:
    5
    Костыльный вариант - функция stripslashes
    А вообще - скорее всего, надо рыться в настройках и конфигах CMS.
     
  8. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    Спасибо, нашел решение, в Wordpress это функция wp_unslash()
    данная проблема связана с stripslashes.
     
  9. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.762
    Симпатии:
    1.322
    Адрес:
    Лень
  10. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.076
    Симпатии:
    1.237
    Адрес:
    там-сям
    на самом деле всё просто. надо:
    • при записи в базу:
      экранировать mysql_real_escape_string (или аналогичной для других расширений или использовать плейсхолдеры).больше ничего, блин, никаких нафиг доп. обработок.
    • при выводе на страницу:
      • htmlspecialchars - если НЕ нужны теги, или
      • ничего не экранировать, если нужен html.
    strpslashes и обратные ей функции забыть как страшный сон.
     
  11. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Вот после такого нужно руки отрывать по плечи и вставлять зубочистки.
    А вообще вордпесы, джумлы гиблые двиги и просто на свалку надо гнать таких как они.