انتقل إلى محتوى الدرس

Filtering Superglobals with filter_input قراءة وفحص مدخلات الطلب مباشرة عبر filter_input

اضبط حدود النطاقات الرقمية والقيم الافتراضية وأعلام التحقق من العناوين وفحص المدخلات مباشرة عبر filter_var وfilter_input في PHP 8.
1 صفوف تعليمية
PHP
0 مشاهدة

شرح صفوف ومحتوى الفقرة

الصف 1 شرح توضيحي

تقرأ الدالة filter_input($type, $varName, $filter, $options) مفتاحاً من مصادر الطلب الخارجية (INPUT_GET أو INPUT_POST) وتتحقق منه في خطوة واحدة.

  • على عكس قراءة $_POST["age"] مباشرة، لا تطلق filter_input(INPUT_POST, "age", ...) تحذير مفتاح غير معرف إذا كان الحقل مفقوداً.
  • انتبه لقيمتها المرجعة: ترجع null إذا لم يُرسل الحقل أصلاً في الطلب، وترجع false إذا أُرسل الحقل ولكنه فشل في التحقق!
  • تقرأ filter_input() بيانات الطلب الأصلية القادمة من الخادم، ولا تتأثر بالتعديلات اليدوية على $_GET أو $_POST أثناء تشغيل السكريبت.

تفرّق المقارنة الصارمة === null بين الحقل الاختياري غير المرسل أصلاً وبين الحقل المرسل بصيغة خاطئة (=== false).

مخطط تدفق التنفيذ العملي لقسم قراءة وفحص مدخلات الطلب مباشرة عبر filter_input في لغة PHP
PHP
<?php
// Simulating filter_input return states:
$missingField = filter_input(INPUT_GET, "coupon_id", FILTER_VALIDATE_INT);

if ($missingField === null) {
    echo "Status: 'coupon_id' was not provided in query string.\n";
} elseif ($missingField === false) {
    echo "Status: 'coupon_id' must be a valid integer.\n";
}