2017-04-07 4 views
0

아래 PHP 코드는 HTML 텍스트 입력에서 가져온 문자열을 인쇄합니다.HTML 텍스트 입력에서 ' r n'인 코드

<div class="form-group"> 
<label for="sender">Your text</label> 
<input type="text" name="sender" id="sender" class="form-control" placeholder="example" /> 
</div> 

<?php 
print $_POST["sender"]." \r\nSecond senetence."; 
?> 

두 번째 문자는 연결 문자열에 \r\n입니다.

HTML form

I 입력

: \r\nFirst sentence. HTML 텍스트 입력에서 출력은 다음과 같습니다

\r\nFirst sentence. Second sentence. 

이유는 첫째 \r\n 그대로 촬영하고 어떻게이 문제를 해결할 수 있습니까?

나는 '\r\n' "\r\n" \\r\\n을 시도했지만 작동하지 않는 것 같습니다. 또한 \r\n을 PHP 문자열에 넣으므로 <br />, &#13 and &#10이 작동하지 않습니다.

+0

당신의 html 원본을보십시오; 줄 바꿈은 괜찮습니다. –

+0

또한 post 메소드가있는 양식이 필요합니다. 그것은 알 수 없습니다. –

+0

* " '\ r \ n' '시도했습니다."- FYI : 작은 따옴표로 구문 분석하지 않습니다. –

답변

1

코드를 변경할 수 없으면 더 복잡하지만 여전히 가능합니다.

브라우저가 텍스트 필드에 입력 한 모든 것을 필터링/인코딩/위생 처리하므로 해당 단계를 수행해야합니다.

나의 제안은 다음과 같습니다

  • 사용 파이어 폭스
  • 설치 확장 TamperData
  • 당신은, 예를 들면 보낼 텍스트를 수정하는 데 사용 처음에 %0D%0A을 삽입하십시오. URL 인코딩 된 버전은 \r\n입니다.

다소 번거롭지만 할 수 있습니다.

+0

지금 TamperData 사용법을보고 있습니다. –

+0

정말 고마워요. Worked는 첫 번째 시도에서 매력을 좋아했습니다. –

+0

여러분을 환영합니다! – jotaelesalinas

0

<input type="*">은 개행을 허용하지 않습니다.

대신 <textarea rows="1"></textarea>을 사용하십시오.

줄 바꿈을 표시하려면 출력을 <pre> 또는 다른 <textarea>으로 표시해야합니다. 다른 가능성은 PHP의 nl2br()을 사용하는 것입니다.

+0

코드를 변경할 수 없으며 코드와의 상호 작용은 텍스트 입력을 통해 이루어집니다. –