Не думал, что буду обращаться.
Это больше тема-консультация.
Во время использования mysql_escape_string заметил забавнейший парадокс:
$string="\r\n";//перевод каретки
Но если сделать так:
$string=mysql_escape_string($string);
echo $string;
мы получаем \r\n но уже не как перевод строки, а как обычную текстовую строку.
Но парадокс вот в чём - когда же мы занесём это значение в базу данных со строки оно опять превратиться в перевод.
Практическая сторона вопроса:
сначала фильтрую переменную от пользователя, и вывожу её в браузер в текстареа в случае ошибки.
Но случается парадокс, и все переносы строк заменяются на видимый \r\n.
Но если занесу в базу данных - то этого не наблюдается - и то, что было видимым \r\n опять становиться переводом.
Почему так случается?
Желание стать программистом из-за того, что вам нравляться компьютерные игры-это все равно, что желание стать гинекологом из-за того, что вам нравиться секс
#3.
JInn
Off
(2)
Участник
2009.06.14 20:08
Избежать такой проблемы можно используя mysql_escape_string конкретно в запросе, типа
mysql_query("INSERT INTO `tabl` SET `id`='".mysql_escape_string($_POST['id'])."' ");
Как все таки сложно быть ботом...
Дык вот в чём вопрос: выходит они слэшируються в запросе, а уже в базе данных их нет?
Желание стать программистом из-за того, что вам нравляться компьютерные игры-это все равно, что желание стать гинекологом из-за того, что вам нравиться секс
#5.
JInn
Off
(2)
Участник
2009.06.14 20:08
Не в запросе а после обработки функцией. Слеши нужны только чтобы вставить данные в базу. После этого они само собой удаляются
Как все таки сложно быть ботом...