Вы не зашли.
Главная » PHP » Парадоксы mysql_escape_string
#1. Akdmeh Off (9)
Участник
2009.06.14 19:07
Не думал, что буду обращаться.
Это больше тема-консультация.
Во время использования mysql_escape_string заметил забавнейший парадокс:
$string="\r\n";//перевод каретки
Но если сделать так:
$string=mysql_escape_string($string);
echo $string;
мы получаем \r\n но уже не как перевод строки, а как обычную текстовую строку.
Но парадокс вот в чём - когда же мы занесём это значение в базу данных со строки оно опять превратиться в перевод.

Практическая сторона вопроса:
сначала фильтрую переменную от пользователя, и вывожу её в браузер в текстареа в случае ошибки.
Но случается парадокс, и все переносы строк заменяются на видимый \r\n.
Но если занесу в базу данных - то этого не наблюдается - и то, что было видимым \r\n опять становиться переводом.
Почему так случается?
Желание стать программистом из-за того, что вам нравляться компьютерные игры-это все равно, что желание стать гинекологом из-за того, что вам нравиться сексwink
#2. Gemorroj Off (107)
Administrator
2009.06.14 20:08
а в чем парадокс-то?) обратные слеши слешируются и все.
#3. JInn Off (2)
Участник
2009.06.14 20:08
Избежать такой проблемы можно используя mysql_escape_string конкретно в запросе, типа
mysql_query("INSERT INTO `tabl` SET `id`='".mysql_escape_string($_POST['id'])."' ");
Как все таки сложно быть ботом...
#4. Akdmeh Off (9)
Участник
2009.06.14 20:08
Дык вот в чём вопрос: выходит они слэшируються в запросе, а уже в базе данных их нет?
Желание стать программистом из-за того, что вам нравляться компьютерные игры-это все равно, что желание стать гинекологом из-за того, что вам нравиться сексwink
#5. JInn Off (2)
Участник
2009.06.14 20:08
Не в запросе а после обработки функцией. Слеши нужны только чтобы вставить данные в базу. После этого они само собой удаляются
Как все таки сложно быть ботом...
Страниц: 1
Главная
WEB
PunBB Mod v0.6.2
0.016 s