За последние 24 часа нас посетили 20267 программистов и 1010 роботов. Сейчас ищут 442 программиста ...

экранирование текста

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

  1. serj011

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

    С нами с:
    18 апр 2010
    Сообщения:
    279
    Симпатии:
    0
    Перед занесением текста в базу пропускаю текст через несколько функций

    $text = addslashes($text);
    $text = htmlspecialchars($text);
    $text = stripslashes($text);
    $text = mysql_real_escape_string($text);

    далее при выводе текста на страницу, если в нем были ковычки текст выводиться следующим образом:

    Ну очень \"Новая\" заметка!

    т.е. ковычки экранируются слешами... как этого избежать? может быть можно его выводить через какую то функцию что бы не было слешев?
     
  2. imoisey

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

    С нами с:
    27 янв 2014
    Сообщения:
    113
    Симпатии:
    0
    Почитайте: http://habrahabr.ru/post/143035/
     
  3. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    При работе с базой надо защищаться от sql injection на все остальное можешь на данном этапе забить.
    используй mysql_real_escape_string
     
  4. serj011

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

    С нами с:
    18 апр 2010
    Сообщения:
    279
    Симпатии:
    0
    imoisey спасибо за ссылку... но тут у меня ситуация немного запутаннее.
    дело в том что на странице один и тот же текст я вывожу в двух местах: просто как заголовок и как <meta name="description"...>

    Вся проблема в том что если в тексте есть кавычки то в мета теге происходит ошибка при выводе

    <meta name="description" content="Очень "интересная" статья" />

    а если я экранирую текст
    $text = htmlspecialchars($text);
    то в самом заголовке тест выводится со слешами
    Очень \"интересная\" статья
    как быть?

    Добавлено спустя 31 минуту 23 секунды:
    кавычки при выводе оборачиваются слешами даже только после обработки одной функции
    $text = mysql_real_escape_string($text);

    Очень \"интересная\" статья

    я перефразирую своя вопрос еще раз раз

    как после обработки текста вывести его без слешей?
     
  5. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.632
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    покажите код.
     
  6. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
  7. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    добавили слеши, убрали слеши ))
    не знаете чем загрузить процессор?
     
  8. Ke1eth

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

    С нами с:
    16 мар 2012
    Сообщения:
    1.073
    Симпатии:
    11
    Адрес:
    заблудилса
    Что-то много появляется топиков однотипных (даже не просто однотипных... клонированых каких-то), кто опять свет включил?