English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

دروس PHP الأساسية

دروس PHP متقدمة

PHP & MySQL

دليل PHP

PHP مرشحات

في هذا الدرس، ستتعلم كيفية تنظيف وتحقق المدخلات للمستخدم في PHP.

استخدام الفلتر لتحقق وتنظيف البيانات

تنظيف وتحقق البيانات باستخدام الفلتر

للبدء في استخدام امتداد الفلتر لتحقق من البيانات، تحتاج إلى استخدام وظيفة filter_var() في PHP. يمكن تقديم بنية الأساسية الأساسية للوظيفة بطرق مختلفة، مثل ما يلي:

filter_var(variable, filter, options)

يأتي هذا الدالة بثلاثة معلمات، آخر إثنين اختياريان. المعلمات الأولى هي القيمة التي يتم مراقبتها، المعلمات الثانية هو معرف الفلتر، والمعلمات الثالثة هي مجموعة الخيارات المتعلقة بالفلتر. دعونا نرى كيف يعمل.

تنظيف السلسلة

سيقوم المثال التالي بإزالة جميع علامات HTML من السلسلة:

<?php
// تعليق المستخدم المثال
$comment = "<h1>هل اليوم يمر بشكل جيد؟</h1>";
 
// تنظيف وطباعة سلسلة التعليقات
$sanitizedComment = filter_var($comment, FILTER_SANITIZE_STRING);
echo $sanitizedComment;
؟>
اختبار النظر </>

يظهر مخرج المثال السابق كما يلي:

هل اليوم يمر بشكل جيد؟

تحقق من قيمة عدد صحيح

سيقوم المثال التالي بتحقق من ما إذا كانت القيمة صالحة كعدد صحيح.

<?php
// مثال على قيمة عددية
$int = 20;
 
// التحقق من قيمة عدد صحيح
if(filter_var($int, FILTER_VALIDATE_INT)){
    echo "<b>$int</b> هو عدد صحيح صالح";
} آخره {
    echo "<b>$int</b> غير صحيح كعدد صحيح";
}
؟>
اختبار النظر </>

في المثال السابق، إذا تم تعيين المتغير $int إلى 0، فإن كود المثال سيظهر رسالة غير صالحة عن عدد صحيح. لتحديد هذا المشكلة، تحتاج إلى اختبار القيمة 0 بوضوح، كما يلي:

<?php
//قيمة العدد العشري المثال
$int = 0;
 
//تحقق من قيمة العدد العشري المثال
if(filter_var($int, FILTER_VALIDATE_INT) === 0 || filter_var($int, FILTER_VALIDATE_INT)){
    echo "The <b>$int</b> هو عدد صالح";
} آخره {
    echo "The <b>$int</b> ليس عدد صالح";
}
؟>
اختبار النظر </>

تحقق عنوان IP

السلسلة التالية ستتحقق مما إذا كان القيمة صالحة كعنوان IP.

<?php
// عنوان IP
$ip = "172.16.254.1";
 
//مثال على تحقق عنوان IP
if(filter_var($ip, FILTER_VALIDATE_IP)){
    echo "<b>$ip</b> هو عنوان IP صالح";
}
    echo "<b>$ip</b> ليس عنوان IP صالح";
}
؟>
اختبار النظر </>

يمكنك استخدام الأعلام FILTER_FLAG_IPV4 أو FILTER_FLAG_IPV6 لتحديد التحقق من عنوان IPV4 أو IPV6. هذا مثال:

<?php
// عنوان IP
$ip = "172.16.254.1";
 
//مثال على تحقق عنوان IP
if(filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6)){
    echo "<b>$ip</b> هو عنوان IPV6 صالح";
}
    echo "<b>$ip</b> ليس عنوان IPV6 صالح";
}
؟>
اختبار النظر </>

تنظيف وتحقق عنوان البريد الإلكتروني

السلسلة التالية ستعرض لك كيفية تنظيف وتحقق عنوان البريد الإلكتروني.

<?php
// عنوان البريد الإلكتروني
$email = "someone@@example.com";
 
//حذف جميع الأحرف غير المسموح بها من عنوان البريد الإلكتروني
$sanitizedEmail = filter_var($email, FILTER_SANITIZE_EMAIL);
 
//تحقق من عنوان البريد الإلكتروني
if($email == $sanitizedEmail && filter_var($email, FILTER_VALIDATE_EMAIL)){
    echo "$email هو عنوان بريد إلكتروني صالح";
} آخره {
    echo "$email ليس عنوان بريد إلكتروني صالح";
}
؟>
اختبار النظر </>

ملاحظة:متصفح FILTER_SANITIZE_EMAIL يزيل جميع الأحرف غير المسموح بها، والأرقام والنصوص المقدمة من عنوان البريد الإلكتروني، ويزيل جميع الأحرف غير المسموح بها!#$%&'*+-=?^_`{|}~@.[].

تنظيف وتحقق URL

السلسلة التالية من الأمثلة ستعرض لك كيفية تنظيف وتحقق URL.

<?php
// مثال على url
$url = "http:://www.example.com";
 
// إزالة جميع الرموز غير القانونية من العنوان
$sanitizedUrl = في_valid_var ($url, FILTER_SANITIZE_URL);
 
// التحقق من عنوان الموقع الويب
إذا ($url == $sanitizedUrl && في_valid_var ($url, FILTER_VALIDATE_URL)) {
    إدراج "$url هو عنوان موقع ويب صالح";
} آخره {
    إدراج "$url ليس عنوان موقع ويب صالح";
}
؟>
اختبار النظر </>

ملاحظة:مصفى FILTER_SANITIZE_URL يزيل جميع الأحرف غير الفعلية، والأرقام، والرموز المقدمة في سلسلة URL غير الفعالة $-_.+!*'(),{}|\\^~[]`<>#%";/?:@&=.

يمكنك أيضًا استخدام flag للتحقق مما إذا كان رابط URL يحتوي على سلسلة الاستعلام FILTER_FLAG_QUERY_REQUIRED، كما هو موضح في الأمثلة التالية:

<?php
// url
$url = "http://www.example.com?topic=filters";
 
// التحقق من عنوان الموقع للحصول على سلسلة الاستعلام
إذا (في_valid_var ($url, FILTER_VALIDATE_URL, FILTER_FLAG_QUERY_REQUIRED)) {
    إدراج "<b>$url</b> يحتوي على سلسلة الاستعلام";
} آخره {
    إدراج "<b>$url</b> لا يحتوي على سلسلة الاستعلام";
}
؟>
اختبار النظر </>

يرجى الرجوع إلىرابط HTMLدليل، لتعلمرابطمكوناتها المختلفة.

العدد الصحيح في النطاق

السلسلة التالية من الأمثلة ستحقق مما إذا كانت القيمة المقدمة كعدد صحيح، وأيضاً ما إذا كانت تقع ضمن النطاق من 0 إلى 100.

<?php
// مثال على قيمة عددية
$int = 75;
 
// التحقق من قيمة العينة كعدد صحيح
إذا (في_valid_var ($int, FILTER_VALIDATE_INT, array("options" => array("min_range" => 0,"max_range" => 100)))) {
    إدراج "<b>$int</b> موجود في النطاق من 0 إلى 100";
} آخره {
    إدراج "<b>$int</b> غير موجود في النطاق من 0 إلى 100";
}
؟>
اختبار النظر </>