PHP의 filter_input() 함수는 외부에서 들어오는 변수(예: GET, POST 등)를 이름으로 가져와, 지정된 필터를 통해 검증·정제(sanitizing)하는 데 사용됩니다. 사용자 입력을 안전하게 처리해야 하는 웹 개발 환경에서 SQL 인젝션이나 XSS 같은 보안 취약점을 방지하는 기본적인 도구로 활용됩니다.
문법(Syntax)
filter_input(type, var, filtername, options)
매개변수(Parameters)
type − 검사할 입력의 종류를 나타내며, 다음 다섯 가지 상수 중 하나를 사용합니다.
INPUT_GET, INPUT_POST, INPUT_COOKIE, INPUT_SERVER, INPUT_ENVvar − 필터링할 대상 변수의 이름입니다.
filtername − 적용할 필터의 이름 또는 필터 ID입니다. 생략하면 기본값인 FILTER_DEFAULT가 사용됩니다.
options − 필터에 적용할 추가 옵션이나 플래그를 연관 배열 형태로 지정합니다. 이 매개변수는 선택 사항입니다.
반환 값(Return)
filter_input() 함수는 다음과 같은 값을 반환합니다.
성공 시: 필터링된 변수의 값을 반환합니다.
실패 시:
false를 반환합니다.변수가 설정되지 않은 경우:
null을 반환합니다.
예제(Example)
아래 예제는 POST 방식으로 전송된 'email' 값이 유효한 이메일 형식인지 FILTER_VALIDATE_EMAIL 필터를 사용해 검사합니다.
<?php
if (!filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL)) {
echo "E-Mail isn't valid!";
} else {
echo "E-Mail is valid!";
}
?>
POST 요청으로 전달된 email 값이 올바른 이메일 형식이 아니라면 조건문 안의 코드가 실행됩니다.
출력(Output)
유효하지 않은 이메일이 전송된 경우의 출력 결과는 다음과 같습니다.
E-Mail isn't valid!