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 معتبر نیست");
}
?>

پست های مرتبط

مطالعه این پست ها رو از دست ندین!
Python - محدود کردن داده (MongoDB Limit)

Python – محدود کردن داده (MongoDB Limit)

Python MongoDB محدود کردن نتایج برای محدود کردن نتایج در MongoDB، از متد limit() استفاده می‌کنیم. متد limit() یک...

بیشتر بخوانید
Python - بروزرسانی (MongoDB Update)

Python – بروزرسانی (MongoDB Update)

به‌روزرسانی یک رکورد برای به‌روزرسانی یک رکورد یا سند در MongoDB، از متد update_one() استفاده می‌کنیم. پارامتر اول متد...

بیشتر بخوانید
Python - حذف کالکشن (MongoDB Drop Collection)

Python – حذف کالکشن (MongoDB Drop Collection)

حذف کالکشن شما می‌توانید یک جدول یا کالکشن در MongoDB را با استفاده از متد drop() حذف کنید. مثالحذف...

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

نظرات

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

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