الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

الدرس رقم صفر: قبل أن تتعلم PHP

مغلق
بدأه صلاح في 29 مايو 2002 · 12 رد · 9,005 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

هذا الدرس معد للمبتدئين تماماً، وهو عبارة عن بعض المفاهيم التي يجب أن يفهمها مبرمج الPHP قبل أن يبدأ استخدامها.

أولاً: تعلم لغة HTML

لا يخفى على الجميع أن لغة الPHP تعتمد أساساً على لغة HTML وإن كانت قد لا تحتاجها كثيراً، ولكنني سأفترض أن متابعي هذه الدروس لديهم خبرة كافية بتعليمات HTML، ولمن يرغب في تعلمها فأعتقد أن هناك العديد من المواقع العربية في هذا المجال.

ثانياً: مفهوم الCGI

يختلط عند البعض معنى كلمة CGI ولغة البيرل، وهذا خطأ شائع سببه ارتباط اللغة بهذه الكلمة، والأصح أن كلمة CGI يعني Common Gateway Interface أو ما يعني واجهة المدخل العامة أو المشتركة وهي بذلك تصف الطريقة التي تتبعها كل من Perl و PHP في بعض الحالات، أي أنه لا توجد لغة اسمها CGI.

نعرف أن صفحات الويب حين بدأت كانت تعتمد أساساً على العرض وليست لها القدرة على أخذ بيانات من الزائر، لذلك نشأت طريقة الCGI وهي تعتمد على تمرير بيانات من الزائر عن طريق بروتوكول http بأحد الاسلوبين: الأخذ GET أو الإرسال POST ، يستقبلها السيرفر ويوجهها إلى برنامج الCGI الذي يمكن أن تتم برمجته بلغة السي أو بيرل، أو حتى PHP، ويقوم بمعالجتها في السيرفر وإعادة النتائج إلى الزائر عبر نفس البروتوكول.

طريقة الأخذ GET :

يعتمد هذا الاسلوب على تمرير بيانات إلى السيرفر عن طريق واصف العنوان نفسه URL، ولتوضيح ذلك سأقوم بشرح محتويات واصف العنوان بشكل كامل..

معلومات عامة:

الصيغة الكاملة لواصف صفحات الويب:

protocol://user:pass@chan.domain.typ.co/path/file.ext?search#hash

للوهلة الأولى يبدو للجميع وكأن العنوان يبدو غريباً، وفي الواقع هذا صحيح لأننا تعودنا على الاسلوب المختصر في استخدام العناوين www.domain.com مثلاً، وذلك لأن بعض أقسام صيغة الواصف غير أساسية، وسوف أشرح كل قسم بالتفصيل لزيادة المعرفة والتوضيح أكثر، وحتى لا يتهمني البعض بالتأليف!

protocol وهذا الجزء الذي يحدد البروتوكول الذي سيستخدمه المستعرض أثناء طلب الصفحة، في العادة يتم استعمال البروتوكول الافتراضي http، في حين يمكن استخدام بروتوكولات اخرى مثل https وغيرها.

user:pass قد يتطلب الوصول إلى هذا القسم من الموقع اسم مستخدم وكلمة مرور خاصة، حسب بروتوكول http 1 وبدلاً من الانتظار حتى تظهر رسالة تطلب اسم دخول وكلمة مرور، يمكن كتابتها قبل اسم الموقع متبوعة بعلامة @ وهي اختيارية حسب طلب السيرفر، هل تفاجأتم بهذه المعلومة؟

chan اسم القناة، أو ما يطلق عليه البعض اسم فرعي، وهو عبارة عن معرف يقوم بتوجيه السيرفر إلى قسم خاص يتم إعداده مسبقاً، في العادة يتم استخدام www بشكل افتراضي.

domain.typ.co اسم النطاق، وهو منقسم إلى ثلاثة أقسام، أو قسمين، الأول يحدد الاسم الرئيسي، الثاني هو النوع مثلاً com ، net ، org ، edu ، info أو gov .. الخ، والقسم الثالث يحدد الدولة مثلاً: .sa أو .eg الخ

path وهو محدد المسار الذي سيقوم السيرفر باتباعه للوصول إلى الملف المطلوب، وقد يكون مساراً حقيقياً مثلما هو الحال في المجلدات أو قد يكون مساراً افتراضياً تم الإعداد له في السيرفر.

file.ext اسم الملف المطلوب وفي العادة فإن .ext يحدد نوع الملف، وإذا لم يتم تحديد الملف فسيقوم السيرفر بالبحث عن الملفات الافتراضية للبداية وهي index.htm أو index.html وربما default.htm حسب إعدادات السيرفر.

مهم جداً!:

?search وهي مجموعة من المؤشرات يتم تمريرها إلى السيرفر في حالة نقل البيانات باسلوب الأخذ GET الذي نتحدث عنه الآن، وتم الاصطلاح على تمرير قيم المؤشرات باسلوب متتابع، حيث يتم ذكر اسم المؤشر وقيمته مثل: data=2 ، وفصل كل مؤشر عن الآخر باستخدام علامة & ، كما يتم استبدال العلامات التي لا يمكن تمريرها عبر العنوان إلى إشارات خاصة، مثلاً المسافة يتم تحويلها إلى + ، أو عبر التشفير الستعشري، مثلاً: %20 (لا بد وأنكم لاحظتم بعض العناوين التي تبدو مليئة بعلامات غريبة مثل %20%2D%4E وهي ناتجة عن تشفير الرموز التي ليست بحروف أبجدية أو أرقام.

#hash وهذا المؤشر يحدد العلامة المرجعية التي يتم إدراجها ضمن ملف الHTML وهي تجبر المتصفح على عرض النقطة التي تم تحديدها، ويصطلح عليها اسم Bookmark أو علامة المرساة Anchor.

وبالتالي فإن تمرير البيانات إلى السيرفر باستخدام اسلوب GET يبدو في المثال التالي:

http://www.visualmind.net/page.cgi?a=10&b=2&c=welcome

أي أن البرنامج page.cgi سيحصل على البيانات التالي:

a=10

b=2

c=welcome

وبالتالي استخدام هذه البيانات ومعالجتها وإعادة النتائج حسب غرض السكربت كصفحة ويب.

يمكن بسهولة تمرير البيانات بهذا الاسلوب عن طريق طلب عنوان، أو عن طريق استخدام نموذج إرسال FORM وتعيين طريقة التمرير إلى GET ، كما هو في المثال التالي:

عند الضغط على زر الإرسال في هذا النموذج سيتم طلب الصفحة التالية:
somescript.php?test=120

غداً إن شاء الله سأكمل الدرس بشرح طريقة الإرسال POST والبدء في التركيز على شرح PHP وربط الدرس مع الدرس الأول والثاني الذان قام بإعدادهما إبراهيم سابقاً.

________________

الدروس المكتوبة في قسم الPHP مجانية لكن حق النشر والاقتباس محفوظة لمنتديات الفريق العربي وكاتب الموضوع، يرجى نقل المصدر واسم الكاتب عند الاقتباس.

1
#2

طريقة الإرسال POST :

يعتمد هذا الاسلوب على تمرير البيانات إلى السيرفر أثناء عملية الاتصال حسب نظام البروتوكول المستخدم، ففي بروتوكول http يقوم المستعرض بإرسال البيانات بعد نجاح الاتصال وتمرير إشارة POST وبعدها يتم نقل البيانات بالترتيب، أما في بروتوكول https فيتم تشفير البيانات Encryption باستخدام خوارزمية خاصة.

يستقبل السيرفر البيانات بنفس الطريقة السابقة ويمررها إلى برنامج الCGI الذي يقوم بدوره بمعالجتها في السيرفر وإعادة المخرجات إلى المستعرض.

لغات PHP,ASP,PERL,CFM تعمل على السيرفر فقط:

تعتبر هذه اللغات لغات مختصة للبرامج التي تعمل على السيرفر، وبالنسبة لصفحات الويب فإن عملية تشغيل برامج الCGI يمكن تمثيلها بالعملية التالية:

المستعرض: يرسل بيانات إلى السيرفر باسلوب GET أو POST

السيرفر: يقوم بتشغيل برنامج PHP,ASP,PERL or CFM لمعالجة هذه البيانات

المستعرض: يستقبل النتائج القادمة من السيرفر على شكل صفحة ويب HTML

ومعنى ذلك أن عملية تشغيل البرنامج تتم في السيرفر وليس على المستعرض أن يتعرف على لغة البرمجة المستخدمة سواء كانت ASP, PHP أو أي من لغات CGI.

ويعني أيضاً أن السيرفر يجب أن تكون لديه القدرة على تشغيل هذا البرنامج بسرعة وبطريقة لا تجعله يغفل الطلبات الأخرى التي قد يتلقاها في نفس الوقت من مستعرضات أخرى.

كما أن ذلك يعني أن برنامج الPHP مثلاً ليس له تأثير على جهاز المستعرض.

لحسن الحظ أن لغة PHP هي أكثر اللغات التي تقدم تسهيلات في عملية استقبال البيانات القادمة من المستعرض، وعملية إرسال النتائج مرة أخرى إلى المستعرض، في حين يتطلب ذلك الكثير من الأوامر والبلاغات في اللغات الأخرى، كما أن لغة PHP اها القدرة على تكوين أي نوع من أنواع المخرجات وإرسالها إلى المستعرض فمثلاً يستطيع برنامج PHP أن يرسل نتائج على شكل HTML أو صور من نوع JPG أو PNG، أو FLASH وأنواع أخرى عديدة دون الحاجة إلى الاستعانة بملفات من هذا النوع، وذلك بفضل التوسعات الديناميكية التي يمكن أن تضاف إلى مفسر لغة PHP.

لغة PHP صديقة للغة HTML:

يعاني الكثير من مبرمجي لغات PERL,C CGI: من الإرهاق أثناء محاولة ربط برامجهم بتصميم مكون بHTML، حيث يجب أن يقوموا بتصميم الشكل في ملفات خارجية أو القيام بتخيل الشكل النهائي للمخرجات أو غير ذلك، في حين يتمتع مبرجو PHP بسهولة التحكم بالشكل والتصميم من خلال HTML وسهولة دمجها مع PHP، حيث يقوم مفسر لغة PHP بمعالجة السكربت باعتبار أنه يحتوي على تعليمات HTML، أو يمكن القول أنه يعتبر أن السكربت عبارة عن ملف HTML يحتوي على تعليمات PHP، وبالتالي فإنه سيقوم بتنفيذ تعليمات PHP ويقوم بترك تعليمات HTML كماهي ويرسلها إلى المستعرض مدمجة مع نتائج تعليمات PHP الموجودة في نفس السكربت.

وبالتالي يمكن بسهولة أن يقوم مبرمج PHP بالتعامل مع ملف السكربت عن طريق أي محرر لصفحات الويب، والتحكم بالشكل والبرمجة في نفس الوقت.

كما أن تقنية القوالب الجاهزة فتحت آفاقاً أكبر أمام مبرمجي PHP لعمل برامج تمتاز بواجهة أنيقة عالبة الجودة، قابلة للتغيير دون الحاجة إلى إعادة البرمجة.

طريقة كتابة برامج PHP:

- يمكنك تصميم صفحات الويب عن طريق أي برنامج تفضله (فرونت بيج، دريم ويفر)، أنا شخصياً أستخدم دريم ويفر MM Dreamweaver وأعتبره مثالياً لتصميم صفحات ويب.

- عندما ترغب في كتابة تعليمات PHP داخل صفحة الويب التي قمت بإنشائها، قم بعرض مصدر الصفحة (HTML View) ، وقم بوضع تعليمات PHP في المكان الذي تريد، تابع الدرس الثاني الذي قام بإعداده الأخ إبراهيم.

- قم بتجربة برامجك على جهازك أولاً قبل نقلها إلى السيرفر، ويوجد في الدرس الأول شرح لطريقة تركيب برامج السيرفر مع مفسر PHP على جهازك.

ما هي البرامج أو المواقع التي يمكنك إنتاجها من خلال PHP:

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

وبالرغم من أن ضخامة عدد البرامج الشهيرة التي تم إنتاجها بواسطة الPHP، إلا أنه لم يتم استغلال القدر الكافي من قدرات هذه اللغة بعد .

هل يكفي الاعتماد على السكربتات المعربة:

الاعتماد على السكربتات المعربة خطأ فادح، يمارسه العديد بل ويمتهنه آخرون، فالتعريب ليس كافياً لجعل السكربت صالحاً للعمل على بيئاتنا ومواقعنا العربية سأقوم بالتركيز على هذا الموضوع في مقالات قادمة، بالإضافة إلى أن ذلك يعطل قدرات عقولنا العربية التي يمكنها أن تنتج أفضل من ذلك يكثير، وبدلاً من التقليد والاكتفاء بالترجمة الحرفية أليس من الأفضل أن نبدأ من حيث انتهى الآخرون ونقوم بإنتاج برامجنا العربية التي تقوم بخدمة أغراضنا العربية والإسلامية؟

علماً أن لغة PHP أسهل بكثير من لغات عديدة، ولا يتطلب احترافها أكثر من بضعة أيام.

________________

الدروس المكتوبة في قسم الPHP مجانية لكن حق النشر والاقتباس محفوظة لمنتديات الفريق العربي وكاتب الموضوع، يرجى نقل المصدر واسم الكاتب عند الاقتباس

1
#3

جزاك الله خير يا أخي

:) :) :) :) :) :) :) :)

#4

الف الف شكرررررررررررررررر لك اخوي صلاح

فعلا تستاهل كل خير

شرح اكثر من رائع ويخلي اللي ما يدري عن البرومجه شي ينشد معك ويهتم بالموضوع

انا من اليوم احد اصغر طلاب منتداكم الرااااااااااااااااااااائع بكل ما تحمله الكلمه من معاني وراح ابلغ كل ربعي انهم يجون هنا

اتمنى تستمرون على هالمنوال ولا تملون

#5

بصراحة يا أخي العزيز [ صلاح ]

مجهود جبار بالنسبة للعرب .. و بصراحة جميع من شاهدتهم كانوا بخلاء لما عندهم من قدارت ..

جعل الله هذه الخدمات التي تقدمها من أجلنا في ميزان حسناتك إن شاء الله تبارك و تعالى .....

اللهم آميــــــــن ... :rolleyes:

#6

شرح رائع لم ار مثلة إلا فى كتاب ال networking fundmentals من شركة prosofttrainning التى تقدم مطبوعاتها ل IBM

اتمنى ان تكمل جميلك و تخبرنى هل يجب ان امتلك شبكة(لاضع ال PHP عل الجهاز الخادم) لاتعلم ال PHP

Technical Lead Developer

My LinkedIn Profile

اللهم قنى شر الجهل و الجهلاء

( اقْتَرَبَ لِلنَّاسِ حِسَابُهُمْ وَهُمْ فِي غَفْلَةٍ مَّعْرِضُونَ ) {الأنبياء:1}

#7

الللللللللللله محييييييك يا صلاح

يسلموا كتير على هالمعلومات : )

#8

win98_eg، لا بالطبع ليست هناك حاجة لامتلاك شبكة، يمكنك وضع مزود ويب الشخصي على جهازك.. تابع الدروس الأخرى لمعرفة الطريقة

مبتدىء جدا، الحزن الأكيد، الفيلسوف، nadeen

شكراً لاهتمامكم ومتابعتكم

#9

اخى صلاح كلامك اثلج صدرى و يشحعنى على التواصل معكم فى منتدى ال php و ساتابع معكم الدروس فلا تتاخروا

Technical Lead Developer

My LinkedIn Profile

اللهم قنى شر الجهل و الجهلاء

( اقْتَرَبَ لِلنَّاسِ حِسَابُهُمْ وَهُمْ فِي غَفْلَةٍ مَّعْرِضُونَ ) {الأنبياء:1}

#10

بارك الله فيك اخي

و بأنتظار باقي الدروس

و موفق اخي

و شكرا لك جدا

#11

ألف ألف شكر

#12

جزاك الله الف خير

#13

جزاك الله خيرا اخى صلاح

ولكن لماذا دائما تجد موقع مثل hotscripts يضع cgi and perl ويفصل عنها php علما بأن هناك ملفات بامتداد cgi فما هى هذه الملفات؟

هذا الموضوع مغلق.

مواضيع مشابهة