반응형
PHP에서 HTML 양식 입력 기본값을 올바르게 이스케이프하는 방법은 무엇입니까?
다음 두 개의 html / php 스 니펫이 제공됩니다.
<input type="text" name="firstname" value="<?php echo $_POST['firstname']; ?>" />
과
<textarea name="content"><?php echo $_POST['content']; ?></textarea>
에코 된 $_POST변수에 어떤 문자 인코딩을 사용해야 합니까? 내장 된 PHP 함수를 사용할 수 있습니까? $_POST값이 아직 인코딩되지 않았다고 가정하십시오 . 마법은 아무것도 인용하지 않습니다.
사용 htmlspecialchars($_POST['firstname'])하고 htmlspecialchars($_POST['content']).
htmlspecialchars()사용자에게 표시하기 전에 항상 문자열을 이스케이프 하십시오.
htmlspecialchars 는 두 경우 모두 작동합니다. input경우 에 따옴표가 문제가되지 않도록 다른 플래그 옵션을 살펴보십시오 .
다소 길다는 것을 감안할 때 함수에 넣을 것입니다.
<?PHP
function encodeValue ($s) {
return htmlentities($s, ENT_COMPAT|ENT_QUOTES,'ISO-8859-1', true);
}
?>
여기에는 작은 따옴표와 큰 따옴표가 인코딩되었는지 확인하기 위해 ENT_QUOTES 가 있지만 빈 문자열을 삽입하는 대신 특수 문자 (José와 유사) 도 인코딩 합니다.
그런 다음 다음을 수행 할 수 있습니다.
<input type="text" name="firstname" value="<?= encodeValue($_POST['firstname']) ?>" />
과
<textarea name="content"><?= encodeValue($_POST['content']) ?></textarea>
나는 자주 사용
<input type="text" name="firstname" value=<?php echo json_encode($_POST['firstname']); ?>/>
반응형
'program story' 카테고리의 다른 글
| 다각형 교차를위한 간단한 알고리즘 (0) | 2020.11.28 |
|---|---|
| Windows 프로그램에서 WM_QUIT, WM_CLOSE 및 WM_DESTROY의 차이점은 무엇입니까? (0) | 2020.11.28 |
| 아무것도 출력하지 않는 Python 로깅 (0) | 2020.11.28 |
| Akka-액터의 인스턴스를 몇 개 만들어야합니까? (0) | 2020.11.28 |
| MySQL : 저장 프로 시저 내의 트랜잭션 (0) | 2020.11.28 |