Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > PHP: Общие вопросы > Экранизирование\деэкранизирование кавычек |
Автор: Staind 10.1.2008, 18:57 |
Есть скрипт, который заносит в базу данные. Есть также скрипт, которые читает данные в базе и выводит их на экран. Скрипт, заносящий в базу данные: Перед заношением в базу данных я данные обрабатываю функцией mysql_escape_string. Скрипт, читающий данные из базы: Перед отображением удаляю экранизирующие слэши функцией stripslashes. Есть ли другой способ деэранизирования слэшей? Через какой-нибудь if преположим?, чтобы не вызывать при отображении постоянно функцию stripslashes? |
Автор: SelenIT 10.1.2008, 19:06 |
Все способы другие (stripslashes при выводе - это черт-те что, а не способ). http://phpfaq.ru/slashes#rightusage |
Автор: Staind 10.1.2008, 20:58 |
По приведенной вами ссылке есть только "Как обрабатывать данные при вводе в базу". Я их предположим обработал в mysql_real_escape_string. Пример: Пользователь ввел вцфкп'wd" В базе это хранится теперь так вцфкп\'wd\" При отображении этих данных на страничке вот что появляется вцфкп\'wd\" Т.е. появляется эта строка но с добавленными слэшами. Мне их как раз и нужно убирать при отображении. А убираю я их функцией stripslashes. Вот и спросил, чтобы не делать эту рутийную работу каждый раз - нету какого-нибудь другого способа? |
Автор: SelenIT 10.1.2008, 21:34 |
Staind, читайте статью по ссылке целиком. Там написано, откуда на самом деле берутся мешающие слеши. |
Автор: Sunvas 10.1.2008, 22:54 | ||
Очень странно. Я бы даже сказал, что такое невозможно. Вот пример:
В браузере будет результат НЕ \"\"\", а """. Следовательно ошибка кроется где-то у Вас в коде. Может покажете его? |
Автор: SelenIT 11.1.2008, 00:25 |
Все возможно ![]() Нормальные ПХП-разработчики смотрят результат работы скрипта в коде страницы, а не в браузере. |
Автор: Staind 11.1.2008, 11:58 |
SelenIT, Вы правы, я, когда настраивал локальный сервер Апач, забыл в php.ini выставить magic_quotes_gpc="off" (и не нужно применять stripslashes) - поставил и все работает! Т.е. при заносе в базу проверяю функцией mysql_real_escape_string, а в самой базе хранится все супер, без дурацких слэшей. Спасибо всем Вам, что помогли. 2Sunvas, Да, вы правы, функцию stripslashes убрал, спасибо большое. |
Автор: GeneralElectric 11.1.2008, 17:08 |
Sunvas, ты путаешь содержимое строк с их синтаксисом. SelenIT, внимательнее ;-) |
Автор: MoLeX 11.1.2008, 17:15 |
GeneralElectric, тема помечена как решенной, не фиг ее поднимать!!! ![]() |