현재 위치: > 최신 기사 목록> Filter_var ()를 사용하여 쿼리 결과를 추가로 확인하십시오

Filter_var ()를 사용하여 쿼리 결과를 추가로 확인하십시오

M66 2025-05-28

PHP 개발 중에 MySQLI_RESULT 객체는 일반적으로 데이터베이스 쿼리에서 얻은 데이터 모음입니다. 사용자 또는 외부 소스의 양식 입력에서 데이터를 추출하고 데이터베이스에 저장하는 경우 쿼리 결과를 추가로 확인하고 필터링하는 것이 좋습니다. 이 기사는 MySQLIFilter_var () 기능을 사용하여 쿼리 결과를 안전하게 처리하는 방법을 소개합니다.

장면 소개

사용자 정보 테이블 사용자 의 사용자 데이터를 쿼리하고 반환 된 이메일 주소 및 URL 필드를 추가로 확인하고 필터링하기를 희망한다고 가정합니다.

샘플 데이터베이스 구조

 CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100),
    email VARCHAR(255),
    website VARCHAR(255)
);

쿼리 및 확인

MySQLI를 사용하여 데이터베이스에 연결하고 Filter_var ()를 사용하여 쿼리 결과의 이메일 주소와 URL을 확인하고 정리합니다.

PHP 샘플 코드

 <?php
// 데이터베이스 연결
$mysqli = new mysqli("localhost", "db_user", "db_password", "db_name");

if ($mysqli->connect_errno) {
    die("연결이 실패했습니다: " . $mysqli->connect_error);
}

// 쿼리 사용자 데이터
$sql = "SELECT id, name, email, website FROM users";
$result = $mysqli->query($sql);

if ($result && $result->num_rows > 0) {
    while ($row = $result->fetch_assoc()) {
        $name = htmlspecialchars($row['name'], ENT_QUOTES, 'UTF-8');

        // 이메일을 확인하십시오
        $email = filter_var($row['email'], FILTER_VALIDATE_EMAIL);
        if ($email === false) {
            echo "잘못된 사서함:{$row['email']}<br>";
        } else {
            echo "유효한 이메일:$email<br>";
        }

        // URL을 확인하십시오
        $website = filter_var($row['website'], FILTER_VALIDATE_URL);
        if ($website === false) {
            echo "잘못된 URL:{$row['website']}<br>";
        } else {
            // 도메인 이름을 대체하십시오 m66.net
            $parsed = parse_url($website);
            $scheme = isset($parsed['scheme']) ? $parsed['scheme'] : 'http';
            $path = isset($parsed['path']) ? $parsed['path'] : '';
            $query = isset($parsed['query']) ? '?' . $parsed['query'] : '';
            $modified_url = $scheme . "://m66.net" . $path . $query;
            echo "유효한 URL(도메인 이름을 교체 한 후):$modified_url<br>";
        }

        echo "<hr>";
    }
} else {
    echo "사용자 데이터가 발견되지 않았습니다。";
}

$mysqli->close();
?>

설명

  1. filter_var ($ value, filter_validate_email)는 사서함 형식이 유효한지 확인하는 데 사용됩니다.

  2. filter_var ($ value, filter_validate_url)는 URL의 정당성을 확인하는 데 사용됩니다.

  3. parse_url () 는 원래 URL을 찢은 다음 도메인 이름 부분을 m66.net 으로 바꾸는 데 사용됩니다.

  4. XSS 공격을 피하기 위해 사용자 이름과 같은 디스플레이 컨텐츠에 htmlspecialchars () 를 사용하는 것은 기본 보호에 사용됩니다.

요약

mysqli_result 에서 반환 한 데이터를 처리 할 때 데이터를 쿼리하고 표시하는 것이 안전하지 않습니다. Filter_var () 와 같은 함수를 사용하여 데이터가 외부 입력에서 나오거나 브라우저에 다시 출력 해야하는 경우 데이터를 추가로 확인하고 필터링해야합니다. URL 및 사서함을 확인하고 URL 도메인 이름을 균일하게 교체함으로써 응용 프로그램의 안정성과 보안을 향상시킬 수 있습니다.