نموذج تسجيل PHP باستخدام طرق GET وPOST مع مثال
⚡ ملخص ذكي
تستقبل معالجة النماذج في PHP مدخلات المستخدم من نماذج HTML وتعالجها على الخادم باستخدام المتغيرات العامة $_POST و$_GET. يشرح هذا الدليل كيفية إنشاء نموذج تسجيل، وطريقة POST وGET، ويقارن بينهما، ويوضح كيفية معالجة الحقول، ومربعات الاختيار، ومدخلات البحث.

ما هو النموذج؟
عندما تقوم بتسجيل الدخول إلى موقع ويب أو إلى صندوق بريدك، فإنك تتفاعل مع نموذج.
تُستخدم النماذج للحصول على مدخلات من المستخدم وإرسالها إلى خادم الويب للمعالجة.
يوضح الرسم البياني أدناه عملية معالجة النموذج.
النموذج هو علامة HTML تحتوي على عناصر واجهة المستخدم الرسومية مثل مربعات الإدخال، ومربعات الاختيار، وأزرار الاختيار، والمزيد.
يتم تعريف النموذج باستخدام ... يتم تعريف العلامات وعناصر واجهة المستخدم الرسومية باستخدام عناصر النموذج مثل المدخلات.
متى ولماذا نستخدم النماذج؟
- تُعدّ النماذج مفيدة عند تطويرping تطبيقات مرنة وديناميكية تقبل مدخلات المستخدم.
- يمكن استخدام النماذج لتعديل البيانات الموجودة مسبقًا في قاعدة البيانات.
قم بإنشاء نموذج
سوف نستخدم علامات HTML لإنشاء نموذج. فيما يلي قائمة الحد الأدنى من الأشياء التي تحتاجها لإنشاء نموذج.
- فتح وإغلاق علامات النموذج …
- نوع إرسال النموذج POST أو GET
- تسجيل URL سيقوم ذلك بمعالجة البيانات المقدمة
- حقول الإدخال مثل مربعات الإدخال، ومناطق النصوص، والأزرار، ومربعات الاختيار، وما شابه ذلك.
الكود أدناه ينشئ نموذج تسجيل بسيط.
<html> <head> <title>Registration Form</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <h2>Registration Form</h2> <form action="registration_form.php" method="POST"> First name: <input type="text" name="firstname"> <br> Last name: <input type="text" name="lastname"> <input type="hidden" name="form_submitted" value="1" /> <input type="submit" value="Submit"> </form> </body> </html>
يؤدي عرض الكود أعلاه في متصفح الويب إلى عرض النموذج التالي.
هنا،
- … هي علامات النموذج الافتتاحية والختامية
- يحدد action=”registration_form.php” method=”POST” الوجهة URL ونوع الطلب.
- الاسم الأول/الأخير: هما تسميات لمربعات الإدخال
- هي علامات مربع الإدخال
- هي علامة السطر الجديد
- هي قيمة مخفية تستخدم للتحقق مما إذا كان النموذج قد تم إرساله أم لا
- هو الزر الذي عند النقر عليه، يرسل النموذج إلى الخادم للمعالجة
إرسال بيانات النموذج إلى الخادم
تحدد سمة الإجراء الخاصة بالنموذج عملية الإرسال URL التي تعالج البيانات. تحدد سمة الطريقة نوع الإرسال.
طريقة PHP POST
- هذا هو متغير المصفوفة العامة الفائقة المدمج في PHP والذي يستخدم للحصول على القيم المرسلة عبر طريقة HTTP POST.
- يمكن الوصول إلى متغير المصفوفة من أي برنامج نصي في البرنامج؛ لها نطاق عالمي.
- تُعد هذه الطريقة مثالية عندما لا ترغب في عرض قيم النموذج المرسل في URL.
- ومن الأمثلة الجيدة على استخدام طريقة POST هو عند إرسال تفاصيل تسجيل الدخول إلى الخادم.
يحتوي على الصيغة التالية.
<?php
$_POST['variable_name'];
?>
هنا،
- "$_POST[...]" هو مصفوفة PHP
- "'variable_name'" هو اسم حقل النموذج.
طريقة الحصول على PHP
- هذا هو متغير المصفوفة العامة الفائقة المدمج في PHP والذي يستخدم للحصول على القيم المرسلة عبر طريقة HTTP GET.
- يمكن الوصول إلى متغير المصفوفة من أي برنامج نصي في البرنامج؛ لها نطاق عالمي.
- تعرض هذه الطريقة قيم النموذج في URL.
- يُعدّ مثاليًا لنماذج محركات البحث لأنه يسمح للمستخدمين بحفظ النتائج في المفضلة.
يحتوي على الصيغة التالية.
<?php
$_GET['variable_name'];
?>
هنا،
- "$_GET[...]" هو مصفوفة PHP
- "اسم_المتغير" هو URL اسم المتغير.
طرق GET مقابل POST
| سأعين | للحصول على |
|---|---|
| القيم غير الظاهرة في URL | القيم الظاهرة في URL |
| لا يوجد حد أقصى لطول القيم لأنها تُرسل عبر نص طلب HTTP | يوجد حد أقصى لطول القيم، عادةً 255 حرفًا. وذلك لأن القيم تُعرض في URLلاحظ أن الحد الأقصى لعدد الأحرف يعتمد على المتصفح. |
| يتميز هذا الأسلوب بأداء أقل مقارنةً بأسلوب GET بسبب الوقت المستغرق في تغليف قيم POST في نص HTTP | يتميز بأداء أعلى مقارنةً بطريقة POST نظرًا لبساطة عملية إضافة القيم في URL. |
| يدعم العديد من أنواع البيانات المختلفة مثل السلاسل النصية والأرقام والبيانات الثنائية وغيرها. | يدعم فقط أنواع بيانات السلاسل النصية لأن القيم تُعرض في URL |
| لا يمكن حفظ النتائج في المفضلة | يمكن حفظ النتائج في المفضلة نظرًا لسهولة رؤية القيم في URL |
يوضح الرسم البياني أدناه الفرق بين GET و POST.
معالجة بيانات استمارة التسجيل
يرسل نموذج التسجيل البيانات إلى نفسه كما هو محدد في سمة الإجراء الخاصة بالنموذج.
عند إرسال نموذج، يتم ملء القيم في المصفوفة العامة الفائقة $_POST.
سوف نستخدم دالة PHP isset للتحقق مما إذا كانت قيم النموذج قد تم ملؤها في المصفوفة $_POST ومعالجة البيانات.
سنقوم بتعديل نموذج التسجيل ليشمل كود PHP الذي يعالج البيانات. الكود المعدل موجود أدناه.
<html> <head> <title>Registration Form</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <?php if (isset($_POST['form_submitted'])): ?> // this code is executed when the form is submitted <h2>Thank You <?php echo $_POST['firstname']; ?> </h2> <p>You have been registered as <?php echo $_POST['firstname'] . ' ' . $_POST['lastname']; ?> </p> <p>Go <a href="/registration_form.php">back</a> to the form</p> <?php else: ?> <h2>Registration Form</h2> <form action="registration_form.php" method="POST"> First name: <input type="text" name="firstname"> <br> Last name: <input type="text" name="lastname"> <input type="hidden" name="form_submitted" value="1" /> <input type="submit" value="Submit"> </form> <?php endif; ?> </body> </html>
هنا،
- يتحقق هذا الإجراء مما إذا كان حقل form_submitted المخفي قد تم ملؤه في مصفوفة $_POST[]، ثم يعرض رسالة شكر واسم المستخدم. إذا لم يكن حقل form_submitted قد تم ملؤه في مصفوفة $_POST[]، فسيتم عرض النموذج.
مزيد من الأمثلة
محرك بحث بسيط
سنقوم بتصميم محرك بحث بسيط يستخدم طريقة PHP GET كنوع إرسال النموذج.
ومن أجل التبسيط، سوف نستخدم عبارة if في PHP لتحديد الإخراج.
سوف نستخدم نفس كود HTML لنموذج التسجيل أعلاه ونقوم بإجراء تعديلات طفيفة عليه.
<html> <head> <title>Simple Search Engine</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <?php if (isset($_GET['form_submitted'])): ?> <h2>Search Results For <?php echo $_GET['search_term']; ?> </h2> <?php if ($_GET['search_term'] == "GET"): ?> <p>The GET method displays its values in the URL</p> <?php else: ?> <p>Sorry, no matches found for your search term</p> <?php endif; ?> <p>Go <a href="/search_engine.php">back</a> to the form</p> <?php else: ?> <h2>Simple Search Engine - Type in GET </h2> <form action="search_engine.php" method="GET"> Search Term: <input type="text" name="search_term"> <br> <input type="hidden" name="form_submitted" value="1" /> <input type="submit" value="Submit"> </form> <?php endif; ?> </body> </html>
اعرض الصفحة أعلاه في متصفح الويب.
سيتم عرض النموذج التالي.
اكتب GET بأحرف كبيرة، ثم انقر فوق زر الإرسال.
سيتم عرض ما يلي.
يوضح الرسم البياني أدناه URL بالنسبة للنتائج المذكورة أعلاه.
لاحظ ال URL تم عرض قيمة كل من search_term و form_submitted. حاول إدخال أي شيء مختلف عن GET، ثم انقر فوق زر الإرسال وشاهد النتائج التي ستحصل عليها.
العمل مع مربعات الاختيار وأزرار الاختيار
إذا لم يحدد المستخدم خانة اختيار أو زر اختيار، فلن يتم إرسال أي قيمة. أما إذا حدد المستخدم خانة اختيار أو زر اختيار، فسيتم إرسال القيمة واحد (1) أو صحيح.
سنقوم بتعديل رمز نموذج التسجيل وإدراج زر اختيار يسمح للمستخدم بالموافقة على شروط الخدمة.
<html> <head> <title>Registration Form</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <?php if (isset($_POST['form_submitted'])): ?> <?php if (!isset($_POST['agree'])): ?> <p>You have not accepted our terms of service</p> <?php else: ?> <h2>Thank You <?php echo $_POST['firstname']; ?></h2> <p>You have been registered as <?php echo $_POST['firstname'] . ' ' . $_POST['lastname']; ?> </p> <p> Go <a href="/registration_form2.php">back</a> to the form</p> <?php endif; ?> <?php else: ?> <h2>Registration Form</h2> <form action="registration_form2.php" method="POST"> First name: <input type="text" name="firstname"> <br> Last name: <input type="text" name="lastname"> <br> Agree to Terms of Service: <input type="checkbox" name="agree"> <br> <input type="hidden" name="form_submitted" value="1" /> <input type="submit" value="Submit"> </form> <?php endif; ?> </body> </html>
اعرض النموذج أعلاه في متصفح الإنترنت.
املأ خانتي الاسم الأول والأخير.
لاحظ أنه لم يتم تحديد مربع الاختيار "الموافقة على شروط الخدمة".
انقر على زر الإرسال.
سوف تحصل على النتائج التالية
انقر على رابط العودة إلى النموذج، ثم حدد خانة الاختيار.
انقر على زر الإرسال.
سوف تحصل على النتائج التالية










