فیلتر ورودی های چندگانه ی

یک فرم HTML همیشه از بیش از یک فیلد ورودی تشکیل شده است. برای جلوگیری ازچندین بار فراخوانی توابع filter_var یا filter_input ٫ ما می توانیم توابع filter_var_array یا filter_input_array را استفاده کنیم.

مثال: در این مثال ما تابع filter_input_array را برای فیلترکردن سه متغیر که با استفاده از متد GET ارسال شده اند استفاده می کنیم.(نام، سن و آدرس ایمیل)

<?php
$filters = array("name" => array("filter"=>FILTER_SANITIZE_STRING),
                 "age" => array("filter"=>FILTER_VALIDATE_INT,
                                "options"=>array("min_range"=>1,"max_range"=>120)),
                 "email"=> FILTER_VALIDATE_EMAIL);
$result = filter_input_array(INPUT_GET, $filters);

if (!$result["age"])
  {
  echo("Age must be a number between 1 and 120.<br />");
  }
elseif(!$result["email"])
  {
  echo("E-Mail is not valid.<br />");
  }
else
  {
  echo("User input is valid");
  }
?>

توضیح مثال:

مثال بالا سه ورودی (name,age,email) دارد که با استفاده از متد "GET" به آن ارسال شده است:

  1. یک آرایه شامل نام متغیرهای ورودی و فیلترهای مصرفی برای متغیرهای ورودی مشخص شده است.
  2. تابع ()filter_input_array را همراه با متغیرهای ورودی GET و آرایه ای که تعیین کردیم فراخوانی می کنیم.
  3. متغیرهای "email" و "age" را برای ورودی های نامعتبر در متغیر result$ چک می کند.(اگر هرکدام از متغیرهای ورودی نامعتبر باشند٫ آن متغیر ورودی پس از تابع ()filter_input_array برابر با FALSE قرار خواهد گرفت)

توجه: پارامتر دوم تابع ()filter_input_array می تواند یک آرایه یا یک صافی خاص باشد. اگر پارامتر یک صافی یا فیلتر خاص باشد تمام مقادیر در آرایه ی ورودی بوسیله ی صافی مشخص شده فیلتر می شوند، اگر پارامتر یک آرایه است باید قواعد زیر را دنبال کند:

  • باید یک آرایه ی انجمنی باشد.(PHP Arrays)
  • کلید یا ایندکس آرایه باید با نام ورودی ها یکی باشد.
  • مقدار آرایه باید یک صافی خاص یا یک آرایه دیگر شامل صافی و flagها و optionها باشد.

آموزش های مرتبط

آموزش PHP-فیلتر ورودی ها