با عرض سلام و وقت به خیر خدمت کاربران سایت پی وی لرن و کاربرانی که دوره ی آموزش php 7 را دنبال می کنند.
در جلسه گذشته با جلسات php و نحوه کار با آن ها مثل : شروع یک جلسه، دریافت مقدار آن، تغییر مقدار آن و نیز حذف آن آشنا شدیم. در ادامه این دوره آموزش کار با فیلتر ها در php 7 را ارائه می نماییم.
Validating data = تعیین اینکه آیا داده ها در فرم مناسب هستند یا خیر.
Sanitizing data = حذف هر کاراکتر غیرقانونی از داده ها.
فیلترهای PHP برای تأیید و پاکسازی ورودی های نامناسب مورد استفاده قرار می گیرند.
افزونه فیلتر PHP دارای بسیاری از توابع مورد نیاز برای بررسی ورودی کاربر است و طراحی شده است تا اعتبارسنجی داده ها را ساده تر و سریعتر کند.
تابع ()filter_list میتواند لیستی از افزونه فیلتر PHP را ارائه دهد:
1 2 3 4 5 6 7 8 9 10 11 | <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> |
بسیاری از برنامه های کاربردی وب ورودی های خارجی external input را دریافت می کنند.
input/data می تواند به صورت های زیر باشد:
داده های ارسال شده نامعتبر می تواند به مشکلات امنیتی منجر شود و صفحه وب شما را از بین ببرد!
با استفاده از فیلترهای PHP می توانید مطمئن باشید که برنامه شما ورودی صحیحی را ارائه می دهد!
تابع ()filter_var داده ها را از لحاظ اعتبار بررسی کرده و اعتبار آن را می سنجد.
این تابع یک متغیر را با یک فیلتر مشخص فیلتر می کند و از دو قطعه از داده استفاده می کند:
مثال زیر از تابع ()filter_var برای حذف همه تگ های HTML از یک رشته استفاده می کند:
1 2 3 4 5 | <?php $str = "<h1>Hello World!</h1>"; $newstr = filter_var($str, FILTER_SANITIZE_STRING); echo $newstr; ?> |
مثال زیر از تابع ()filter_var برای بررسی اینکه آیا متغیر $ int یک عدد صحیح است یا خیر استفاده می کند.
اگر int$ یک عدد صحیح باشد، خروجی کد : “Integer valid” را ایجاد می نماید.
اگر int$ یک عدد صحیح نباشد، خروجی به صورت : “Integer is not valid” خواهد بود.
1 2 3 4 5 6 7 8 9 | <?php $int = 100; if (!filter_var($int, FILTER_VALIDATE_INT) === false) { echo("Integer is valid"); } else { echo("Integer is not valid"); } ?> |
در مثال بالا، اگر int$ به ۰ تنظیم شده باشد، تابع بالا «Integer valid not valid» را نشان می دهد.
برای حل این مشکل، از کد زیر استفاده کنید:
1 2 3 4 5 6 7 8 9 | <?php $int = 0; if (filter_var($int, FILTER_VALIDATE_INT) === 0 || !filter_var($int, FILTER_VALIDATE_INT) === false) { echo("Integer is valid"); } else { echo("Integer is not valid"); } ?> |
مثال زیر از تابع ()filter_var برای بررسی اینکه آیا متغیر ip$ یک آدرس IP معتبر است یا خیر استفاده می کند:
1 2 3 4 5 6 7 8 9 | <?php $ip = "127.0.0.1"; 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$ حذف می کند استفاده می نماید، سپس بررسی می کند که آیا آدرس ایمیل معتبر است یا خیر:
1 2 3 4 5 6 7 8 9 10 11 12 13 | <?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"); } ?> |
مثال زیر از تابع ()filter_var برای این که تمام کاراکترهای غیرقانونی را از یک url حذف می کند. سپس بررسی می کند که آیا url معتبر است یا خیر.
1 2 3 4 5 6 7 8 9 10 11 12 | <?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"); } |
در این جلسه به آموزش کار با فیلتر ها در php 7 پرداختیم.
در جلسه بعدی آموزش کار با فیلترها را به صورت پیشرفته می آموزیم.
با پی وی لرن همراه باشید.