🚀 احتراف التعامل مع النماذج في PHP: كيف تستقبل بيانات المستخدم؟

اليوم سننتقل إلى واحدة من أهم مهارات تطوير الويب، وهي التعامل مع النماذج (Form Handling).

ببساطة، أي موقع تراه اليوم (سواء كان صفحة تسجيل دخول، صفحة بحث، أو نموذج اتصال) يعتمد على هذه العملية: المستخدم يدخل بيانات في نموذج HTML، ثم تقوم لغة PHP باستلام هذه البيانات ومعالجتها على الخادم (Server).


📝 أولاً: هيكلة نموذج HTML الأساسي

قبل أن نكتب كود PHP، يجب أن يكون لدينا نموذج HTML يرسل البيانات. هناك عنصران أساسيان في وسم <form> يجب أن تعرفهما:

  1. الخاصية action: تحدد اسم الملف الذي سيستلم البيانات (مثلاً: process.php).
  2. الخاصية method: تحدد "الطريقة" التي ستُنقل بها البيانات، وهناك طريقتان شهيرتان: GET و POST.

لنلقِ نظرة على هذا المثال البسيط:

<!-- index.html -->
<form action="process.php" method="POST">
    <label>Enter your name:</label>
    <input type="text" name="username"> 
    <button type="submit">Send</button>
</form>

💡 ملاحظة هامة: خاصية name في حقل الإدخال هي "المفتاح" الذي سنستخدمه في PHP للوصول إلى القيمة التي كتبها المستخدم.


📥 ثانياً: فهم طريقة POST و GET

هناك فرق جوهري بين الطريقتين في إرسال البيانات، وإليك التبسيط:

1. طريقة POST 🔒

  • تُستخدم لإرسال بيانات حساسة (مثل كلمات المرور) أو كميات كبيرة من البيانات.
  • البيانات لا تظهر في رابط المتصفح (URL)، مما يجعلها أكثر خصوصية.
  • تُستخدم عادةً عند إضافة بيانات جديدة للقاعدة أو تعديلها.

2. طريقة GET 🔍

  • تُرسل البيانات كجزء من رابط الصفحة (URL).
  • يمكنك رؤية البيانات مكتوبة في شريط العنوان (مثلاً: process.php?username=Ahmed).
  • تُستخدم عادةً في عمليات البحث أو التنقل بين الصفحات، ولا تُستخدم أبداً لكلمات المرور.

🛠️ ثالثاً: كيفية استقبال البيانات في PHP

لكي نقرأ البيانات القادمة من النموذج، توفر لنا PHP ما يسمى بـ "المصفوفات العامة" (Superglobals)، وهي $_POST و $_GET.

مثال عملي باستخدام POST:

لنقم الآن بكتابة ملف process.php الذي سيستقبل الاسم من المثال السابق:

<?php
// استقبال القيمة الموجودة في حقل الإدخال الذي يحمل اسم "username"
$name = $_POST['username'];

// طباعة النتيجة للمستخدم
echo "Hello, " . $name . "! Welcome to Codex Academy.";
?>

مثال عملي باستخدام GET:

إذا قمت بتغيير method="POST" إلى method="GET" في ملف HTML، سيكون كود PHP كالتالي:

<?php
// استقبال القيمة باستخدام مصفوفة GET
$name = $_GET['username'];

echo "Hello, " . $name . " via GET method!";
?>

⚠️ رابعاً: نصيحة برمجية هامة (التحقق من الإرسال)

في الواقع، لا نريد من صفحة PHP أن تعمل بمجرد فتحها، بل نريدها أن تعمل فقط عندما يقوم المستخدم بالضغط على زر "إرسال". لذلك نستخدم دالة isset() للتأكد من أن البيانات قد وصلت فعلاً.

إليك الكود بشكل أكثر احترافية وتنظيماً:

<?php
// التحقق مما إذا كان المستخدم قد أرسل النموذج بالفعل
if (isset($_POST['username'])) {
    $name = $_POST['username'];
    echo "Welcome, " . $name;
} else {
    echo "Please submit the form first!";
}
?>

📌 ملخص سريع لما تعلمناه:

  1. النموذج يحتاج إلى action لتحديد الوجهة و method لتحديد طريقة النقل.
  2. خاصية name في HTML هي التي تسمح لـ PHP بالتعرف على القيمة.
  3. نستخدم $_POST للبيانات السرية أو الكبيرة.
  4. نستخدم $_GET للبيانات العامة (مثل البحث).
  5. نستخدم isset() للتأكد من وجود البيانات قبل معالجتها.

⏭️ ماذا سنتعلم في الدرس القادم؟

الآن بعد أن تعلمنا كيف نستقبل البيانات، ماذا لو قام المستخدم بإرسال نموذج "فارغ"؟ أو ماذا لو أراد شخص ما اختراق موقعنا بإرسال أكواد خبيثة داخل النموذج؟

في الدرس القادم سنتعلم "Form Validation and Sanitization"، حيث سنتعلم كيف نحمي موقعنا ونتأكد من أن البيانات المدخلة صحيحة وآمنة تماماً! 🛡️