php: mysql_(real_)escape_string херит данные... что делать?

M
На сайте с 20.08.2004
Offline
376
611

<?php

if (get_magic_quotes_gpc())
{
echo "on";
}
else echo "off";

$item = "aaaaaaa aaaa
bbbbbb

dddddd ddddd";
$escaped_item = mysql_escape_string($item);
echo ("Escaped string: " . nl2br($escaped_item));
?>

------

<?
echo ("Escaped string: " . nl2br($item));
?>

------

<?

echo ("Escaped string: " .($item));

?>

выводит вот такое


off

Escaped string: Zak\'s and Derick\'s \r\n\r\nLaptop
------

Escaped string: Zak's and Derick's <br />
<br />
Laptop
------

Escaped string: Zak's and Derick's

Laptop

в третем случае все правильо, в первом выводит голые \r\n\r\n.

Те, если я получаю строку с textarea и использую mysql_(real_)escape_string то получаю строку в которой вместо перевода каретки \r\n\r\n.

Как это побороть?

Спасибо

отец сыночка, лапочки дочки и еще одного сыночка
dkameleon
На сайте с 09.12.2005
Offline
386
#1
Miracle:
Те, если я получаю строку с textarea и использую mysql_(real_)escape_string то получаю строку в которой вместо перевода каретки \r\n\r\n.

это и есть эскейпнутая строка для вставки в базу. её не надо бороть. её надо использовать по назвачению

Дизайн интерьера (http://balabukha.com/)
M
На сайте с 20.08.2004
Offline
376
#2
dkameleon:
это и есть эскейпнутая строка для вставки в базу. её не надо бороть. её надо использовать по назвачению

Все отлично. Допустим! Но когда я получаю ее из БД она такая как я ее туда положил. А значит проблему описанную выше это не решает!

Mad_Man
На сайте с 10.11.2008
Offline
162
#3
Miracle:
Все отлично. Допустим! Но когда я получаю ее из БД она такая как я ее туда положил. А значит проблему описанную выше это не решает!

Все опасные символы должны эскейпиться, не доходя до SQL запроса, экранирование работает корректно. И перейдите уже на mysqli.

dkameleon
На сайте с 09.12.2005
Offline
386
#4
Miracle:
Все отлично. Допустим! Но когда я получаю ее из БД она такая как я ее туда положил. А значит проблему описанную выше это не решает!

это значит, что перед складированием в базу она ещё раз эскейпится.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий