میخوای وارد بازار کار بشی و محصولات خودت رو بفرشی همین الان ثبت نام کن
0

فیلترها در PHP

فیلتر ها (Filters) برای اعتبار سنجی ورودی ها مورد استفاده قرار می گیرند.

اعتبار سنجی (Validating) داده = تشخیص اینکه آیا داده ها در فرم مناسب هستند

پاک سازی (Sanitizing) داده ها = حذف کاراکتر های غیر مجاز فرم.

افزونه فیلتر php دارای توابع بسیاری برای چک کردن ورودی کاربر هست و برای اعتبار سنجی آسان و سریع طراحی شده است.

تابع ()filter_list می تواند لیستی از چیزهایی که افزونه فیلتر ارائه می دهد را نشان دهد

<table>
<tr>
<td>Filter Name</td>
<td>Filter ID</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 برای حذف کردن تمام تگ های HTML از یک رشته، استفاده می کند:

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


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

مثال زیر از این filter_var()تابع برای بررسی اینکه آیا متغیر $ int یک عدد صحیح است استفاده می کند.

<?php
$int = ۱۰۰;

if (!filter_var($int, FILTER_VALIDATE_INT) === false) {
echo(“Integer is valid”);
else {
echo(“Integer is not valid”);
}
?>

()filter_var و مشکل با ۰

در مثال بالا اگر متغیر int$ را به ۰ تغییر دهیم، تابع این متغیر را عدد صحیح تشخیص نمی دهد.
برای رفع این مشکل به صورت زیر عمل می کنیم:

<?php
$int = ۰;

if (filter_var($int, FILTER_VALIDATE_INT) === ۰ || !filter_var($int, FILTER_VALIDATE_INT) === false) {
echo(“Integer is valid”);
else {
echo(“Integer is not valid”);
}
?>


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

مثال زیر از تابع ()filter_var برای چک کردن معتبر بودن ip آدرس استفاده می کند:

<?php
$ip = “۱۲۷٫۰٫۰٫۱”;

if (!filter_var($ip, FILTER_VALIDATE_IP) === false) {
echo(“$ip is a valid IP address”);
else {
echo(“$ip is not a valid IP address”);
}
?>


اعتبار سنجی و پاک سازی آدرس ایمیل

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

<?php
$email = “john.doe@example.com”;

// Remove all illegal characters from email
$email = filter_var($email, FILTER_SANITIZE_EMAIL);

// Validate e-mail
if (!filter_var($email, FILTER_VALIDATE_EMAIL) === false) {
echo(“$email is a valid email address”);
else {
echo(“$email is not a valid email address”);
}
?>


اعتبار سنجی و پاکسازی URL

مثال زیر از تابع ()filter_var برای حذف کاراکتر های غیر مجاز و اعتبار سنجی متغیر url$ استفاده می کند:

<?php
$url = “https://www.w3schools.com”;

// Remove all illegal characters from a url
$url = filter_var($url, FILTER_SANITIZE_URL);

// Validate url
if (!filter_var($url, FILTER_VALIDATE_URL) === false) {
echo(“$url is a valid URL”);
else {
echo(“$url is not a valid URL”);
}
?>


 

نظراتتون رو زیر همین پست با ما به اشتراک بگذارید.

 

ارسال دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

×

سلام کاربر عزیز

هر سوالی دارید در این بخش هستیم تا شما رو راهنمائی کنیم

روی لوگومون کلیک کنید

× چطور میتونم کمکتون کنم؟