كيفية استخدام GET و POST لإرسال البيانات في PHP

تمت الكتابة بواسطة: عبد الحكيم

تارخ آخر تحديث: 19 سبتمبر 2024

محتوى المقال

كيفية استخدام GET و POST لإرسال البيانات في PHP

في تطوير تطبيقات الويب باستخدام PHP، تُستخدم طريقتا GET وPOST لإرسال البيانات من واجهة المستخدم (مثل النماذج) إلى الخادم. تعتمد كل طريقة على استخدام بروتوكول HTTP، ولكن لكل منهما خصائص واستخدامات مختلفة. في هذا المقال، سنشرح كيفية استخدام كلتا الطريقتين، والفرق بينهما، مع أمثلة عملية.

ما هو الفرق بين GET و POST؟

قبل أن ندخل في كيفية استخدام كل من GET وPOST، دعونا نوضح الفرق بينهما:

  • GET: تُستخدم لإرسال البيانات عبر عنوان URL. عادةً ما تُستخدم لجلب البيانات من الخادم، وتكون البيانات مرئية في شريط العنوان.
  • POST: تُستخدم لإرسال البيانات في جسد الطلب (Body)، وعادةً ما تُستخدم لإرسال البيانات الحساسة أو الكبيرة. البيانات لا تظهر في عنوان URL.

استخدام GET لإرسال البيانات

عند استخدام طريقة GET، يتم إرفاق البيانات بالعنوان (URL) مما يجعلها مرئية، ويمكن الوصول إلى البيانات باستخدام المتغير الفائق $_GET في PHP. لنأخذ مثالًا بسيطًا:

مثال على استخدام GET

لنفترض أن لدينا نموذجًا بسيطًا لجمع اسم المستخدم، وسنستخدم GET لإرسال البيانات:

<!DOCTYPE html>
<html>
<body>

<form method="get" action="welcome_get.php">
    الاسم: <input type="text" name="name"><br>
    العمر: <input type="text" name="age"><br>
    <input type="submit">
</form>

</body>
</html>

عند النقر على زر الإرسال، سيتم إرسال البيانات إلى ملف PHP آخر (مثل welcome_get.php)، ويمكنك عرض البيانات كالتالي:

<?php
    echo "مرحبًا " . $_GET['name'] . "<br>";
    echo "عمرك هو " . $_GET['age'] . " سنة.";
?>

نتيجة:

إذا أدخل المستخدم الاسم "أحمد" والعمر "25"، فإن العنوان في المتصفح سيكون:

http://example.com/welcome_get.php?name=Ahmed&age=25

وسيتم عرض:

مرحبًا أحمد
عمرك هو 25 سنة.

استخدام POST لإرسال البيانات

عند استخدام طريقة POST، يتم إرسال البيانات في جسد الطلب (Body)، مما يجعلها أكثر أمانًا عند إرسال بيانات حساسة مثل كلمات المرور أو المعلومات الشخصية. يمكن الوصول إلى البيانات باستخدام المتغير الفائق $_POST في PHP.

مثال على استخدام POST

إليك مثالًا مشابهًا باستخدام طريقة POST:

<!DOCTYPE html>
<html>
<body>

<form method="post" action="welcome_post.php">
    الاسم: <input type="text" name="name"><br>
    العمر: <input type="text" name="age"><br>
    <input type="submit">
</form>

</body>
</html>

بعد إرسال النموذج، يمكن الوصول إلى البيانات ومعالجتها في welcome_post.php كالتالي:

<?php
    echo "مرحبًا " . $_POST['name'] . "<br>";
    echo "عمرك هو " . $_POST['age'] . " سنة.";
?>

نتيجة:

عند إرسال البيانات، لن تظهر في شريط العنوان كما هو الحال مع GET، مما يجعل POST أكثر أمانًا عند إرسال بيانات حساسة.

متى يجب استخدام GET أو POST؟

يعتمد الاختيار بين GET وPOST على طبيعة البيانات التي ترغب في إرسالها:

  • استخدم GET عندما:
    • تكون البيانات غير حساسة.
    • تريد أن تكون البيانات قابلة للعرض والمشاركة عبر URL.
    • تحتاج إلى استرداد بيانات أو عرض محتوى معين.
  • استخدم POST عندما:
    • تكون البيانات حساسة (مثل كلمات المرور أو المعلومات الشخصية).
    • تريد إرسال كمية كبيرة من البيانات.
    • تحتاج إلى إرسال البيانات بشكل آمن وخفي عن المستخدم.

الخلاصة

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

طور مهاراتك: مقالات يجب قراءتها في البرمجة