찾다
백엔드 개발PHP 튜토리얼여러 단일 사용자가 입력한 데이터를 필터링하려면 PHP의 filter_input_array() 함수를 사용하세요.

여러 단일 사용자가 입력한 데이터를 필터링하려면 PHP의 filter_input_array() 함수를 사용하세요.

PHP 개발에서는 사용자 입력 데이터를 처리해야 하는 경우가 많으며, 신뢰할 수 없는 사용자 입력 데이터는 SQL 주입, XSS 공격 등 다양한 보안 문제를 쉽게 일으킬 수 있습니다. 따라서 사용자 입력을 받을 때 입력 데이터가 시스템 보안을 향상시키기 위한 요구 사항을 충족하는지 확인하기 위해 데이터를 필터링하고 검증해야 합니다.

PHP는 단일 또는 다중 사용자 입력 데이터를 필터링하는 filter_input_array() 함수를 제공합니다. 이 기능은 필터를 사용하여 입력 데이터 세트의 유효성을 검사하고 필터링함으로써 입력 데이터의 보안을 향상시킬 수 있습니다.

이 글에서는 PHP의 filter_input_array() 함수를 사용하여 여러 단일 사용자가 입력한 데이터를 필터링하는 방법을 소개하고 해당 코드 예제를 제공합니다.

1. filter_input_array() 함수

filter_input_array() 함수는 여러 입력 데이터를 확인하고 필터링하는 데 사용됩니다. 이 함수의 정의는 다음과 같습니다.

filter_input_array ( int $type [, mixed $definition [, bool $add_empty = true ]] ) : mixed

이 함수는 세 개의 매개변수를 전달해야 합니다:

매개변수 1: type, 필터링해야 하는 데이터 유형을 나타냅니다. INPUT_GET, INPUT_POST, INPUT_COOKIE, INPUT_SERVER 등의 구체적인 의미는 다음과 같습니다. type,表示需要过滤的数据类型,可以是INPUT_GETINPUT_POSTINPUT_COOKIEINPUT_SERVER等,具体含义如下:

  • INPUT_GET:从$_GET中取得变量;
  • INPUT_POST:从$_POST中取得变量;
  • INPUT_COOKIE:从$_COOKIE中取得变量;
  • INPUT_SERVER:从$_SERVER中取得变量;
  • INPUT_ENV:从$_ENV中取得变量;
  • INPUT_REQUEST:从$_REQUEST中取得变量。

参数2:definition,表示输入数据的定义规则,可以使用一组规则数组来定义,具体格式如下:

array(
    '变量名' => array(
        'filter'   => 指定的验证器,
        'flags'    => 可选的标记,
        'options'  => 可选的选项,
        'name'     => 为变量指定一个替代名称,
    ),
    '变量名2' => array(
        'filter'   => 指定的验证器2,
        'flags'    => 可选的标记,
        'options'  => 可选的选项,
        'name'     => 为变量指定一个替代名称2,
    ),
    //...
);

其中,filter表示指定的验证器,可以是内置的验证器如FILTER_VALIDATE_EMAILFILTER_VALIDATE_INT等,也可以是自定义的验证器,flags表示可选的标记,options表示可选的选项,name表示为变量指定一个替代名称。

参数3:add_empty,表示是否对空值进行过滤和验证。

该函数的返回值是过滤后的数据,如果发生错误则返回false

二、使用filter_input_array()函数过滤多个单个用户输入的数据

下面我们给出一个使用filter_input_array()函数过滤多个单个用户输入的数据的示例。假设我们要验证并过滤一个包含用户名、邮箱和年龄的表单数据,满足以下要求:

  • 用户名只能包含字母和数字,且长度为6到12个字符
  • 邮箱必须是合法的邮箱格式
  • 年龄必须是数字,且在18到100之间

示例代码如下:

<?php
    $definitions = array(
        'username' => array(
            'filter'   => FILTER_VALIDATE_REGEXP,
            'options'  => array('regexp' => '/^[a-z0-9_-]{6,12}$/i'),
            'name'     => '用户名',
        ),
        'email' => array(
            'filter'   => FILTER_VALIDATE_EMAIL,
            'name'     => '邮箱',
        ),
        'age' => array(
            'filter'   => FILTER_VALIDATE_INT,
            'options'  => array('min_range' => 18, 'max_range' => 100),
            'name'     => '年龄',
        ),
    );

    $input_data = filter_input_array(INPUT_POST, $definitions);

    if (!$input_data) {
        echo '发生了一个错误。';
    } else {
        if (in_array(null, $input_data, true) || in_array(false, $input_data, true)) {
            echo '输入数据不正确。';
        } else {
            echo '输入数据正确。';
        }
    }
?>

其中,我们定义了一个包含3个输入数据的数组,然后通过filter_input_array()函数对这些输入数据进行验证和过滤。在上面的示例中,我们使用了一些内置的验证器FILTER_VALIDATE_REGEXPFILTER_VALIDATE_EMAILFILTER_VALIDATE_INT,它们分别用来验证输入数据是否符合正则表达式、是否符合邮箱格式、是否为整数。此外,使用了一些选项,如min_rangemax_range

  • INPUT_GET: $_GET에서;
  • INPUT_POST: $_POST에서 변수 가져오기 code>;
  • INPUT_COOKIE: $_COOKIE에서 변수 가져오기
  • INPUT_SERVER: 변수 가져오기 $_SERVER 변수에서
  • INPUT_ENV: $_ENV에서 변수 가져오기
  • INPUT_REQUEST: $_REQUEST에서.
파라미터 2: 입력 데이터의 정의 규칙을 나타내는 definition. 구체적인 형식은 다음과 같습니다. rrreee

그 중 filter 는 지정된 유효성 검사기를 나타내며 FILTER_VALIDATE_EMAIL, FILTER_VALIDATE_INT 등과 같은 내장 유효성 검사기가 될 수 있습니다. 사용자 정의 유효성 검사기인 flags는 선택적 태그를 나타내고 options는 선택적 옵션을 나타내며 name은 변수의 대체 이름을 나타냅니다.

매개변수 3: add_empty, 빈 값을 필터링하고 확인할지 여부를 나타냅니다.

🎜이 함수의 반환 값은 필터링된 데이터입니다. 오류가 발생하면 false가 반환됩니다. 🎜🎜2. filter_input_array() 함수를 사용하여 여러 단일 사용자가 입력한 데이터를 필터링하세요🎜🎜 아래에서는 filter_input_array() 함수를 사용하여 여러 단일 사용자가 입력한 데이터를 필터링하는 예를 제공합니다. 다음 요구 사항을 충족하기 위해 사용자 이름, 이메일 주소 및 나이가 포함된 양식 데이터를 검증하고 필터링한다고 가정해 보겠습니다. 🎜
  • 사용자 이름은 문자와 숫자만 포함할 수 있으며 길이는 6~12자입니다.
  • 이메일은 합법적인 이메일 형식이어야 합니다.
  • 나이는 18세에서 100세 사이의 숫자여야 합니다.
🎜샘플 코드는 다음과 같습니다: 🎜rrreee🎜Among 이를 위해 우리는 3개의 입력 데이터를 포함하는 배열을 정의합니다. 그런 다음 이를 확인하고 filter_input_array() 함수를 통해 필터링합니다. 위 예에서는 입력 데이터가 정규식, 메일박스 형식을 준수하는지, 정수인지 여부. 또한 min_range, max_range와 같은 일부 옵션을 사용하여 입력 데이터의 최소값과 최대값을 허용합니다. 마지막으로 if 문을 사용하여 입력 데이터가 유효한지 확인합니다. 🎜🎜3. 결론🎜🎜filter_input_array() 함수를 사용하면 여러 명의 단일 사용자가 입력한 데이터를 쉽게 확인하고 필터링할 수 있으며 데이터 보안이 향상됩니다. 이 기능을 사용할 때 입력 데이터의 유효성을 보장하기 위해 입력 데이터에 대한 규칙, 유효성 검사기, 옵션 등을 정의해야 합니다. 이 기능을 올바르게 사용하면 시스템 보안을 효과적으로 보호하고 일반적인 보안 취약성을 피할 수 있습니다. 🎜

위 내용은 여러 단일 사용자가 입력한 데이터를 필터링하려면 PHP의 filter_input_array() 함수를 사용하세요.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
PHP와 Python : 다른 패러다임이 설명되었습니다PHP와 Python : 다른 패러다임이 설명되었습니다Apr 18, 2025 am 12:26 AM

PHP는 주로 절차 적 프로그래밍이지만 객체 지향 프로그래밍 (OOP)도 지원합니다. Python은 OOP, 기능 및 절차 프로그래밍을 포함한 다양한 패러다임을 지원합니다. PHP는 웹 개발에 적합하며 Python은 데이터 분석 및 기계 학습과 같은 다양한 응용 프로그램에 적합합니다.

PHP와 Python : 그들의 역사에 깊은 다이빙PHP와 Python : 그들의 역사에 깊은 다이빙Apr 18, 2025 am 12:25 AM

PHP는 1994 년에 시작되었으며 Rasmuslerdorf에 의해 개발되었습니다. 원래 웹 사이트 방문자를 추적하는 데 사용되었으며 점차 서버 측 스크립팅 언어로 진화했으며 웹 개발에 널리 사용되었습니다. Python은 1980 년대 후반 Guidovan Rossum에 의해 개발되었으며 1991 년에 처음 출시되었습니다. 코드 가독성과 단순성을 강조하며 과학 컴퓨팅, 데이터 분석 및 기타 분야에 적합합니다.

PHP와 Python 중에서 선택 : 가이드PHP와 Python 중에서 선택 : 가이드Apr 18, 2025 am 12:24 AM

PHP는 웹 개발 및 빠른 프로토 타이핑에 적합하며 Python은 데이터 과학 및 기계 학습에 적합합니다. 1.PHP는 간단한 구문과 함께 동적 웹 개발에 사용되며 빠른 개발에 적합합니다. 2. Python은 간결한 구문을 가지고 있으며 여러 분야에 적합하며 강력한 라이브러리 생태계가 있습니다.

PHP 및 프레임 워크 : 언어 현대화PHP 및 프레임 워크 : 언어 현대화Apr 18, 2025 am 12:14 AM

PHP는 현대화 프로세스에서 많은 웹 사이트 및 응용 프로그램을 지원하고 프레임 워크를 통해 개발 요구에 적응하기 때문에 여전히 중요합니다. 1.PHP7은 성능을 향상시키고 새로운 기능을 소개합니다. 2. Laravel, Symfony 및 Codeigniter와 같은 현대 프레임 워크는 개발을 단순화하고 코드 품질을 향상시킵니다. 3. 성능 최적화 및 모범 사례는 응용 프로그램 효율성을 더욱 향상시킵니다.

PHP의 영향 : 웹 개발 및 그 이상PHP의 영향 : 웹 개발 및 그 이상Apr 18, 2025 am 12:10 AM

phphassignificallyimpactedwebdevelopmentandextendsbeyondit

스칼라 유형, 반환 유형, 노조 유형 및 무효 유형을 포함한 PHP 유형의 힌트 작업은 어떻게 작동합니까?스칼라 유형, 반환 유형, 노조 유형 및 무효 유형을 포함한 PHP 유형의 힌트 작업은 어떻게 작동합니까?Apr 17, 2025 am 12:25 AM

PHP 유형은 코드 품질과 가독성을 향상시키기위한 프롬프트입니다. 1) 스칼라 유형 팁 : PHP7.0이므로 int, float 등과 같은 기능 매개 변수에 기본 데이터 유형을 지정할 수 있습니다. 2) 반환 유형 프롬프트 : 기능 반환 값 유형의 일관성을 확인하십시오. 3) Union 유형 프롬프트 : PHP8.0이므로 기능 매개 변수 또는 반환 값에 여러 유형을 지정할 수 있습니다. 4) Nullable 유형 프롬프트 : NULL 값을 포함하고 널 값을 반환 할 수있는 기능을 포함 할 수 있습니다.

PHP는 객체 클로닝 (클론 키워드) 및 __clone 마법 방법을 어떻게 처리합니까?PHP는 객체 클로닝 (클론 키워드) 및 __clone 마법 방법을 어떻게 처리합니까?Apr 17, 2025 am 12:24 AM

PHP에서는 클론 키워드를 사용하여 객체 사본을 만들고 \ _ \ _ Clone Magic 메소드를 통해 클로닝 동작을 사용자 정의하십시오. 1. 복제 키워드를 사용하여 얕은 사본을 만들어 객체의 속성을 복제하지만 객체의 속성은 아닙니다. 2. \ _ \ _ 클론 방법은 얕은 복사 문제를 피하기 위해 중첩 된 물체를 깊이 복사 할 수 있습니다. 3. 복제의 순환 참조 및 성능 문제를 피하고 클로닝 작업을 최적화하여 효율성을 향상시키기 위해주의를 기울이십시오.

PHP vs. Python : 사용 사례 및 응용 프로그램PHP vs. Python : 사용 사례 및 응용 프로그램Apr 17, 2025 am 12:23 AM

PHP는 웹 개발 및 컨텐츠 관리 시스템에 적합하며 Python은 데이터 과학, 기계 학습 및 자동화 스크립트에 적합합니다. 1.PHP는 빠르고 확장 가능한 웹 사이트 및 응용 프로그램을 구축하는 데 잘 작동하며 WordPress와 같은 CMS에서 일반적으로 사용됩니다. 2. Python은 Numpy 및 Tensorflow와 같은 풍부한 라이브러리를 통해 데이터 과학 및 기계 학습 분야에서 뛰어난 공연을했습니다.

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

MinGW - Windows용 미니멀리스트 GNU

MinGW - Windows용 미니멀리스트 GNU

이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

WebStorm Mac 버전

WebStorm Mac 버전

유용한 JavaScript 개발 도구

Dreamweaver Mac版

Dreamweaver Mac版

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)