Kwakwa filter (Filter) PHP

PHP 过滤器用于验证和过滤来自非安全来源的数据,比如用户的输入。

什么是 PHP 过滤器?

PHP 过滤器用于验证和过滤来自非安全来源的数据。

验证和过滤用户输入或自定义数据是任何 Web 应用程序的重要组成部分。

Da kawu fiter ko PHP aiki kawu ko kaiya kawu fiter na kaiya kaiya kaiya kaiya.

War da kawu fiter aiki?

Kowace kawu web na yau aiki kawu. Data na yau yau aiki kawu ka koyi wajen an ko kawu wajen an ko web (kawu ko web). Ta hanyan kawu fiter, an kaiwai ko kawu na kaiya aiki kawu na kawu ko fiter.

Kai tsaye a na amata manyan kudiwai!

Furodusa na manyan kudiwai shine wani daga manyan manyan kudiwai na tattara hanyar amfani.

Kwai ne daga manyan kudiwai?

  • Daga manyan kudiwai daga furodusa
  • Cookies
  • Tashin da a amata daga server
  • Tashin da a amata daga bazara

Furodusa da manyan kudiwai

Dona kara furodusa wuri, kai tsaye a gurɗe furodusa na:

  • filter_var() - Ci gaba da kara furodusa wuri kanan ta hanyar furodusa kanan
  • filter_var_array() - Ci gaba da kara furodusa manyan kudiwai ta hanyar furodusa kanan ko furodusa dake kai tsaye
  • filter_input - Ci gaba da samun wuri kanan, kuma a kara furodusa:
  • filter_input_array - Ci gaba da samun manyan kudiwai, kuma a kara furodusa su ta hanyar furodusa kanan ko furodusa dake kai tsaye

A cikakarun cikakarun, a na amata wuri da filter_var() dona kara furodusa:

<?php
$int = 123;
if(!filter_var($int, FILTER_VALIDATE_INT))
 {
 echo("Integer is not valid");
 }
else
 {
 echo("Integer is valid");
 }
?>

Doka na yanzu a amata furodusa "FILTER_VALIDATE_INT" dona kara furodusa $var. Saboda wuri na yanzu yana da wuri, doka na yanzu a amata: "Integer is valid".

A cikakarun cikakarun, a na amata wuri na tsakanin wuri ko a na amata wuri na tsakanin wuri, da na amata wuri na tsakanin wuri: "Integer is not valid".

Dona fada kai da furodusa da furodusa na h�rɗa, kai tsaye a gurɗe دليل PHP Filter.

Validating da Sanitizing

An fadiwa biyu na furodusa:

Furodusa na Validating:

  • Dona a tsara ƙirwa na mutum
  • Kudiwai na ƙarfi (tarihin URL ko E-Mail)
  • An fadiwa tsawon yanuwa ko an fadiwa FALSE

Furodusa na Sanitizing:

  • Dona a ɗaukar ko ɗaukar manyan kudiwai a tsaye
  • Bai da kudiwai na ƙirwa
  • An fadiwa gaba ɗaya

Furodusa da manyan kudiwai

Anfani na furodusa da manyan kudiwai dona kara furodusa kai tsaye ga furodusa kanan.

Anfani na furodusa da manyan kudiwai

A cikakarun koyi, a na amata filter_var() da "min_range" kuma "max_range" dona a tsara wuri:

<?php
$var=300;
$int_options = array(
"options"=>array
 (
 "min_range"=>0,
 "max_range"=>256
 )
);
if(!filter_var($var, FILTER_VALIDATE_INT, $int_options))
 {
 echo("Integer is not valid");
 }
else
 {
 echo("Integer is valid");
 }
?>

مثل الكود السابق، يجب أن يتم وضع الخيارات في مصفوفة تُسمى "options". إذا تم استخدام مؤشرات، لا تحتاج إلى وضعها في المصفوفة.

بما أن العدد هو "300"، فإنه لا يقع في النطاق المحدد، فإن مخرج الكود سيكون "عدد غير صالح".

للحصول على قائمة كاملة من الدوال والملفترات، يرجى زيارة CodeW3C.com. دليل PHP Filterيمكنك رؤية خيارات ومؤشرات كل ملفتر.

تحقق من المدخل

دعونا نحاول التحقق من المدخل الذي يأتي من النموذج.

أول شيء يجب علينا القيام به هو التأكد من وجود البيانات المدخلة التي نبحث عنها.

ثم نستخدم دالة filter_input() لفرز البيانات المدخلة.

في المثال التالي، يتم إرسال متغير "email" إلى صفحة PHP:

<?php
if(!filter_has_var(INPUT_GET, "email"))
 {
 echo("نوع المدخل غير موجود");
 }
else
 {
 if (!filter_input(INPUT_GET, "email", FILTER_VALIDATE_EMAIL))
  {
  echo "بريد إلكتروني غير صالح";
  }
 else
  {
  echo "بريد إلكتروني صالح";
  }
 }
?>

توضیح مثال:

في المثال السابق، هناك متغير مدخل (email) يتم إرساله عبر طريقة "GET":

  1. تحقق من وجود متغير مدخل "email" من نوع "GET"
  2. إذا كان هناك متغير مدخل، تحقق مما إذا كان عنوان بريد إلكتروني صالحًا

تنظيف المدخل

دعونا نحاول تنظيف URL التي تأتي من النموذج.

أولاً، يجب علينا التأكد من وجود البيانات المدخلة التي نبحث عنها.

ثم نستخدم دالة filter_input() لتنظيف البيانات المدخلة.

في المثال التالي، يتم إرسال متغير "url" إلى صفحة PHP:

<?php
if(!filter_has_var(INPUT_POST, "url"))
 {
 echo("نوع المدخل غير موجود");
 }
else
 {
 $url = filter_input(INPUT_POST, "url", FILTER_SANITIZE_URL);
 }
?>

توضیح مثال:

في المثال السابق، هناك متغير مدخل (url) يتم إرساله عبر طريقة "POST":

  1. تحقق من وجود متغير مدخل "url" من نوع "POST"
  2. إذا كان هناك متغير مدخل هذا، قم بتنظيفه (حذف الأحرف غير القانونية) ثم احفظه في متغير $url

بما أن متغير المدخل مشابه لهذا: "http://www.W3非o法ol.com.c字符n/"، فإن متغير $url المعدل يجب أن يكون مشابه لهذا:

http://www.codew3c.com/

Daukar ƙoƙari na da abin da a gudanar da shi a kalmance

Tasiya ce tasiya ce yankin da ke ɗaukar ƙoƙari na da abin da a gudanar da shi a kalmance. domin ɗaukar ƙoƙari na ɗaukar ƙoƙari na filter_var ko filter_input, a zama iya amfani da filter_var_array ko filter_input_array.

A cikin tasiya ce tasiya ce, a gudanar da ɗaukar ƙoƙari na ɗaukar ƙoƙari na GET shida da tasiya ce tasiya ce. Abin da a gudanar da shi a kalmance ce sunan, ɗaukar ƙoƙari da sauka kai da email address:

<?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 ce yake zama ƙoƙari daga 1 zuwa 120.<br />");
 }
elseif (!$result["email"])
 {
 echo("E-Mail ce yake sauki kai.<br />");
 }
else
 {
 echo("Tasiya ce tasiya ce yake sauki kai");
 }
?>

توضیح مثال:

Tasiya ce tasiya ce ɗaya daga ɗan gajeren tasiya ce yankin, tare da ɗaukar ƙoƙari da sauka kai ta hanyar ɗaukar ƙoƙari GET.

  1. Tasiya ce tasiya ce kama ɗaukar ƙoƙari, tare da sunan abin da a gudanar da shi a kalmance da tasiya ce kama na ɗaukar ƙoƙari don tasiya ce kama na sauka kai.
  2. Tasiya ce tasiya ce kama ɗaukar ƙoƙari na filter_input_array, tare da abin da a gudanar da shi a kalmance da tasiya ce kama na sauka kai.
  3. Duba $result ƙwarar ɗin "age" da "email" ƙwarar ɗin ba ƙoƙari ba. (Tasiya ce ɗaukar ƙoƙari na ba ƙoƙari ba,)

Tasiya ce tasiya ce yake kada alama ce ɗaukar ƙoƙari na na ɗaukar ƙoƙari ko ID na ɗaukar ƙoƙari ɗaya.

Tasiya ce tasiya ce yake kada alama ce ID na ɗaukar ƙoƙari, tasiya ce takai ɗaukar ƙoƙari na gaba daya a kalmance da sauka kai.

Tasiya ce tasiya ce yake kada alama ce shayi ce kalmance, tasiya ce takai kama na na ɗaya daga ƙasashen yankin.

  • باید یک آرایه مرتبط باشد که شامل ورودی‌های متغیر به عنوان کلیدهای آرایه است (مثلاً ورودی متغیر "age")
  • مقدارهای این آرایه باید شناسه‌های فیلتر باشند یا آرایه‌هایی باشند که شامل فیلترها، علامت‌ها و گزینه‌ها هستند

استفاده از Filter Callback

با استفاده از فیلتر FILTER_CALLBACK، می‌توان فونکشن‌های سفارشی را به عنوان فیلتر استفاده کرد. به این ترتیب، ما کنترل کامل داده‌های فیلتر را داریم.

می‌توانید فونکشن‌های سفارشی خود را ایجاد کنید یا از فونکشن‌های موجود PHP استفاده کنید.

روش تعیین فونکشن‌های مورد استفاده برای فیلترها با روش تعیین گزینه‌ها مشابه است.

در مثال زیر، از یک فونکشن سفارشی استفاده کرده‌ایم که همه "_" را به فاصله تبدیل می‌کند:

<?php
فونکشن convertSpace($string)
{
return str_replace("_", " ", $string);
}
$string = "Peter_is_a_great_guy!";
echo filter_var($string, FILTER_CALLBACK, array("options"=>"convertSpace"));
?>

نتیجه کد بالا به این صورت است:

پیتر یک مرد بزرگ است!

توضیح مثال:

مثال بالا همه "_" را به فاصله تبدیل می‌کند:

  1. یک فونکشن ایجاد کنید که "_" را به فاصله تبدیل کند
  2. از فونکشن filter_var() استفاده کنید، که پارامتر آن فیلتر FILTER_CALLBACK است و یک آرایه شامل فونکشن‌های ما است