Я пытаюсь использовать функцию php nl2br() для преобразования символов \ r \ n в теги <br>
по электронной почте. Кажется, что есть какой-то конфликт, когда я пытаюсь использовать его с mysqli_real_escape_string(). Я могу проверить отдельно, что функция mysqli_real_escape_string() дает правильный вывод и что функция nl2br() правильно преобразует соответствующие символы в теги <br>
, но они не будут работать вместе. Зачем?!Проблемы с nl2br() и mysqli_real_escape_string(), работающие вместе
Я могу подтвердить, nl2br работы:
$message= "This\r\nis\n\ra\nstring\r";
$message= nl2br($message);
echo($message);
выход:
"This is a string"
Я могу подтвердить mysqli_real_escape_string() работает:
//assume $_POST['message'] = "this is a string"
$message = mysqli_real_escape_string($connection, $_POST['message']);
echo($message);
выход:
This\r\nis\n\ra\nstring\r
Когда я использую их вместе:
$message = nl2br(mysqli_real_escape_string($connection, $_POST['message']));
Выход:
This\r\nis\r\na\r\nstring
Почему вы используете 'nl2br' на строки, возвращаемой' mysqli_real_escape_string'? – PeeHaa
Ускорение должно быть операцией ** LAST **, которую вы выполняете на строке. Выполнение дальнейших манипуляций с экранированной строкой может фактически UNDO ускользнуть и снова открыть атаки на SQL-инъекции. –