source

PHP에서 HTML 폼 입력 기본값을 올바르게 이스케이프하려면 어떻게 해야 합니까?

gigabyte 2022. 9. 18. 10:14
반응형

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

반응형