PHP

الجزء السادس – التعامل مع نماذج البيانات (Forms) في PHP – سلسلة FSWD – PHP

نموذج البيانات (Form) هو أداة تتيح للمستخدمين إدخال البيانات (مثل النصوص، الأرقام، إلخ) التي يتم إرسالها إلى الخادم (Server) لمعالجتها. في PHP، يمكننا استخدام النماذج للتفاعل مع البيانات المدخلة من قبل المستخدمين باستخدام الطرق المختلفة مثل $_GET و $_POST.

أولاً: إرسال البيانات باستخدام Forms

هناك طريقتان رئيسيتان لإرسال البيانات من HTML إلى PHP:

  1. الطريقة GET ($_GET): تُستخدم عندما تكون البيانات صغيرة ولا تُعتبر حساسة.

  2. الطريقة POST ($_POST): تُستخدم عندما تكون البيانات أكبر أو حساسة (مثل كلمات المرور).

1. إرسال البيانات باستخدام $_GET

طريقة GET تُستخدم في الغالب عندما نريد إرسال البيانات عبر الـ URL، مثل البحث في محرك بحث أو تصفية قائمة.

مثال:

HTML Form (index.html)

<!DOCTYPE html>
<html lang="ar">
<head>
    <meta charset="UTF-8">
    <title>نموذج GET</title>
</head>
<body>
    <h2>إرسال البيانات باستخدام GET</h2>
    <form action="process.php" method="get">
        <label for="name">الاسم:</label>
        <input type="text" id="name" name="name" required><br><br>

        <label for="age">العمر:</label>
        <input type="text" id="age" name="age" required><br><br>

        <input type="submit" value="إرسال">
    </form>
</body>
</html>

PHP Form Handler (process.php)

<?php
if (isset($_GET['name']) && isset($_GET['age'])) {
    $name = $_GET['name'];
    $age = $_GET['age'];

    echo "الاسم المدخل: $name <br>";
    echo "العمر المدخل: $age <br>";
} else {
    echo "الرجاء إدخال جميع البيانات.";
}
?>

شرح:

  • في هذا المثال، أرسلنا البيانات عبر الطريقة GET إلى process.php.

  • في process.php استخدمنا $_GET للحصول على القيم التي تم إرسالها من النموذج.

  • دالة isset() تُستخدم للتحقق مما إذا كانت البيانات موجودة أم لا.

2. إرسال البيانات باستخدام $_POST

طريقة POST تُستخدم لإرسال البيانات من النماذج بشكل آمن، حيث تُرسل البيانات في الجسم (body) وليس في الـ URL.

مثال:

HTML Form (index.html)

<!DOCTYPE html>
<html lang="ar">
<head>
    <meta charset="UTF-8">
    <title>نموذج POST</title>
</head>
<body>
    <h2>إرسال البيانات باستخدام POST</h2>
    <form action="process.php" method="post">
        <label for="name">الاسم:</label>
        <input type="text" id="name" name="name" required><br><br>

        <label for="email">البريد الإلكتروني:</label>
        <input type="email" id="email" name="email" required><br><br>

        <input type="submit" value="إرسال">
    </form>
</body>
</html>

PHP Form Handler (process.php):

<?php
if (isset($_POST['name']) && isset($_POST['email'])) {
    $name = $_POST['name'];
    $email = $_POST['email'];

    echo "الاسم المدخل: $name <br>";
    echo "البريد الإلكتروني المدخل: $email <br>";
} else {
    echo "الرجاء إدخال جميع البيانات.";
}
?>

شرح:

  • في هذا المثال، أرسلنا البيانات عبر الطريقة POST إلى process.php.

  • في process.php استخدمنا $_POST للحصول على القيم المرسلة.


ثانيًا: التحقق من البيانات (Validation)

من الضروري التحقق من صحة البيانات المدخلة من قبل المستخدم قبل معالجتها. في PHP، يمكننا استخدام دوال مثل isset(), empty(), is_numeric(), وغيرها للتحقق من صحة المدخلات.

1. استخدام isset() للتحقق من وجود البيانات

دالة isset() تُستخدم للتحقق مما إذا كانت قيمة المتغير موجودة وتم تعيينها

<?php
if (isset($_POST['name'])) {
    echo "الاسم المدخل: " . $_POST['name'];
} else {
    echo "الاسم غير موجود.";
}
?>
2. استخدام empty() للتحقق من كون المتغير فارغًا

دالة empty() تُستخدم للتحقق مما إذا كان المتغير فارغًا (أي لا يحتوي على قيمة أو يحتوي على قيمة افتراضية مثل "" أو 0).

<?php
if (!empty($_POST['name'])) {
    echo "الاسم المدخل: " . $_POST['name'];
} else {
    echo "الرجاء إدخال الاسم.";
}
?>
3. التحقق من نوع البيانات باستخدام is_numeric()

دالة is_numeric() تُستخدم للتحقق مما إذا كانت القيمة رقمًا

<?php
if (isset($_POST['age'])) {
    $age = $_POST['age'];
    if (is_numeric($age)) {
        echo "العمر المدخل هو: $age";
    } else {
        echo "العمر يجب أن يكون رقمًا.";
    }
}
?>
4. التحقق من البريد الإلكتروني باستخدام filter_var()

يمكننا أيضًا استخدام دالة filter_var() للتحقق من صحة البريد الإلكتروني.

<?php
if (isset($_POST['email'])) {
    $email = $_POST['email'];
    if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
        echo "البريد الإلكتروني المدخل: $email";
    } else {
        echo "البريد الإلكتروني غير صالح.";
    }
}
?>

مثال كامل: نموذج مع التحقق من البيانات

HTML Form (index.html):

<!DOCTYPE html>
<html lang="ar">
<head>
    <meta charset="UTF-8">
    <title>نموذج التحقق من البيانات</title>
</head>
<body>
    <h2>نموذج التحقق من البيانات</h2>
    <form action="process.php" method="post">
        <label for="name">الاسم:</label>
        <input type="text" id="name" name="name" required><br><br>

        <label for="age">العمر:</label>
        <input type="text" id="age" name="age" required><br><br>

        <label for="email">البريد الإلكتروني:</label>
        <input type="email" id="email" name="email" required><br><br>

        <input type="submit" value="إرسال">
    </form>
</body>
</html>

PHP Form Handler (process.php):

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $name = $_POST['name'];
    $age = $_POST['age'];
    $email = $_POST['email'];

    // التحقق من أن البيانات ليست فارغة
    if (empty($name) || empty($age) || empty($email)) {
        echo "الرجاء تعبئة جميع الحقول.";
    } else {
        // التحقق من أن العمر رقم
        if (!is_numeric($age)) {
            echo "العمر يجب أن يكون رقمًا.";
        } else {
            // التحقق من صحة البريد الإلكتروني
            if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
                echo "البريد الإلكتروني غير صالح.";
            } else {
                echo "الاسم: $name <br>";
                echo "العمر: $age <br>";
                echo "البريد الإلكتروني: $email <br>";
            }
        }
    }
}
?>

شرح المثال:

  • النموذج: يحتوي النموذج على ثلاثة حقول: الاسم، العمر، والبريد الإلكتروني.

  • التحقق: في process.php، نتحقق من أن الحقول ليست فارغة باستخدام empty()، وأن العمر رقم باستخدام is_numeric()، وأن البريد الإلكتروني صالح باستخدام filter_var().

فرص الربح من الإنترنت

💰 هل تبحث عن طريقة سهلة للربح من الإنترنت؟

ابدأ الآن واكسب أموالًا حقيقية من خلال خطوات بسيطة! 🌟

اضغط وابدأ الربح

📱 اربح من هاتفك فقط!

كل ما تحتاجه هو اتصال بالإنترنت وبعض الوقت ⏳

ابدأ الربح الآن

🚀 اربح المال وأنت في بيتك

الفرصة أمامك الآن وبخطوات سهلة ومضمونة!

من هنا تبدأ رحلتك

🔥 لا تحتاج إلى خبرة أو رأس مال!

اربح الآن من الإنترنت بأبسط الطرق

اضغط هنا للربح

💸 دخل إضافي بدون تعب؟

🤩 هذه فرصتك لتبدأ في الربح من الإنترنت!

سارع الآن

مقالات ذات صلة

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

زر الذهاب إلى الأعلى