PHP의 nl2br() 함수를 사용하여 \ r \ n 문자를 전자 메일의 <br>
태그로 변환하려고합니다. mysqli_real_escape_string()을 사용하려고 할 때 어떤 종류의 충돌이있는 것으로 보입니다. mysqli_real_escape_string 함수()가 적절한 출력을 제공하고 nl2br() 함수가 적절한 문자를 <br>
태그로 올바르게 변환하고 있음을 별도로 확인할 수는 있지만 함께 작동하지는 않습니다. 왜?! 작동 nl2br 내가 확인할 수함께 작동하는 nl2br() 및 mysqli_real_escape_string() 문제
:
$message= "This\r\nis\n\ra\nstring\r";
$message= nl2br($message);
echo($message);
출력 :
"This is a string"
:
//assume $_POST['message'] = "this is a string"
$message = mysqli_real_escape_string($connection, $_POST['message']);
echo($message);
출력 :
,536This\r\nis\n\ra\nstring\r
내가 그들을 함께 사용:
$message = nl2br(mysqli_real_escape_string($connection, $_POST['message']));
출력 :
This\r\nis\r\na\r\nstring
왜'mysqli_real_escape_string'에 의해 반환 된 문자열에'nl2br'를 사용해야합니까? – PeeHaa
이스케이프는 문자열에 대해 수행하는 ** 마지막 ** 작업이어야합니다. 이스케이프 된 문자열을 추가로 조작하면 실제로 이스케이프 처리를 취소하고 SQL 주입 공격을 다시 열 수 있습니다. –