الأربعاء، 24 يوليو 2013

الدرس السادس والعشرون: برنامج الدروس الجزء الاخير

متطلبات قبل البدء :
  • مراجعة جميع الدروس السابقه
أهداف الدرس:
  • الصفحه index.php
  • الصفحه reg.php
  • الصفحه do_reg.php
  • الصفحه check.php
  • الصفحه member.php
  • الصفحه lesson.php
  • الصفحه do_les.php
  • الصفحه view.php
  • الصفحه lesbyyou.php
  • الصفحه topic.php
  • الصفحه do_top.php
  • تحميل التطبيق كاملا


الصفحه index.php :

في هذه الصفحه , نظهر للمستخدم نموذج الدخول , واذا لم يكن مسجلا فنضع له رابط صفحة التسجيل , لو نلاحظ الان لا نحتاج الى ان نقوم بكتابة النموذج ,, لاننا وضعنا داله تقوم بالنموذج واسميناها do_login_form اليس ذلك صحيحا ؟ اذن ما نحتاجه اولا , هو ان نقوم بإدراج الملف config.php وهو موجود داخل المجلد include لكي يقوم ادراج لنا كل الملفات الاخرى , لاحظ الكود التالي :
لاحظا اننا حددنا مكان الملف config.php , واننا كتبنا عنوان الصفحه , ولو كتبنا الداله من غير عنوان فسوف تعمل , راجع الدرس السابق لتتذكر لماذا , ثم وضعنا دالة اظهار نموذج الدخول واذا لم يكن العضو مسجلا يظهر له رابط الى صفحة التسجيل, لاحظ التالي:

الصفحه reg.php :
لو ان المستخدم ليس بعضو معنا , وذهب الى صفحة التسجيل فنظهر له نموذج التسجيل حيث يطلب منه اسم المستخدم ,, وكلمة المرور مرتان , والبريد الالكتروني. لاحظ الكود التالي:
وناتجنا هو التالي:

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

الصفحه check.php :
هذه الصفحه تقوم بالتحقق من اسم المستخدم والبريد الالكتروني في قاعدة البيانات ثم مقارنتها بما ادخله المستخدم عند تسجيل الدخول , واذا كانت صحيحه فسوف تقوم بتحويله الى صفحة الاعضاء المسجلين بإستخدام الداله ( header ) , لاحظ التالي:
لاحظ اننا في تحويل المستخدم نقوم بإرسال اسم المستخدم مع الصفحه ( الطريقه GET ) وذلك لاننا نريد ان تكون مدخلا الى الداله display_menu حيث انها تعرض اسم المستخدم وتضع في كل رابط رقم المستخدم في قاعدة البيانات لكي نستخدمه لاحقا اذا اردنا ان نعرف الدروس الذي اضيفت من قبل المستخدم

الصفحه member.php :
في هذه الصفحه لا يوجد الكثير , فقط نقوم بعرض صفحة الزائر والروابط التي يمكن العمل عليها , واظهار اسمه ( لا تنسى اننا نقوم بإرسال اسمه من صفحة check.php و ندخلها للداله وهي تقوم بإستخراج الباقي ) , لاحظ التالي:
وسوف يكون ناتج الصفحه هو التالي:
لاحظ لانني مراقب فظهر رابط اضافة موضوع ولكن لو انني غير مراقب , فسوف يكون كالتالي :
ولو اردت معرفة ما اعنيه من اخذ رقم عضوية المستخدم لارسالها من صفحه الى اخر , فلو قمت بوضع الفأره على رابط اضافة درس جديد فسوف ترى الشكل التالي :
قد تسأل لماذا احتاج الى رقم المستخدم , الاجابه هي بكل بساطه , اننا لو اردنا المستخدم ان يضيف درس فنحتاج ان نقوم بمعرفة من هو المستخدم الذي اضاف الدرس , ويجب ان ندرج في الجدول رقم المستخدم لنربطه بالدرس , هل نسيت تصميم جدول الدورس في قاعدة البيانات , يوجد هناك لدينا حقل اسمه user_id لربط كل مستخدم بالدرس الذي قام بكتابته , :)

الصفحه lesson.php :
هذه الصفحه تجعل المستخدم يقوم بإضافة درس جديد , حيث توفر له نموذج الاضافه الذي يحوي اسم الدرس و نص الدرس واي موضوع يتبع لكي نقوم بإدراج رقم الموضوع وطبعا رقم المستخدم الذي ارسلناه من صفحة member.php لاحظ التالي :
نأخذ رقم المستخدم في البدايه :
نستعلم عن المواضيع الموجوده في قاعدة البيانات , واذا لم يكن هناك مواضيع او لم يتم الاستعلام فلا يمكن للمستخدم ان يضيف درس ( هل يعقل ان اضيف درس لا ينتمي الى اي موضوع ؟ )
اذا نجح الاستعلام , سوف اقوم بالتحقق من عدد الاصفف التي ارجعها لي الاستعلام , اذا كان عددها صفر , اي لا يوجد اي مواضيع مفعله حاليا ولا يمكن اضافة درس , واذا كان اكثر من صفر فمعناها ان هناك مواضيع ويمكن ان ندرج تحتها بعضا من الدروس , لاحظ التالي :
ثم نقوم بعرض نموذج اضافة الدروس كاملا وندرج قائمه بها المواضيع الموجوده لدينا , بحيث يختار المستخدم اي موضوع ينتمي اليه الدرس

لو تلاحظ في الصوره ( اضغط عليها للتكبير ) اننا استخدمنا دالة تكرار لعرض المواضيع على شكل قائمه , ولاحظ اننا نرسل رقم المستخدم بالطريقه التي تعلمناها سابقا ( hidden ) هل وضحت الفكره الان ؟ اذن ناتجنا هو الشكل التالي:

الصفحه do_les.php :
هنا كالعاده نتحقق من ان جميع المعلومات موجوده , ثم نضيفها في قاعدة البيانات , ونظهر الخطأ اذا كانت هناك اي اخطاء

الصفحه view.php :
هذه الصفحه فقط نستخدم فيها دالة اظهار جميع الدروس , التي كتبناها في الملف output.inc.php
وناتج هذه الصفحه هو التالي:

الصفحه lesbyyou.php :
هنا نظهر للمستخدم جميع الدروس التي قام بإضافتها بحيث نرسل للصفحه رقم المستخدم كما فعلنا سابقا ونستعلم في قاعدة البيانات عن الدروس التي اضيفت عن طريق هذا الرقم :

الصفحه topic.php :
نفس طريقة اضافة الدرس , ولكن نقوم بإستخدام دالة المواضيع بدلا عن دالة الدروس لاحظ التالي:
وناتجها هو التالي:

الصفحه do_top.php :
نتحقق من المعلومات مره اخرى , ونقوم بإضافة الدرس في قاعدة البيانات :

تحميل التطبيق كاملا :
نظرا لطلب كثير من المتعلمين للغة PHP بأن اقوم بوضع الملفات كامله لهذا التطبيق , سأتجيب لذلك , ولكن نصيحة لك اخي المتعلم , قم بعمل كل شي بنفسك ثم بعد ذلك قارن عملك مع هذا العمل , لكي تزيد نسبة الفهم ويسهل عليك العمل , فجيب عليك ان تعرف ان النسخ واللصق لن يفيدك بشيئ في تعلم البرمجه , ولكن يجب عليك المحاوله مره تلو الاخرى الى ان تصل الى هدفك المطلوب :)


سؤال على الدرس :

1 – حاول بأن تقوم بأستكشاف بعض من عيوب هذا البرنامج , وماذا يحتاج لكي يعمل بشكل صحيح , ومالذي ينقصه
2 – قم بعمل الصفحه لفقدان كلمة المرور
3 – حاول ان تفكر بطريقة عمل تفعيل اشتراك
4 – قم بعمل صفحة تجعل المستخدم يقوم بتغيير بياناته وتحديثها
5 – حاول ان تقوم بصفحه لعرض الدروس وتنسيقها

الـــدرس الــقادم :


سوف نقوم في الدرس القادم بالتعرف على بعض المتفرقات في لغة PHP

الدرس الخامس والعشرون: برنامج الدروس الجزء الثاني

متطلبات قبل البدء :
  • مراجعة جميع الدروس السابقه
اهداف الدرس:
  • الداله mail
  • الداله header
  • الملفات التي نحتاجها
  • البدأ في تطبيق البرنامج


الداله mail :
اذا اردنا ان نقوم بإرسال بريد الكتروني الى مستخدم , او الى انفسنا فسوف نستخدم هذه الداله , وهي تعمل بشكل جيد , ولكن ليس دائما , ولكن اذا استخدمها مع السيرفر الشخصي وهي غير مفعله فلن تعمل , ولكي ترى عملها بشكل صحيح فيجب ان يكون لديك مساحه في موقع يدعم لغة PHP وسوف ترى عملها بشكل جيد هناك , لاحظ كيفية عمل الداله:
الداله header :
هذه الداله لها استخدامات كثيره جدا , وهي تقوم بإرسال معلومات HTTP ( رؤوس HTTP ) ولن نتطرق لشرحها الان , ولكن سوف نستخدمها في مثالنا للتحويل المستخدم من صفحه الى اخرى اليا , لكي نقوم بالاستغناء عن JavaScript ونتجنب استخدامها , ولكي نجعلها تعمل سوف نقوم بالتالي :
الملفات التي نحتاجها:
لكي نقوم بعمل هذا البرنامج , هناك طرق كثير جدا , ولكن دائما نختار الطريقه الانسب لنا والتي نعتقد انها جيده, لا اعلم اذا كانت طريقتي جيده ولكن متأكد انها سلميه ومناسبه وتعمل بشكل صحيح , مع ان هناك بعض العيوب وهي اننا لا نستطيع تتبع المستخدم من صفحه الى اخرى, ولكن عملته بطريقه اخرى وليست مناسبه. في الدروس المتقدمه سوف نرى كيفية تتبع المستخدم ونقوم بتحسين البرنامج الى الافضل. نحتاج في برنامجنا الى ملفات كثيره وقد وضعتها هنا في جدول لكي ترى اسم الملف وكيفة عمل كل ملف , لاحظ التالي:

الملف

عمل الملف
index.phpهنا يقوم الملف بإدخال
اسم المستخدم وكلمة المرور , واذا كان جديدا يذهب الى التسجيل
check.phpالتأكد من اسم المستخدم
وكلمة المرور وتحويل المستخدم في حال صحتها
reg.phpصفحة التسجيل
do_reg.phpالتحقق من معلومات
المستخدم وادراج المعلومات في قاعدة البيانات
member.phpصفحة المستخدم وفيها كل
ما يحتاج
view.phpعرض جميع الدروس
lesson.phpاضافة درس جديد
do_les.phpالتأكد من الحقول وادراج
الدرس في قاعدة البيانات
topic.phpاضافة موضوع جديد
do_top.phpالتأكد من الحقول وادراج
الموضوع في قاعدة البيانات
lesbyyou.phpعرض الدروس التي اضيفت من
المستخدم
config.inc.phpملف نضع به معلومات
الاتصال في قواعد البيانات وندرج به الملفات التي نحتاجها
output.inc.phpدوال التصميم للصفحات ,
عرض القوائم والنماذج وغيرها
func.inc.phpدوال عامه نحتاجها لادراج
المعلومات وتسجيل المستخدم وغيرها
auth.inc.phpدوال التحقق من معلومات
المستخدم وصلاحياته
imagesفي هذا المجلد نضع صور
الاقسام التي نضيفها
include في هذا المجلد نضع
الملفات التي يوجد بها الدوال

البدء في تطبيق البرنامج:
لنبدأ في الملف output.inc.php وهذا الملف يحوي جميع دوال النماذج ( نقوم بإنشاءها نحن ) وغيرها , سوف اذكر الدوال هنا وسوف اشرحها بشكل مبسط :
هذه الداله تقوم بإنشاء رأس الصفحه , ونقوم بإدراجها في كل صفحه لدينا , ومدخلها عنوان الصفحه وجعلنا فراغ ($title = ” ) في مدخل الداله لانه توجد احتماليه ان لا يكون هناك عنوان للصفحه
هذه الداله تقوم بإقفال وسوم رأس الصفحه , وندرجها في النهايه كلما ادرجنا رأس الصفحه

هذه الداله تقوم بإدراج نموذج الدخول (اضغط على الصوره للتكبير ) , حيث تعرض اسم المستخدم وكلمة المرور وفي حالة ان المستخدم لم يسجل بعد توفر له رابط صفحة التسجيل
هذه الداله توفر لنا الروابط بشكل تلقائي , حيث لا نضر لكتابة وسوم الروابط في كل مره ولكن مره وحده , وندخل لهذه الداله عنوان الرابط و الاسم الذي يظهر للمستخدم.

هذه الداله الطويله المخيفه بسيطه جدا (اضغط على الصوره للتكبير ) , وعملها اظهار قائمة للمستخدم يختار منها اما اضافة درس او مشاهدة المواضيع , واذا كان مستخدم مراقب فسوف تفتح له رابط اضافة موضوع , ندخل لهذه الداله اسمه المستخدم لكي نقوم بعرضه ونخرج منها رقم المستخدم في قاعدة البيانات لنرسله من صفحه لصفحه ونتتبعه في الصفحات ( لاحظا استفادتنا من الحقلuser_admin ) بيحث لو كان يحوي y فهو مراقب واذا كان n فهو مستخدم عادي.

تظهر لنا هذه الداله نموذج التسجيل للمستخدم ( اضغط على الصوره للتكبير ), لكي يستطيع التسجيل وان يقوم بإضافة مواضيع

تقوم هذه الداله ( اضغط على الصوره للتكبير ) بإظهار نموذج اضافة الموضوع ( للمراقب ) لكي يستطيع اضافة مواضيع جديده.
هذا الملف سهل جدا , وظيفته ان نضع دوال تقوم باضافة ( مستخدم , درس , موضوع ) جديد فقط. وداله اخيره لجلب رقم المستخدم عن طريق اسمه.

هذه الداله تقوم بالتحقق من اسم المستخدم وكلمة المرور ( لاحظ اننا نقارن بكلمة المرور المشفره ) واذا تطابق لدينا نرجع القيمه ( true ) واذا لم يطابق نرجع القيمه ( false )
وظيفة الداله ان تقوم بمقارنة كلمة المرور الاولى مع كلمة المرور الثانيه ( في التسجيل ) اذا تطابقت يرجع القيمه ( true ) واذا لم تتطابق يرجع القيمه ( false )

تتحقق هذه الداله من ان اسم المستخدم جديد , اي لا يوجد مستخدم اخر قد قام بالتسجيل بنفس الاسم

هذه الداله تقوم بالتحقق من البريدالاكتروني الذي يدخله المستخدم , ( كل مستخدم لديه بريد الكتروني واحد و مستحيل ان يكون مستخدمان لهما نفس البريد )
دالتنا هذه تتحقق من صحة البريد الاكتروني كما تعلمنا في درس ( التعابير القياسيه ).
في هذا الملف ندرج جميع الملفات السابقه , لكي ندرج هذا الملف فقط وهو يقوم بالعمل الباقي , ونقوم بوضع الاتصال في قاعدة البيانات في هذا الملف


سؤال على الدرس :

1 – حاول بأن تقوم بإستخدام الملفات بنفسك , وحوال ان تقوم بعمل البرنامج لوحدك الى ان اقوم بكتابة بقية الدرس

الـــدرس الــقادم :
سوف نقوم في الدرس القادم بمتابعة عمل البرنامج لانه لم يبقى الا القليل فقط 

كتر مشاهدة