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()
یک متغیر را با یک فیلتر مشخص فیلتر میکند. این تابع دو پارامتر میگیرد:
- متغیری که میخواهید بررسی کنید
- نوع بررسی که باید استفاده شود
بهداشت یک رشته
مثال زیر از تابع 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 معتبر نیست");
}
?>
برای ارسال نظر لطفا ابتدا وارد حساب کاربری خود شوید. صفحه ورود و ثبت نام