PHP – فیلترها (Filters)

اعتبارسنجی داده‌ها

اعتبارسنجی داده‌ها یعنی بررسی این که داده‌ها در فرم صحیح هستند یا نه.

بهداشت داده‌ها

بهداشت داده‌ها یعنی حذف هر کاراکتر غیرقانونی از داده‌ها.

گسترش فیلترهای PHP

فیلترهای PHP برای اعتبارسنجی و بهداشت ورودی‌های خارجی استفاده می‌شوند.

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

تابع filter_list() می‌تواند برای لیست کردن آنچه که گسترش فیلترهای PHP ارائه می‌دهد، استفاده شود:

<table>
  <tr>
    <td>نام فیلتر</td>
    <td>شناسه فیلتر</td>
  </tr>
  <?php
  foreach (filter_list() as $id => $filter) {
    echo '<tr><td>' . $filter . '</td><td>' . filter_id($filter) . '</td></tr>';
  }
  ?>
</table>

چرا از فیلترها استفاده کنیم؟

بسیاری از برنامه‌های وب ورودی‌های خارجی دریافت می‌کنند. ورودی/داده‌های خارجی می‌تواند شامل موارد زیر باشد:

  • ورودی کاربر از فرم
  • کوکی‌ها
  • داده‌های خدمات وب
  • متغیرهای سرور
  • نتایج پرس و جوهای پایگاه داده

همیشه باید داده‌های خارجی را اعتبارسنجی کنید! داده‌های نادرست می‌تواند به مشکلات امنیتی منجر شود و صفحه وب شما را خراب کند! با استفاده از فیلترهای PHP می‌توانید مطمئن شوید که برنامه شما ورودی‌های صحیحی دریافت می‌کند!

تابع filter_var()

تابع filter_var() هم برای اعتبارسنجی و هم برای بهداشت داده‌ها استفاده می‌شود.

تابع filter_var() یک متغیر را با یک فیلتر مشخص فیلتر می‌کند. این تابع دو پارامتر می‌گیرد:

  1. متغیری که می‌خواهید بررسی کنید
  2. نوع بررسی که باید استفاده شود

بهداشت یک رشته

مثال زیر از تابع filter_var() برای حذف تمام تگ‌های HTML از یک رشته استفاده می‌کند:

<?php
$str = "<h1>Hello World!</h1>";
$newstr = filter_var($str, FILTER_SANITIZE_STRING);
echo $newstr;
?>

اعتبارسنجی یک عدد صحیح

مثال زیر از تابع filter_var() برای بررسی این که متغیر $int یک عدد صحیح است یا نه، استفاده می‌کند. اگر $int یک عدد صحیح باشد، خروجی کد زیر خواهد بود: “عدد صحیح معتبر است”. اگر $int عدد صحیح نباشد، خروجی: “عدد صحیح معتبر نیست” خواهد بود:

<?php
$int = 100;
if (!filter_var($int, FILTER_VALIDATE_INT) === false) {
  echo("عدد صحیح معتبر است");
} else {
  echo("عدد صحیح معتبر نیست");
}
?>

نکته: filter_var() و مشکل با 0
در مثال بالا، اگر $int برابر با 0 بود، تابع بالا “عدد صحیح معتبر نیست” را برمی‌گرداند. برای حل این مشکل، از کد زیر استفاده کنید:

<?php
$int = 0;
if (filter_var($int, FILTER_VALIDATE_INT) === 0 || !filter_var($int, FILTER_VALIDATE_INT) === false) {
  echo("عدد صحیح معتبر است");
} else {
  echo("عدد صحیح معتبر نیست");
}
?>

اعتبارسنجی آدرس IP

مثال زیر از تابع filter_var() برای بررسی این که متغیر $ip یک آدرس IP معتبر است یا نه، استفاده می‌کند:

<?php
$ip = "127.0.0.1";
if (!filter_var($ip, FILTER_VALIDATE_IP) === false) {
  echo("$ip یک آدرس IP معتبر است");
} else {
  echo("$ip یک آدرس IP معتبر نیست");
}
?>

بهداشت و اعتبارسنجی آدرس ایمیل

مثال زیر از تابع filter_var() برای حذف تمام کاراکترهای غیرقانونی از متغیر $email استفاده می‌کند، سپس بررسی می‌کند که آیا آدرس ایمیل معتبر است یا نه:

<?php
$email = "john.doe@example.com";
// حذف تمام کاراکترهای غیرقانونی از ایمیل
$email = filter_var($email, FILTER_SANITIZE_EMAIL);
// اعتبارسنجی ایمیل
if (!filter_var($email, FILTER_VALIDATE_EMAIL) === false) {
  echo("$email یک آدرس ایمیل معتبر است");
} else {
  echo("$email یک آدرس ایمیل معتبر نیست");
}
?>

بهداشت و اعتبارسنجی URL

مثال زیر از تابع filter_var() برای حذف تمام کاراکترهای غیرقانونی از یک URL استفاده می‌کند، سپس بررسی می‌کند که آیا $url یک URL معتبر است یا نه:

<?php
$url = "https://www.w3schools.com";
// حذف تمام کاراکترهای غیرقانونی از یک URL
$url = filter_var($url, FILTER_SANITIZE_URL);
// اعتبارسنجی URL
if (!filter_var($url, FILTER_VALIDATE_URL) === false) {
  echo("$url یک URL معتبر است");
} else {
  echo("$url یک URL معتبر نیست");
}
?>

پست های مرتبط

مطالعه این پست ها رو از دست ندین!
JavaScript - رویدادها (Events)

JavaScript – رویدادها (Events)

رویدادهای HTML رویدادها در HTML، “اتفاقاتی” هستند که برای عناصر HTML رخ می‌دهند. این اتفاقات می‌توانند ناشی از کار...

بیشتر بخوانید
JavaScript - سازنده‌های شیء (Object Constructors)

JavaScript – سازنده‌های شیء (Object Constructors)

ساخت آبجکت با تابع سازنده (Object Constructor Function) برای ساخت چندین آبجکت مشابه، از تابع سازنده استفاده می‌شود. این...

بیشتر بخوانید
JavaScript - نمایش شیء (Object Display)

JavaScript – نمایش شیء (Object Display)

نحوه نمایش آبجکت‌ها در جاوااسکریپت هنگام نمایش یک آبجکت جاوااسکریپت به صورت مستقیم، خروجی معمولاً به شکل [object Object]...

بیشتر بخوانید

نظرات

سوالات و نظراتتون رو با ما به اشتراک بذارید

برای ارسال نظر لطفا ابتدا وارد حساب کاربری خود شوید.