Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Для профи > Проблема с экранированием кавычек в БД


Автор: AntiLL 3.4.2006, 23:25
Доброго времени суток!
Столкунлся с такой проблемой. Заносим текст из формы в БД. Естественно все кавычки, апострофы, слеши экранируем командой addslashes(). Так вот... При выводе на экран инфы из БД на моем компьютере, выводятся и все экранирующие слеши. На компьютере друга выводится все нормально.

Пример: вношу из формы в БД: "слово"
у меня выводится /"слово/"
у друга выводится "слово"

У меня БД MySQL 3.23.38
У друга БД MySQL 3.23.54

В чем проблема? Может быть в настройках? Помогите пожалуйста!

Автор: Serkys 4.4.2006, 00:18
Попробуй вместо addslashes() использовать mysql_escape_string(). Может помочь.
Добавлено @ 00:21
Цитата(AntiLL @ 4.4.2006, 00:25 Найти цитируемый пост)
у меня выводится /"слово/"
у друга выводится "слово"

Может ты при выводе используешь апострофы ( ' ), а твой друг двойные кавычки (")? Текст в апострофах не экранируется (за исключением самих апострофов).

Автор: Ciber SLasH 4.4.2006, 00:25
У тебя наверное двойное экранирование получается: в php.ini прописан наверно magic_quotes_gpc = On и ты ещё addslashes() делаешь.
Выход: поставвь magic_quotes_gpc = Off и экранируй данные для БД с помощью mysql_real_escape_string() и при выводе данных из БД делай так:
Код

if (get_magic_quotes_gpc()) {
  $value = stripslashes($value);
}

где: $value — данные из БД.

Автор: AntiLL 4.4.2006, 18:56
А все ясно... Большое спасибо! Я просто поставил magic_quotes_gpc =off и все. Думаю так будет лучше.

Автор: Serkys 4.4.2006, 19:28
AntiLL, отметь, пожалуйста, вопрос решённым (вверху страницы под полем для поиска).

Автор: AntiLL 5.4.2006, 00:04
Вроде пометил...

Автор: Serkys 5.4.2006, 00:07
Спасибо. Гораздо приятнее просматривать форум и видеть, где уже нет вопросов, а где ещё нужно помочь.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)