반응형
PHP에서 HTML 폼 입력 기본값을 올바르게 이스케이프하려면 어떻게 해야 합니까?
다음의 2개의 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는 두 경우 모두 작동합니다.에서 따옴표가 문제가 되지 않도록 다양한 플래그 옵션을 확인하십시오.input
사례.
길이가 좀 길어서 함수에 넣을 거야
<?PHP
function encodeValue ($s) {
return htmlentities($s, ENT_COMPAT|ENT_QUOTES,'ISO-8859-1', true);
}
?>
이것은 홑따옴표와 큰따옴표가 부호화되도록 하기 위해 ENT_QUOTES가 있지만 빈 문자열을 삽입하는 대신 특수 문자(Jose의 경우와 같음)도 인코딩합니다.
다음 작업을 수행할 수 있습니다.
<input type="text" name="firstname" value="<?= encodeValue($_POST['firstname']) ?>" />
그리고.
<textarea name="content"><?= encodeValue($_POST['content']) ?></textarea>
언급URL : https://stackoverflow.com/questions/6249151/how-can-i-properly-escape-html-form-input-default-values-in-php
반응형
'source' 카테고리의 다른 글
여러 OR에 대해 인덱스를 사용하는 MySQL이지만 IN에 대한 인덱스는 없으며 속도가 매우 느립니다. (0) | 2022.09.18 |
---|---|
JUnit assertEquals(예상치 2배, 실제치 2배, 엡실론 2배) (0) | 2022.09.18 |
잘못된 문자열 오프셋 경고 PHP (0) | 2022.09.18 |
모바일 브라우저 탐지 (0) | 2022.09.18 |
MySQL 트리거 - 변수에 SELECT 저장 (0) | 2022.09.18 |