0Pricing
PHP Academy · درس

قراءة بيانات النماذج باستخدام المتغيرات العامة الفائقة

يمكنكم الوصول إلى حقول النموذج عبر مصفوفتَي _GET و_POST

قراءة بيانات النماذج باستخدام المتغيرات العامة الفائقة درس مجاني في PHP Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في PHP Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة PHP Academy 4 دروس في المجموع.

المتغيرات العامة الفائقة في PHP

المتغيرات العامة الفائقة هي مصفوفات PHP مضمّنة ومتاحة في جميع النطاقات — ولا تحتاج إلى global للوصول إليها داخل الدوال.

المتغيرات العامة الفائقة المرتبطة بالنماذج: $_GET و$_POST و$_FILES و$_REQUEST

الوصول إلى حقول $_POST

اقرأ قيم نموذج POST باستخدام الوصول إلى مفتاح المصفوفة مع قيمة افتراضية احتياطية:

<?php
// Safe access with null coalescing
$username = $_POST['username'] ?? '';
$email    = $_POST['email']    ?? '';
$age      = (int) ($_POST['age'] ?? 0);

var_dump($username, $email, $age);

الوصول إلى معاملات $_GET

اقرأ معاملات سلسلة الاستعلام في عنوان URL من $_GET:

<?php
// URL: /products.php?category=electronics&page=2&sort=price

$category = $_GET['category'] ?? 'all';
$page     = max(1, (int) ($_GET['page'] ?? 1));
$sort     = in_array($_GET['sort'] ?? '', ['price', 'name', 'date'])
            ? $_GET['sort']
            : 'name';

echo "Category: $category, Page: $page, Sort: $sort";

معالجة مربعات الاختيار

لا تُرسل مربعات الاختيار غير المحددة — تحقّق دائمًا باستخدام isset أو ??:

<?php
// HTML: <input type="checkbox" name="newsletter">

$wantsNewsletter = isset($_POST['newsletter']);
// or:
$wantsNewsletter = ($_POST['newsletter'] ?? null) !== null;

echo $wantsNewsletter ? 'Subscribed' : 'Not subscribed';

مصفوفات الاختيار المتعدد ومربعات الاختيار

استخدم سمات name ذات الصيغة المصفوفية لجمع قيم متعددة:

<!-- HTML -->
<!-- <input type="checkbox" name="tags[]" value="php"> -->
<!-- <input type="checkbox" name="tags[]" value="mysql"> -->

<?php
$tags = $_POST['tags'] ?? [];

if (!is_array($tags)) $tags = [];

foreach ($tags as $tag) {
    echo htmlspecialchars($tag) . PHP_EOL;
}

معلومات $_SERVER

يوفّر $_SERVER بيانات بيئة الخادم والطلب:

<?php
echo $_SERVER['REQUEST_METHOD'];   // GET or POST
echo $_SERVER['REQUEST_URI'];       // /page.php?foo=bar
echo $_SERVER['HTTP_HOST'];         // example.com
echo $_SERVER['REMOTE_ADDR'];       // client IP
echo $_SERVER['HTTP_USER_AGENT'];   // browser string

filter_input()

تقرأ filter_input() قيم المتغيرات العامة الفائقة وتنقّيها في خطوة واحدة:

<?php
// Retrieve and validate an integer from POST
$age = filter_input(INPUT_POST, 'age', FILTER_VALIDATE_INT);
if ($age === false) {
    echo 'Invalid age';
}

// Retrieve and sanitize a string from GET
$name = filter_input(INPUT_GET, 'name', FILTER_SANITIZE_SPECIAL_CHARS);
echo $name;

filter_var() للتحقّق

تحقّق من القيم الموجودة في المتغيرات ونقّها:

<?php
$email = 'user@example.com';
$ip    = '192.168.1.1';
$url   = 'https://example.com';

var_dump(filter_var($email, FILTER_VALIDATE_EMAIL));  // string
var_dump(filter_var($ip,    FILTER_VALIDATE_IP));     // string
var_dump(filter_var($url,   FILTER_VALIDATE_URL));    // string

FILTER_SANITIZE مقابل FILTER_VALIDATE

وضعان لـ filter_var:

  • FILTER_VALIDATE_* — يعيد القيمة إذا كانت صحيحة، وfalse خلاف ذلك
  • FILTER_SANITIZE_* — يزيل أو يشفّر المحارف الخطرة ويعيد القيمة المنقّاة

معالجة $_FILES

يحتوي $_FILES على البيانات الوصفية للملفات المرفوعة — ولكل ملف خمسة مفاتيح:

<?php
if (isset($_FILES['avatar'])) {
    $file = $_FILES['avatar'];
    
    echo $file['name'];     // original filename: photo.jpg
    echo $file['type'];     // MIME type: image/jpeg
    echo $file['size'];     // bytes: 45231
    echo $file['tmp_name']; // temp path on server
    echo $file['error'];    // 0 = no error
}

نمط معالجة النموذج بالكامل

نمط واضح للتعامل مع إرسال النموذج مع التحقّق:

<?php
$errors = [];
$name   = '';

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $name = trim($_POST['name'] ?? '');
    if (empty($name)) {
        $errors[] = 'Name is required';
    }
    if (empty($errors)) {
        // process...
        header('Location: /thanks.php');
        exit;
    }
}

تحقّق سريعًا

ماذا يرسل مربع الاختيار غير المحدد إلى خادم PHP؟

مراجعة: المتغيرات العامة الفائقة

أهم المتغيرات العامة الفائقة للنماذج:

  • $_GET — معاملات عنوان URL
  • $_POST — نص الطلب
  • $_FILES — معلومات الملفات المرفوعة
  • $_SERVER — بيئة الخادم والطلب
  • استخدم ?? للوصول الآمن مع قيمة افتراضية
  • استخدم filter_input() للجمع بين الاسترداد والتحقّق

الأسئلة الشائعة

هل درس «قراءة بيانات النماذج باستخدام المتغيرات العامة الفائقة» مجاني؟

نعم — نص درس «قراءة بيانات النماذج باستخدام المتغيرات العامة الفائقة» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة PHP Academy، انتقل إلى CoddyKit PRO. تتضمن دورة PHP Academy 4 دروس في المجموع.

ماذا ستتعلم في «قراءة بيانات النماذج باستخدام المتغيرات العامة الفائقة»؟

يمكنكم الوصول إلى حقول النموذج عبر مصفوفتَي _GET و_POST تتمرن على PHP Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ PHP Academy؟

لا تُشترط خبرة سابقة. PHP Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.

كم من الوقت يستغرق درس «قراءة بيانات النماذج باستخدام المتغيرات العامة الفائقة»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس PHP Academy هذا؟

نعم. كل درس في PHP Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. GET مقابل POST: متى تستخدمون كلًّا منهما
  2. قراءة بيانات النماذج باستخدام المتغيرات العامة الفائقة
  3. تقنيات التحقق من صحة الإدخال
  4. تنقية إدخال المستخدم
← العودة إلى PHP Academy