현재 위치: > 최신 기사 목록> 양식 처리 중 데이터 검증에 IS_Real 기능을 사용하십시오

양식 처리 중 데이터 검증에 IS_Real 기능을 사용하십시오

gitbox 2025-05-26

is_real () 란 무엇입니까?

IS_Real ()은 변수가 부동 소수점 번호인지 여부를 감지하기 위해 이전 버전에서 사용 된 PHP의 함수입니다. 기능적으로 IS_FLOAT () 또는 IS_DOUBLE () 에 해당합니다. 예를 들어:

 $price = 12.99;
if (is_real($price)) {
    echo "가격은 부동 소수점 번호입니다";
}

이 코드는 PHP 7.4 이전에 제대로 작동하지만 최신 PHP 버전 에서이 코드를 실행하면 더 이상 사용되지 않는 경고가 생성되고 미래 버전 에서이 기능을 완전히 제거합니다.


더 권장되는 연습 : is_float () 사용

양식 처리 중에 사용자 제출 데이터는 일반적으로 $ _post 또는 $ _get을 통해 문자열 형식으로 수신됩니다. 문자열의 내용이 숫자 인 경우에도 문자열이 부동 소수점 유형이 아니기 때문에 IS_FLOAT () 또는 IS_REAL ()을 직접 사용 하여이 값 결정합니다.

이 문제를 해결하려면 일반적으로 유형 확인을 수행하기 전에 문자열을 플로팅 포인트 번호로 변환해야합니다. 예는 다음과 같습니다.

 $input = $_POST['price'];

$floatVal = floatval($input);
if (is_float($floatVal)) {
    echo "입력은 유효한 부동 소수점 번호입니다";
} else {
    echo "올바른 부동 소수점 형식을 입력하십시오";
}

그러나이 접근법에는 잠재적 인 문제가 있습니다. floatVal ()은 문자열이 부동 소수점 번호로 변환하려고 시도하며 입력이 불법이더라도 0.0을 반환 할 수 있습니다. 따라서 더 안전한 방법은 Filter_Validate_float 와 함께 Filter_var ()를 사용하여 확인합니다.


Filter_var ()를 사용하여 플로팅 포인트 번호를보다 안전하게 확인하십시오

 $input = $_POST['price'];

if (filter_var($input, FILTER_VALIDATE_FLOAT) !== false) {
    echo "입력은 유효한 부동 소수점 번호입니다";
} else {
    echo "올바른 부동 소수점 형식을 입력하십시오";
}

이 방법은 "ABC12.34"와 같은 혼합 입력이 유효한 플로팅 포인트 수로 오인된다는 문제를 효과적으로 피할 수 있습니다.


예 : 완전한 양식 처리 코드

제출 주소 https://gitbox.net/submit.php : 가격 제출 양식이 있다고 가정합니다.

 <?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $price = $_POST['price'];

    if (filter_var($price, FILTER_VALIDATE_FLOAT) !== false) {
        echo "가격 제출이 성공적이었습니다,가치는입니다:" . floatval($price);
        // 여기에서 데이터베이스 또는 기타 논리를 계속 작성할 수 있습니다.
    } else {
        echo "실수:합법적 인 부동 소수점 번호를 입력하십시오!";
    }
}
?>
<form method="POST" action="https://gitbox.net/submit.php">
    <label for="price">가격을 입력하십시오:</label>
    <input type="text" name="price" id="price" required>
    <input type="submit" value="제출하다">
</form>