لغة php : النماذج وطرق الادخال
تستخدم المتغيرات $_GET و $_POST لإسترجاع معلومات من النماذج مثل اسم المستخدم وغيرها .
التحكم بالنماذج
أكثر الأشياء أهمية عند التعامل مع نماذج HTML و PHP هو أن أي عنصر من النماج في صفحات HTML ستكون متوفرة تلقائياً مع أكواد PHP .
مثال
يحتوي المثال التالي على نموذج HTML مع حقلين من نماذج الادخال و أيضاً أيقونة إرسال :
<html> <body> <form action="welcome.php" method="post"> الاسم : <input type="text" name="fname" /> العمر : <input type="text" name="age" /> <input type="submit" value="ارسال" /> </form> </body> </html>
عند تعبئة الحقول في المثال السابق والضغط على الأيقونة ارسال سيتم ارسال البيانات الى ملف PHP و المسمى welcome.php
يجب أن يكون ملف welcome.php يحتوي على الكود التالي :
<html> <body> مرحباً <?php echo $_POST["fname"]; ?>!<br /> عمرك هو <?php echo $_POST["age"]; ?> عام. </body> </html>
ستظهر النتيجة على المتصفح حسب وضع البيانات في ذلك الملف
مرحباً محمد !
عمرك هو 25 عام .
سيتم شرح المتغيرات $_GET و $_POST في الدرس القادم .
فعالية النماذج
يجب التأكد من فعالية نماذج الادخال التي يستخدمها الزائر ان أمكن لأن عمليه التأكد على المتصفح تعتبر سريعة و تقلل من ضغط التحميل على السيرفر .
يجب استخدام خاصية التأكد من نماذج الادخال وخاصة ان كان النموذج سيتم ارساله الى قاعدة البيانات . افضل طريقة لإنشاء تفعيل للنموذج على السيرفر هو ادراجه في النموذج نفسه بدلاً من الذهاب الى صفحة أخرى و عندها سيحصل المستخدم على رسالى الخطأ في نفس الصفحة و بتلك الطريقة يمكن استكشاف الأخطاء بسرعة و سهولة .
لغة php : المتغير GET
يستخدم المتغير $_GET في PHP لجمع القيم في النماذج مع الطريقة method="get"
المتغير $_GET
ترسل المعلومات عبر النماذج من خلال الطريقة GET وهي مرئية للجميع أي تظهر المعلومات على رابط المتصفح كما تحتوي على كمية محدودة من المعلومات المرسلة .
مثال
<form action="welcome.php" method="get"> الاسم : <input type="text" name="fname" /> العمر : <input type="text" name="age" /> <input type="submit" value="ارسال" /> </form>
عند الضغط على رز الارسال سيظهر على المتصفح المعلومات التي قمت بإدخالها في حقول النموذج .
http://www.w3arabiconline.com/welcome.php?fname=Peter&age=37
يستخدم الملف welcome.php المتغير $_GET لجمع البيانات أي ستصبح الأسماء الخاصة بالنموذج عبارة وسوم للمصفوفة $_GET :
مرحباً بك <?php echo $_GET["fname"]; ?>.<br /> عمرك <?php echo $_GET["age"]; ?> عام
متى نستخدم الطريقة method="get"
عند استخدام الطريقة method="get" في نماذج HTML عندها جميع الأسماء و القيم الموجودة ضمن وسم <input> ستظهر على رابط المتصفح .
ملاحظة
- لا يجب استخدام هذه الطريقة عند ارسال بيانات هامة مثل كلمة المرور أو أي معلومات حساسة . و على أي حال لأن المتغيرات يتم عرضها على رابط المتصفح يمكن استخدام bookmark علامة للصفحة و التي يمكن أن تكون مفيدة في بعض الحالات .
- ان الطريقة get غير مناسبة عند ارسال كميات كبيرة من البيانات و أيضاً لايجب استخدامها عندما تتجاوز كمية القيم عند 2000 حرف .
لغة php : المتغير POST
يستخدم المتغير $_POST في PHP لجمع القيم في النماذج مع الطريقة method="post"
المتغير $_POST
ترسل المعلومات عبر النماذج من خلال الطريقة POST وهي غير مرئية للجميع أي لا تظهر المعلومات على رابط المتصفح كما تحتوي على كمية غير محدودة من المعلومات المرسلة .
ملاحظة : الحجم الكلي للطريقة POST هي 8 ميجابايت و بشكل افتراضي يمكن تغيير هذه الاعدادات من خلال ملف php.ini من خلال الضبط post_max_size .
مثال
<form action="welcome.php" method="post"> الاسم : <input type="text" name="fname" /> العمر : <input type="text" name="age" /> <input type="submit" value="ارسال" /></form>
عند الضغط على زر الارسال سيصبح الرابط كالتالي :
http://www.example.com/welcome.php
يستخدم الملف welcome.php المتغير $_POST لجمع البيانات أي ستصبح الأسماء الخاصة بالنموذج عبارة وسوم للمصفوفة $_POST :
مرحباً بك <?php echo $_POST["fname"]; ?>.<br /> عمرك <?php echo $_POST["age"]; ?> عام
متى نستخدم الطريقة method="post"
ان المعلومات التي ترسل من النماذج من خلال الطريقة POST تكون مخفية عن الاخرين و غير محدودة بكمية المعلومات المرسلة .
وعلى أي حال وبسبب أن هذه الطريقة مخفية و لاتظهر على الرابط فهذه الطريقة غير صالحة لإنشاء علامات للصفحات bookmarks .
المتغير $_REQUEST
يحتوي المتغير المعرّف $_REQUEST في لغة PHP على محتوى كلاً من $_GET و $_POST و $_COOKIE .
يمكن أن يستخدم المتغير $_REQUEST لجمع بيانات النموذج و إرساله الى كلاً من الطريقتين GET و POST .
مثال
مرحباً بك <?php echo $_REQUEST["fname"]; ?>.<br /> عمرك <?php echo $_REQUEST["age"]; ?> عام