نموذج تسجيل PHP باستخدام طرق GET وPOST مع مثال

⚡ ملخص ذكي

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

  • 📝 ما تفعله النماذج: يقوم نموذج HTML بجمع مدخلات المستخدم من خلال حقول مثل مربعات النص ومربعات الاختيار والأزرار، ثم يرسلها إلى برنامج نصي على الخادم.
  • 📬 طريقة ما بعد: يرسل $_POST القيم في نص HTTP، احتفظping أخرجهم من URLوهو ما يناسب عمليات تسجيل الدخول والبيانات الحساسة.
  • 🔗 الحصول على الطريقة: يقوم $_GET بإلحاق القيم بـ URLوبالتالي يمكن وضع علامات مرجعية على النتائج، وهو أمر مثالي لنماذج البحث.
  • 🇧🇷 POST مقابل GET: لا يوجد حد عملي لطول طلب POST ويدعم العديد من أنواع البيانات؛ أما طلب GET فهو أقصر، ويقتصر على السلاسل النصية فقط، وهو مرئي.
  • معالجة المدخلات: تقوم الدالة isset() بالتحقق مما إذا تم إرسال حقل قبل أن يقرأ البرنامج النصي قيمته ويستخدمها.
  • ☑️ مربعات الاختيار: لا يرسل مربع الاختيار قيمة إلا عند تحديده، لذا فإن الدالة isset() تؤكد ما إذا كان المستخدم قد وافق أو حدد الخيار.
  • 🤖 مساعدة الذكاء الاصطناعي: يمكن لأدوات الذكاء الاصطناعي إنشاء نموذج تم التحقق منه وآمن، والمساعدة في تشخيص سبب عدم إرسال النموذج بشكل صحيح.

معالجة نماذج PHP

ما هو النموذج؟

عندما تقوم بتسجيل الدخول إلى موقع ويب أو إلى صندوق بريدك، فإنك تتفاعل مع نموذج.

تُستخدم النماذج للحصول على مدخلات من المستخدم وإرسالها إلى خادم الويب للمعالجة.

يوضح الرسم البياني أدناه عملية معالجة النموذج.

نموذج PHP

النموذج هو علامة 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.

طرق GET مقابل POST

طرق 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>

اعرض النموذج أعلاه في متصفح الإنترنت.

العمل مع مربعات الاختيار وأزرار الاختيار

املأ خانتي الاسم الأول والأخير.

لاحظ أنه لم يتم تحديد مربع الاختيار "الموافقة على شروط الخدمة".

انقر على زر الإرسال.

سوف تحصل على النتائج التالية

العمل مع مربعات الاختيار وأزرار الاختيار

انقر على رابط العودة إلى النموذج، ثم حدد خانة الاختيار.

العمل مع مربعات الاختيار وأزرار الاختيار

انقر على زر الإرسال.

سوف تحصل على النتائج التالية

العمل مع مربعات الاختيار وأزرار الاختيار

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

يقرأ $_GET القيم من URL سلسلة الاستعلام، و$_POST تقرأ القيم من نص الطلب، و$_REQUEST تدمج بيانات GET وPOST وملفات تعريف الارتباط. يُفضل استخدام المصفوفة المحددة لمعرفة مصدر كل قيمة بدقة.

لا تثق أبدًا بالمدخلات الخام. تحقق من صحتها باستخدام دالة filter_var() أو قواعد لكل حقل، وقم بتشفير المخرجات باستخدام دالة htmlspecialchars() لمنع هجمات XSS. استخدم عبارات مُجهزة لكتابة البيانات في قاعدة البيانات لمنع حقن SQL.

تشمل الأسباب الشائعة استخدام طريقة GET بدلاً من POST في النموذج، أو عدم وجود سمات الاسم في المدخلات، أو إجراء خاطئ. URLأو وجود خطأ في نوع التشفير متعدد الأجزاء لتحميل الملفات. تحقق من كل هذه العناصر في نموذجك.

نعم. يمكن للذكاء الاصطناعي إنشاء نموذج HTML بالإضافة إلى التحقق من صحة البيانات من جانب الخادم، والحماية من هجمات تزوير الطلبات عبر المواقع (CSRF)، وإخراج البيانات المشفرة. Revراجع قواعد كل حقل وتأكد من أن فحوصات الأمان تتطابق مع تطبيقك قبل النشر.

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

تلخيص هذه التدوينة بـ: