التحقق من صحة البيانات في PHP: دليل وأدوات

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

التحقق من صحة البيانات في PHP: من الفحوصات البسيطة إلى المكتبات الجاهزة



التحقق من صحة البيانات هو أحد الجوانب الرئيسية للتشغيل الآمن والمستقر لأي تطبيق ويب بلغة PHP. سواء كان نموذج تسجيل، تعليق، تحميل ملف أو طلب API - يجب فحص جميع البيانات الواردة من المستخدم بدقة قبل المعالجة. في هذه المقالة، سنستعرض الأساليب الأساسية للتحقق من الصحة في PHP: من الدوال المدمجة إلى المكتبات الجاهزة القوية. ستكون المادة مفيدة لكل من المبتدئين والمطورين ذوي الخبرة الذين يرغبون في تنظيم معرفتهم.



لماذا نحتاج إلى التحقق من الصحة؟

يمكن أن تؤدي البيانات غير الصحيحة أو الضارة إلى:

  • هجمات SQL injection و XSS;
  • أخطاء في منطق التطبيق;
  • فقدان البيانات أو تلفها;
  • تجربة مستخدم سلبية.

التحقق الصحيح من الصحة يحل هذه المشكلات، مما يضمن سلامة النظام وأمانه.



أدوات التحقق المدمجة في PHP

توفر PHP عدة آليات مدمجة لفحص البيانات. دعنا نستعرض الأساسيات.



1. دوال التحقق من الأنواع والقيم

الطريقة الأبسط هي استخدام دوال مثل is_numeric()، is_string()، empty()، strlen() وغيرها. وهي مناسبة للفحوصات السريعة، لكنها غير كافية للسيناريوهات المعقدة.



2. المرشحات (Filter Functions)

منذ PHP 5.2، تتوفر مجموعة من الدوال للتصفية والتحقق: filter_var() و filter_input(). تسمح بالتحقق من البريد الإلكتروني، URL، عناوين IP، الأعداد الصحيحة وغيرها الكثير.

<?php$email = "user@example.com";if (filter_var($email, FILTER_VALIDATE_EMAIL)) {    echo "البريد الإلكتروني صحيح.";} else {    echo "البريد الإلكتروني غير صحيح.";}

$age = 25;if (filter_var($age, FILTER_VALIDATE_INT, ["options" => ["min_range" => 1, "max_range" => 120]])) { echo "العمر صحيح.";}?>


3. التعبيرات المنتظمة (PCRE)

للتحقق المرن من السلاسل النصية (مثل رقم الهاتف، الرمز البريدي، كلمة المرور) من المناسب استخدام preg_match().

<?php$phone = "+7 (999) 123-45-67";$pattern = '/^\\+7\\s?\\(\\d{3}\\)\\s?\\d{3}-\\d{2}-\\d{2}$/';if (preg_match($pattern, $phone)) {    echo "رقم الهاتف صحيح.";} else {    echo "تنسيق الهاتف غير صحيح.";}?>


مكتبات جاهزة للتحقق من الصحة في PHP

عندما يكبر المشروع، يصبح كتابة التحقق الخاص بك من الصفر غير فعال. هنا تأتي المكتبات المتخصصة للمساعدة. دعنا نستعرض أشهر مكتبتين.



Respect\\Validation

واحدة من أكثر المكتبات ملاءمة وتعبيراً. تسمح ببناء سلاسل من القواعد بأسلوب "fluent interface".



التثبيت:

composer require respect/validation


مثال على الاستخدام:

<?phpuse Respect\\Validation\\Validator as v;

$userData = [ 'name' => 'إيفان', 'email' => 'ivan@example.com', 'age' => 30, 'password' => 'qwerty123'];

$validator = v::key('name', v::stringType()->length(2, 50)) ->key('email', v::email()) ->key('age', v::intType()->between(18, 100)) ->key('password', v::stringType()->length(8, 64));

try { $validator->assert($userData); echo "جميع البيانات صحيحة!";} catch (\\Respect\\Validation\\Exceptions\\NestedValidationException $e) { print_r($e->getMessages());}?>


تدعم المكتبة عشرات القواعد: date()، cpf() (لـ CPF البرازيلي)، creditCard()، url() وغيرها. بالإضافة إلى ذلك، يمكن إنشاء قواعد مخصصة.



Symfony Validator

مكون قوي من نظام Symfony البيئي، يمكن استخدامه حتى بدون الإطار. يعتمد على التعليقات التوضيحية (أو YAML/XML) ويدعم السيناريوهات المعقدة، بما في ذلك

توصيات