-2

두 개의 코드가 있습니다. 어떤 것이 정확하고 안전하다는 것을 말씀해 주시겠습니까?어떤 코드가 '더 좋습니까?'

<input type="text" class="form-control contact__form-control" placeholder="Your Name *" id="name" value="<?php echo htmlspecialchars ($name); ?>"> 
<?php echo "<span class='text-danger'>$nameError</span>";?> 

또는

<input type="text" class="form-control contact__form-control" placeholder="Your Name *" id="name" value="<?php echo htmlspecialchars ($name); ?>"> 
<?php echo htmlspecialchars ("<span class='text- danger'>$nameError</span>");?> 

가 나는 모두가 1 하나를 사용 보았다하지만 난 PHP에서 보안상의 이유로 반드시 htmlspecialchars를 추가 할 수있는 그것의 좋은 무언가를 에코 때 읽어 보시기 바랍니다. 그래서 두 번째 코드가 맞는지 궁금합니다. 부트 스트랩 경고 클래스가 htmlspecialchars 뒤에 작동합니다

+0

두 코드를 모두 실행하려고 시도 했습니까? –

+0

PHP 문서를보고 htmlspecialchars가 어떤 작업을 수행하는지보십시오. – patwoj98

+3

코드 검토에 게시해야합니다 –

답변

1

일반 텍스트을 HTML 페이지에 출력해야 할 경우 HTML을 이스케이프 처리해야합니다. 그렇지 않으면 HTML 태그가 HTML로 해석됩니다.

텍스트가 HTML 태그 (예 : 사용자 이름)를 포함하지 않아도 사용자의 입력으로 제공되는 경우 위험한 HTML 태그가 포함되도록 위조 될 수 있으므로 안전상의 이유로 HTML에서 이스케이프 처리 할 수 ​​있습니다 어쨌든.

그러나 텍스트 만 이스케이프 처리하면 텍스트를 둘러싼 태그를 이스케이프 처리하지 마십시오.

<span class='text-danger'><?php echo htmlspecialchars($nameError); ?></span> 

또는 스크립트 시작 부분에서 사용자 입력을 삭제할 수 있습니다. 예 : 사용자 이름에서 영숫자가 아닌 문자를 모두 제거하십시오. 그렇다면 더 이상 HTML을 이스케이프 처리 할 필요가 없습니다.

+0

정말 고마워요. 당신이 말하는 것을 이해하십시오 –

+0

''과''태그를 반향시키고 싶기 때문에 '", htmlspecialchars ($ nameError) , "";?>'. –

+0

음 ... 왜? 스팬을 PHP 조각 밖에서 옮겼습니다. 포리머 용으로 더 좋습니다. – rustyx