الدالتان GET & POST ..أماكن استخدامها وخصائص كل منها


الدالتان GET & POST ..أماكن استخدامها وخصائص كل منها:
لايخلو موقع ويب ديناميكي مبرمج بلغة php من هاتين الدالتين.فما فائدة استخدام هاتين الدالتين ومتى وأين يتم استخدام كل منها ..؟ وهل يغني استخدام إحداهن عن الأخرى ....؟ هذا ماسنوضحه مع بعض الأمثلة في هذه المقالة .
تستخدم الدالتين GET & POST لتمرير البيانات من صفحة إلى أخرى ضمن الموقع..وذلك عن طريق استقبال البيانات عبر المتغيرات وسأوضح ذلك من خلال مثال عملي عن آلية إحضار البيانات وتمريرها والتحكم بها من خلال الدالتين السابقتين..
لنفرض أنه لدينا صفحتان من نوعphp ولتكن الأولى اسمها index.php والثانيةwelcome.php .

 




الصفحة الأولى تحتوي على form لإدخال البيانات ضمن حقلي الاسم وكلمة السر...
حيث تم تحديد اسم الصفحة التي ستستقبل البيانات من خلال القيمة المخزنة في المتغير action و سيتم إسناد قيمة الحقل التي سيدخلها المستخدم..إلى المتغير name في كل حقل ...وقد تم تحديد..اسم الدالة التي ستقوم بإرسال البيانات المدخلة إلى الصفحة welcome.php والتي هيGET.



أما في الصفحة الثانية welcome.php سنقوم ببعض العمليات على البيانات التي تم جلبها من الصفحة index.php .. كما هو موضح في الصورة حيث قمنا بعرض القيمة التي تم استقبالها عن طريق الدالة ECHO:


ملاحظة : قد تم استخدام نفس الكود السابق في كلا الملفين.ولكن مع مراعاة تغيير الدالة من GET إلى POST.لتوضيح الفرق بينهما.
الآن و من خلال تنفيذ الكود السابق بحالتيه كما ذكرنا سنوضح خصائص وآلية كل منهما .
حيث تم إنشاء هاتين الدالتين لتعملان وفق منهجيتان مختلفتان ولا يمكن القول أنه يمكن الاستغناء بإحداهن عن الأخرى لأن لكل واحدة أهميتها ..ولايمكن أبدا الاستغناء عن إحداهن عند كتابة الكود البرمجي في لغة php .
تستخدم الدالة GET لتمرير قيم الحقول المدخلة من قبل المستخدم..إلى الصفحة الهدف ..بطريقة يمكن من خلالها معرفة قيمة الحقل التي تم إرسالها بواسطة هذه الدالة.والتي ستظهر في شريط العنوان للمتصفح.بعد الرابط كما موضح في الصورة.





أما عند استخدام الدالة POST فسيتم إرسال البيانات إلى الصفحة الهدف ولكن دون إظهار أي معلومة عن تلك البيانات في شريط العنوان للمتصفح. كما موضح في الصورة التالية:




قد يقول البعض..مافائدة استخدام الدالةGET..والتي ستكشف البيانات للجميع ...سأقول لكم أن هذه الدالة يتم استخدامها فقط في الأماكن التي يفضل أن يتم إظهار البيانات فيها للمبرمج والمستخدم ...حتى يعرف ماهي القيم التي تم جلبها وماهي الصفحة الهدف المراد الذهاب إليها والتي ستكون مرهونة بقيمة المتغير المرسل بالدالةGET...وهي ميزة هامة..وإظهار البيانات في هذه الحالة ..لن يؤثر كثيرا على الsecurity ...أما في الأماكن التي تستدعي الsecurity فمن الضروري استخدام الدالةPOST .

كل ما ذكر أعلاه عبارة عن توضيح عام لآلية العمل وكيفية ظهور النتائج.

إذاً كما شاهدنا أن هناك أهمية لاستخدام الدالتين كلٌ في المكان والزمان المناسب .ويمكن تلخيص أماكن استخدامها بالمواضع التالية "سيتم نقاش المواضع من خلال مثال لموقع تجاري يتعامل مع عمليات الدفع الإلكتروني":
أولاً GET:
1- مثلا عند الضغط على منتج معين لمعرفة تفاصيل هذا المنتج سيتم إرفاق الID الخاص بهذا المنتج مع الرابط ليقوم المتصفح بالبحث عن المنتج المحدد في قاعدة البيانات..وجلب تفاصيله.وعرضها للمستخدم .



والكود هو كالتالي :


2- في عمليات البحث عن منتج معين ضمن قاعدة البيانات.يفضل استخدام الدالةGET حيث أيضا يتم إقحام القيمة المراد البحث عنها ليتم استخدامها في استعلام البحث وإظهار النتائج الموافقة..حيث ستلاحظ في الصورة التالية أن القيمة التي تم إدخالها إلى form الإدخال يتم عرضها في شريط العنوان.ويتم عرض النتائج في تلك الصفحة بعد تنفيذ الاستعلام :



والكود على الشكل التالي :


3- الدالةGET مفيدة في أشياء كثيرة فمثلاً محركات البحث يجب أن تستخدم هذه الخاصية لكي يستطيع المستخدم أن يستخدم عنوان البحث ويحتفظ به لوقت آخر ولا يقوم من جديد بكتابة الكلمة التي يبحث عنها وذلك لأن الباراميترات الممرة عبرها تبقى ضمن browser history.

ثانيا POST:
كما ذكرنا تستخدم أيضاً الدالة POST لتمرير قيم الحقول المدخلة من قبل المستخدم إلى الصفحة الهدف ولكن بطريقة لا يمكن من خلالها معرفة قيمة الحقل التي تم إرسالها بواسطة هذه الدالة.حيث لا تظهر في شريط العنوان للمتصفح.بعد الرابط ويمكن تلخيص أهم الأماكن التي يفضل استخدامها فيها وفق مايلي .
1- غالباً مايتم استخدام هذه الدالة في عمليات تسجيل الدخول والولوج إلى قواعد البيانات.وذلك لسرية المعلومات التي يتم إدخالها كالاسم والإيميل وكلمة السر..ومن الطبيعي أن تكون هذه المعلوات سرية لذلك تستخدم في هكذا حالات الدالة POST .
2- في عمليات الدفع الإلكتروني وإدخال البيانات إلى سلة المشتريات..من الضروري أيضا أن تكون المعلومات المرسلة بين الصفحات سرية وغير ظاهرة للعلن.وهنا يجب استخدام هذه الدالة أيضا.


وعلى كل الأحوال لايمكن حصر أماكن استخدامات هاتين الدالتين..بشكل دقيق ,ولكن قد بينت أهم الأماكن التي يمكن للمبرمج استخدامها فيها والآن سنقوم بتلخيص خصائص كل واحدة بالنقاط التالية:
أولا GET:
• الباراميترات الممرة عبرها تبقى ضمن browser history لأنها تكون جزء من الURL .
• لايجب استخدام الدالةGET عند التعامل مع البيانات السرية والحساسة.
• حجم البيانات التي يتم نقلها عبرها صغير مقارنة بالدالة POST حيث أن أقصى عدد محارف يمكن نقله عبرها على سبيل المثال في متصفح Internet Explorerهو: 2,048 محرف.والسبب في ذلك هو أن البيانات يتم نقلها في URL. وهو مقيد بطول معين .
• يمكن القول ان الدالة GET أسرع من الدالة POST


ثانيا POST :
• الباراميترات الممرة عبرها لا يتم حفظها ضمن browser history.
• تستخدم عند التعامل مع بيانات سرية وحساسة ككلمات السر والمعلومات البنكية ..
• يمكن من خلالها نقل كميات كبيرة من البيانات حيث يمكن عبرها نقل ما يقارب 8 Mb من البيانات وذلك يعود لسبب أن البيانات لايتم نقلها عبر الURL كما في ال الدالة GET بل يتم نقلها ضمن الـ header للصفحة.

 

 

إضافة تعليق

لأضافة تعليق ... يجب تسجيل الدخول أولاً , إذا لم يكن لديك حساب اصغط هنا