‎‎فيلترهاي پي اچ پيPHP Filters -‎

Previous >    <Next  

‎‎در مورد كنترل داده ها دو اصلاح مطرح ميباشد، مطابق زير

‎‎پسوند فيلترينگThe PHP Filter Extention -‎

‎فيلترينگ هايphp براي اعتبارسنجي وپاك سازي اطلاعات ورودي خارجي مورد استفاده قرار ميگيرند. ‎پسوند فيلترينگphp توابع زياد داشته كه براي كنترل ورودي كاربر مورد نياز ميباشند .آنها ‎بگونه اي طراحي شده، كه اعتبارسنجي وپاك سازي داده را آسان وسيريعتر ميكند.

‎ازتابع‎filter_list( )‎ ميتوان استفاده نمود وليست موارد پسوند فيلترينگ php را ‎استخراج نمود.

‎‎مثال ـ استخراج موارد پسوند فيلترينگphp

<!DOCTYPE html>
<html>
<head>
<style>table, th, td {
  border: 1px solid black;
  border-collapse: collapse;
}
th, td {
  padding: 5px;
}
</style></head>
<body>

<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>

</body>
</html>

--(go to editor for change code and run)

‎دلايل استفاده ازفيلترينگ Why Use Filters?‎ -‎‎

‎بسياري از برنامه هاي كاربردي وب اطلاعات ورودي خارجي دريافت ميكنند، اين اطلاعات ميتوان در ‎موارد زير باشد.

‎‎ 1‎ـ ورودي كاربر ازفرم

‎‎ 2‎ـ كوكي ها

‎‎ 3‎ـ داده هاي سرور وب

‎‎ 4‎ـ متغير هاي سرور

‎‎ 5‎ـ نتايج درخواست ها از بانك هاي اطلاعاتي

‎هميشه بايداطلاعات خارجي در گير را اعتبار سنجي كنيد .تائيد وارسال داده هاي كنترل نشده، شما ‎را درگير موارد امنيتي كرده و صفحه وب شما قطع ميشود.

‎بوسيله فيلترينگPHP با اطمينان ميتوانيد در برنامه كاربردي خود اطلاعات صحيح دريافت وارسال ‎ارسال نمائيد.

‎‎تابعPHP ‎filter_var( )

‎تابع‎filter_var( ) ‎هر دو كنترل پاكسازي واعتبار سنجي داده ها را ميتواند انحام ‎دهد.

‎تابع فوق يك متغير را با نوع فيلتر مشخص غربالگري ميكند .تابع داراي دو پارامتر مطابق زير ‎ميباشد.

‎‎ 1‎ـ متغيري كد بايد كنترل شود.

‎‎ 2‎ـ نوع كنترلي كه بايد انجام شود.

‎‎پاك سازي رشتهSanitize a string -‎

‎مثال ـ در مثال زير از تابع‎filter_var( )‎براي حذف تمام تگ هايHTML از رشته ‎استفاده ميشود.

<!DOCTYPE html>
<html>
<body>

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

</body>
</html>


--(go to editor for change code and run)

‎در اين مثال ثابتFILTER_SANITIZE_STRING نمايان پاكسازي رشته ميباشد .و اسكريپت زير ‎اين كار را انجام ميدهد.

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

‎‎اعتبارسنجي داده صحيحValidate an Integer -‎

‎در مثال زيرتابع‎filter_var( )‎ براي كنترل صحيح بودن متغيري استفاده گرديده در ‎صورتيكه صحيح باشد، پيغام‎"integer is valid‎" ‎داده ميشود، در غير اينصورت پيغام‎"integer is not valid‎"‎ ‎داده ميشود .اسكريپت كنترلي مطابق زير است.

<?php 
$int = 100;

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

‎‎مثال ـ اسكريپت كامل كنترل داده صحيح

<!DOCTYPE html>
<html>
<body>

<?php 
$int = 100;

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

</body>
</html>

--(go to editor for change code and run)

‎‎نكته ـ تابع‎filter_var( )‎ ومقدار صفر

‎در مثال بالا اگر متغير‎$iint=0;‎ ميبود، پيغام‎"integer is not valid‎" ‎داده ميشد .ميتوانيد ‎آنرا امتحان كنيد .براي برطرف نمودن مشكل اسكريپت بصورت زير اصلاح ميشود.

<?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");
}
?>

--(go to editor for change code and run)

‎‎همين اصلاح را در مثال اجرائي قبلي امتحان كنيد.

‎‎اعتبار سنجي آدرس آي پيValidate an IP Address-‎

‎در مثال زير تابع‎filter_var( )‎ براي كنترل متغير‎$ip‎ كه يك آدرس ‎قابل قبول است ،استفاده شده است.

‎‎كنترل‎مثال -IP Address

<?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");
}
?>


--(go to editor for change code and run)

‎Sanitize and validate an Email Address‎

‎‎پاك سازي واعتبارسنجي ايميل

‎مثال ـ در مثال زيرتاب‎filter_var( )‎ در مرحله اول متغير‎$email ‎را ‎پاكسازي ميكند، يعني حذف كراكترهاي غير قابل قبول ازآن وسپس با آن، قابل قبول بودن ايميل ‎بررسي ميشود

<!DOCTYPE html>
<html>
<body>

<?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");
}
?>

</body>
</html>

--(go to editor for change code and run)

‎‎اعتبار سنجي وپاكسازي يوآرالSanitize an Validate a URL-‎

‎مثال ـ در مثال زير متعير‎$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");
}
?>

--(go to editor for change code and run)


Previous >    <Next