PHP هي لغة برمجة نصية تستخدم بشكل أساسي لتطوير الويب ويمكن استخدامها في مجالات برمجية أخرى.
وهي لغة مفتوحة المصدر ويتم تطويرها من قبل مجموعة من المتطوعين حول العالم.
لماذا تتعلم php؟
في ماذا تستخدم php؟
يتم استخدام لغة php في تطوير أكثر من ٢٠ مليون موقع وتطبيق ويب.
أمثلة على مواقع وخدمات تم تطويرها باستخدام php:
معرفة أساسية بلغة HTML
معرفة أساسية بلغة CSS
جهاز حاسب آلي بمواصفات متوسطة
المدة | الدروس (213) |
---|---|
المقدمة -
مقدمة تعريفية عن المادة وعن المدرب
|
|
05:41 |
تعرف على PHP وعلى هذه المادة
في هذا الدرس سأعرفك على نفسي وعلى لغة PHP وعلى أسلوب التدريب في هذه المادة. |
تجهيز البيئة المحلية +
تجهيز البيئة المحلية للبدء بالتطوير
|
|
02:17 |
تثبيت الخادم المحلي XAMPP
نحتاج لبرنامج XAMPP للتطوير وهو حزمة من البرامج الضرورية لتشغيل خادم الويب على الجهاز المحلي |
01:18 |
اختيار محررا جيدا قبل البدء بالتطوير
قبل أن تبدأ من الجيد أن تختار محررا جيدا يساعدك على العمل |
البداية السريعة +
هنا سنبدأ بسرعة لكي نفهم سريعا كيف تعمل PHP
|
|
02:45 |
كيف نبدأ ؟
هنا سنتعلم كيف نبدأ بالبرمجة باستخدام PHP |
03:01 |
تضمين PHP داخل HTML
كيف نقوم بتضمين شفرة PHP داخل صفحة HTML |
بناء الجمل البرمجية Syntax +
هنا سنتعلم كيف نقوم بكتابة الجمل البرمجية Syntax باستخدم PHP
|
|
01:56 |
كتابة التعليقات على الشفرات البرمجية
كيف تقوم بكتابة تعليق على الشفرات البرمجية ولا يظهر إلا لك! |
01:37 |
حساسية الأحرف case sensitivity
تعرف على حساسية الأحرف في لغة PHP |
01:28 |
المتغيرات وكيفية كتابتها
في لغة PHP تستطيع كتابة متغيرات بأنواع متعددة. شاهد هذا الدرس لمعرفتها. |
02:12 |
الثوابت constants
ماهي constants وفي ماذا تختلف عن المتغيرات؟ |
التعامل مع المخرجات +
كيف نقوم بإظهار المخرجات ونتعامل معها
|
|
03:17 |
تعرف على echo & print
لنتعرف سويا على echo و print وماهي الفروقات بينهما. |
06:06 |
أنواع البيانات Data Types
سنتعرف هنا على أنواع البيانات وكيف تتعرف عليها PHP. |
05:38 |
النصوص والسلاسل Strings
هنا سنتعرف على النصوص strings وكيف نتعامل معها. |
02:43 |
التعديل على السلاسل "النصوص" والتلاعب بها
كيف تقوم بالتعديل على النصوص مثل تبديل كلمة معينة بأخرى! |
المنطق البرمجي +
كيف نستخدم المنطق البرمجي مثل الشروط في PHP
|
|
04:14 |
المقارنات المنطقية
كيف نقوم بالمقارنة مابين المتغيرات والبيانات. |
05:52 |
الدوال الشرطية if statements
استخدام الدوال الشرطية if و if else و else. |
02:48 |
المُعامل الثلاثي Ternary Operator
تعرف على طريق مختصر للتعامل مع الدوال الشرطية باستخدام Ternary Operator. |
03:37 |
استخدام switch للمقارنة المنطقية
كما تعلمت في if إلا أن switch نقوم من خلالها بتحديد حالات معينة. |
01:10 |
العوامل الرياضية Math Operators
كيف نتعامل مع العمليات الرياضية في PHP. |
المصفوفات PHP Arrays +
سنتعرف على المصفوفات في PHP بأنواعها في السلسلة القادمة
|
|
02:24 |
المصفوفات المفهرسة Indexed Arrays
تعرف على أبسط أنواع المصفوفات في PHP وتسمى Index Arrays. |
04:45 |
المصفوفات الترابطية Associative Arrays
تختلف عن سابقتها Indexed Arrays ولكنها تتميز بالمرونة والقدرة على التكوين الإضافي. |
01:17 |
ترتيب المصفوفات المفهرسة Indexed Arrays
كيفية إعادة ترتيب المصفوفات المفهرسة عند الحاجة. |
01:00 |
ترتيب المصفوفات الترابطية من خلال القيم Values
كيف نقوم بترتيب المصفوفات الترابطية باستخدام القيم الخاصة بها Values. |
01:17 |
ترتيب المصفوفات الترابطية من خلال المفاتيح Keys
الآن كيف نقوم بترتيب المصفوفات من خلال المفاتيح Keys؟ |
التكرار loops +
يحتوي هذا القسم على سلسة دروس لشرح التكرار أو الحلقات التكرارية.
|
|
03:22 |
حلقة تكرار while
سنعرف على ماهية التكرار وماهي الجملة التكرارية while وطريقة استخدامها. |
01:49 |
حلقة تكرار do while
سنتعرف على الجملة التكرارية do while وطريقة استخدامها و الفرق بينها وبين while. |
02:49 |
حلقة تكرار for
يشرح هذا الدرس الجملة التكرارية for وطريقة استخدامها. |
03:14 |
التكرار باستخدام foreach
سنتعلم في هذا الدرس على الدالة التكرارية foreach وأين تستخدم. |
الدوال في PHP +
سنتعرف بالسلسلة القادمة على كيفية كتابة الدوال php functions
|
|
02:19 |
ماهو function وكيف يكتب؟
تعرف على functions ببساطة. |
02:31 |
معلمات الدوال Function Parameters
تعرف هنا على فائدة المعلمات في الدوال وكيف تكتب. |
01:39 |
المعلمات الاختيارية Optional Parameters
قد تجد نفسك بحاجة لوضع معلمة بوضع اختياري "ليست ضرورية للعمل" تعلم كيف تفعل ذلك هنا. |
03:36 |
التعرف على مجال المتغيرات Variables Scope
تعرف على مجال المتغيرات وأين يمكن الوصول لها. |
الطلبات GET POST REQUEST +
ستتعرف في الدروس القادمة على الطلبات في php والفرق بينها
|
|
05:00 |
تعرف على GET POST REQUEST
ماهي الطلبات وماهي الفروقات بينها. |
05:18 |
الإرسال باستخدام GET
ستتعرف على كيفية جلب معلومات من الروابط باستخدام GET. |
01:40 |
الإرسال باستخدام POST
إرسال بيانات باستخدام POST يختلف كليا عن GET تعرف عليه هنا. |
01:43 |
الطلبات باستخدام الجدة "REQUEST"
تختلف REQUEST عن ما سبق فهي تعمل بالنيابة عن GET و POST عند جلب البيانات. |
إنشاء المشاريع +
سنقوم بالدروس التالية بإنشاء المشروع والعمل عليه
|
|
03:34 |
تجهيز المشروع بشكل أساسي في PHP
مستعد؟ أنت جاهز للبدء الآن وسنبدأ بتنفيذ المشروع من الآن. |
07:31 |
تضمين الملفات في ملفات أخرى Include Files
كيف نقوم بتضمين ملف بداخل ملف آخر "including files". |
01:49 |
إضافة مكتبة Bootstrap على المشروع
تعتبر مكتبة مهمة جدا في تطبيقات الويب وهي مكتبة css سنستخدمها في هذه المادة كثيرا. |
02:04 |
المتغيرات الديناميكية في الملفات المضمنة
سنتعلم كيف نقوم بوضع متغير دينياميكي في الملفات التي قمنا بتضمينها سابقا. |
04:44 |
بناء نموذج التواصل
سنقوم الآن ببناء نموذج تواصل نجري عليه العديد من العمليات البرمجية. |
التحقق من صحة البيانات +
سنتعلم في الدروس القادمة أهمية التحقق من صحة البيانات "أمنيا" و "منطقيا".
|
|
02:53 |
التعامل مع النماذج
Security
درس مهم في فهم التحقق من البيانات أمنيا وتحسينا لتجربة المستخدمين. |
03:37 |
التعامل مع الحقول و الملفات POST - FILES
كيف نتعامل مع الحقول المرسلة من النموذج و الملفات. |
05:26 |
التحقق من أنواع الملفات قبل الرفع
كيف تستطيع التحقق من أنواع الملفات قبل قبولها. |
03:14 |
التحقق من الملفات المزيفة
Security
قد يتم تزييف ملف ثم إرساله لك، هنا سنتحقق من نوع الملفات بشكل أعمق. |
03:08 |
التحقق من حجم الملف
ليس منطقيا أن تقبل أي حجم من الملفات دائما؟ لنتعلم كيف نتحقق من حجم الملفات هنا. |
02:49 |
مقدمة في ثغرات XSS وكيف تستغل
Security
Cross Site Scripting من أشهر الثغرات في المواقع وهنا سنتعرف عليها عن كثب. |
03:26 |
فلترة النصوص لمنع الحقن
Security
لكي نمنع الحقن باستخدام XSS علينا فلترة النصوص المدخلة وكيف نقوم بالتلاعب بالواجهة. |
05:29 |
حفظ المعلومات السابقة قبل الإرسال
في حال حدث خطأ في الإرسال يفترض أن نقوم بتعبة النموذج بشكل تلقائي للمستخدم لكي لا يعيد الكتابة مرة أخرى. |
06:29 |
عرض المعلومات ورسائل الخطأ على المستخدم
بعد حفظ الأخطاء والمعلومات في متغيرات سنعرضها الآن على المستخدم. |
رفع الملفات على الخادم +
في السلسلة القادمة سنتعرف على كيفية رفع الملفات على الخادم باستخدام PHP
|
|
05:43 |
مقدمة في الصلاحيات على الخوادم
Security
يوجد صلاحيات في الخوادم على كل مجلد وهنا سنتعرف على هذه الصلاحيات في خوادم Linux. |
04:38 |
تنظيف الشفرات البرمجية
سنتعلم ممارسة جيدة في البرمجة وهي Clean Coding. |
03:20 |
إنشاء المجلدات باستخدام PHP
كيف نقوم بإنشاء مجلدات في الخوادم قبل رفع الملفات عليها وكيف نتأكد من وجودها ومن عدمه. |
03:40 |
أخيرا! سنرفع الملف
رفع الملفات عملية بسيطة وسنقوم برفع الملف الآن. |
04:10 |
تضمين الملفات والفرق بينها require vs include
انتهت عملية الرفع الآن لكن سنتعرف على الفروقات بين include و require قبل تضمين الشفرة في ملف آخر. |
02:13 |
كيف نقوم بتحميل الملفات Download
سنتعرف هنا على طريقة تحميل الملفات من الخادم باستخدام الروابط البسيطة. |
الجلسات Sessions +
في السلسلة القادمة سنتعرف على جلسات المتصفح.
|
|
01:52 |
بدء وإنشاء الجلسة Session
مقدمة عن الجلسات ماهي؟ وإنشاؤها. |
01:19 |
تخزين البيانات في الجلسة
كيف نخزن بيانات في الجلسة. |
02:24 |
استرجاع البيانات المخزنة في الجلسة
التعرف على طريقة استرجاع البيانات التي تم تخزينها في الجلسة. |
02:57 |
تخزين اسم المرسل وعرضه
في هذا الدرس سنتعلم كيفية تخزين اسم المرسل داخل الجلسة ومن ثم عرضه. |
08:37 |
حفظ بيانات النموذج داخل الجلسة
كيفية حفظ البيانات المصدرة من النموذج داخل الجلسة. |
03:47 |
مسح بيانات المتغيرات في الجلسة
سنتعرف على طريقة حذف بيانات المتغيرات في الجلسة عند عدم الحاجة إليها. |
01:38 |
حذف كل البيانات من الجلسة Session Destroy
سنتعرف على طريقة حذف بيانات الجلسة نهائياً. |
الكوكيز Cookies +
سنتعلم في الدروس القادمة كيفية إنشاء وتخزين ملفات التخزين المؤقته Cookies.
|
|
01:14 |
مقدمة في الكوكيز: Cookies VS Sessions
Security
تعريف للكوكيز ومقارنتها بالجلسات والفرق بينهما. |
02:29 |
وضع الكوكيز والحصول عليها set and get
سنتعرف على طريقة وضع الكوكيز والحصول عليها. |
03:19 |
التلاعب في الكوكيز
Security
سنتعرف على طريقة التعامل مع الكوكيز ومخاطرها الأمنية. |
02:08 |
إزالة الكوكيز Remove Cookies
هذا الدرس يشرح طريقة إزالة الكوكيز. |
التعامل مع البريد الإلكتروني mail +
سنتعرف في السلسلة القادمة على كيفية إرسال البريد باستخدام PHP
|
|
02:52 |
أرسل بريدك الإلكتروني الأول
في هذا الدرس ستقوم بإنشاء وإرسال بريدك الأول. |
03:14 |
إرفاق headers مع البريد
ما أهميتها وكيفية إرفاقها. |
البرمجة الشيئية OOP +
سنتعرف على البرمجة الشيئية Object Oriented Programming ماهيتها وطريقة البرمجة من خلالها.
|
|
06:14 |
مقدمة البرمجة الشيئية
في هذا الدرس ستتعلم مفاهيم وأسس البرمجة الشيئية. |
01:39 |
إنشاء class جديد
سنتعلم في هذا الدرس كيفية إنشاء "class" |
01:52 |
الخصائص وأنواعها properties
يوجد في الكلاس مايسمى الخاصية property ولها أنواع سنتعرف عليها الآن |
01:38 |
إنشاء الكائنات "objects"
الآن سنقوم بإنشاء كائن "object" من الكلاس |
02:59 |
استخدام objects في أماكن متعددة
بعد أن تعرفت على الخصائص هيا نستخدمها في أكثر من مكان! |
02:02 |
ماهي Constructors ؟
دوال "سحرية" تستخدم داخل الكلاس وهي تستخدم لبناء الكائنات |
03:44 |
ماهي Destructors ؟
عكس السابقة، فهي تهدم بعد الإنتهاء من الكائن |
01:42 |
المتغير $this
ماهو المتغير "$this" وأين يعمل؟ |
03:37 |
الطرق "methods" داخل الكلاس
ستتعرف على شيء غريب، شيء كان يدعى باسم ثم الآن تغير اسمه؟ سنبني في هذا الدرس قائمة خدمات نعرضها في التطبيق باستخدام method. |
04:07 |
استدعاء methods في مكان آخر
في هذا الدرس سنقوم باستعادة method تحتوي على الخدمات ونعرضها في الصفحة الرئيسية |
03:17 |
باستخدام نفس method سنعرض الخدمات في مكان آخر
نفس المعطيات السابقة وهذه المرة سنعرضها بطريقة مختلفة |
06:25 |
استخدامات متقدمة في classes
الآن سنتعلم طرق متقدمة في الاستخدام |
01:35 |
ماهي الوراثة في الكلاس (Inheritance)
تستخدم الوراثة في الكلاس لتقليل كتابة نفس المنطق مرة أخرى |
03:01 |
إنشاء Product class
تمرين
سنقوم بإنشاء Product class ويفترض أن يرث Service Class وهناك تحدي بانتظارك الآن |
02:20 |
وراثة Service class داخل Product class
تمرين
هل قمت بحل التحدي؟ إن كان نعم فقد قمت بعمل رائع وإن كان لا فهذا أمر طبيعي ﻷنك لم تقم بهذا الأمر من قبل. |
قواعد البيانات MySQL +
في هذه السلسلة سنتعرف على قواعد البيانات MySQL وكيف نتعامل معها
|
|
04:41 |
مقدمة في MySQL و هيكلة البيانات
في هذا الدرس ينتعرف على قواعد بيانات MySQL وعلى المقصود بهيكلة البيانات Data Structure |
02:14 |
مالمقصود بالاستعلام؟ Query
سنعرف في هذا الدرس الاستعلام وماهي مهامه |
03:48 |
تعرف على phpmyadmin
في هذا الدرس ستتعرف على برنامج phpmyadmin وهو واجهة رسومية من خلال الويب تقوم بإدارة قواعد بيانات MySQL |
02:51 |
استعلام إنشاء قاعدة بيانات
كيف نقوم بإنشاء قاعدة بيانات من خلال الاستعلامات؟ |
01:05 |
استعلام حذف قاعدة بيانات
ستتعرف في هذا الدرس على طريقة حذف قاعدة البيانات من خلال الاستعلامات |
06:56 |
تعريف بأنواع البيانات في MySQL
Datatypes وبالعربية أنواع البيانات، ماهي ؟ |
04:05 |
استعلام إنشاء جدول
كيف نقوم بإنشاء الجداول داخل قواعد البيانات باستخدام الاستعلامات |
02:24 |
استعلام إدخال البيانات insert
سنتعرف في هذا الدرس على الاستعلام insert لإدخال بيانات في الجداول |
01:40 |
استعلام عرض البيانات select
في هذا الدرس سنتعرف على كيفية عرض البيانات باستخدام الاستعلام select |
04:24 |
التعرف على الجملة where
لتحديد استعلام بقواعد معينة "أو بمعنى آخر فلتره" للجداول سنستخدم where |
02:21 |
التعرف على الجملة order by
هل تحتاج لترتيب عرض البيانات؟ سنتعرف هنا على كيفية القيام بذلك |
02:10 |
حد عدد البيانات المخرجة باستخدام limit
لكي تقوم بحد عدد البيانات التي تظهر عند الاستعلام، استخدم معي limit في هذا الدرس |
02:10 |
استعلام تحديث البيانات update
كيف تقوم بتحديث بيانات مدخله مسبقا من خلال الاستعلام |
01:56 |
استعلام الحذف! delete
قررت تحذف بيانات معينة؟ في هذا الدرس سنتعلم كيفية حذفها من خلال الاستعلام delete |
03:30 |
إضافة عمود لجدول
سنستخدم الاستعلام alter للتعديل على جدول وإضافة عمود إضافيه له |
02:05 |
التعديل على عمود بالجدول
ايضا من خلال alter سنقوم بالتعديل على عمود موجود مسبقا |
01:33 |
إعادة تسمية الأعمدة
مرة أخرى باستخدام alter كيف نقوم باعادة تسمية عمود |
00:58 |
حذف عمود من الجدول!
انتبه، قبل أن تحذف ركز قليلا بالمحذوف. سنتعلم كيفية حذف عمود من جدول في هذا الدرس باستخدام alter. |
02:52 |
كيف اتذكر صيغة الاستعلام إذا نسيت؟
تمرين
ستتعرف في هذا الدرس على طريقة عرض الاستعلامات قبل تنفيذها وبعد تنفيذها في phpmyadmin في حال نسيتها |
PHP & MySQL +
في هذا القسم سنتعلم سويا بناء المواقع الديناميكية Dynamic Websites وذلك من خلال الاتصال مابين PHP + MySQL
|
|
02:16 |
ماهي المواقع الديناميكية
ماهو المقصود بالمواقع الديناميكية Dynamic Websites |
03:03 |
الاتصال بقاعدة البيانات
سنقوم في هذا الدرس بالاتصال بقاعدة البيانات MySQL |
02:20 |
التحقق من الإتصال بقاعدة البيانات
في حالات كثيرة.. قد ترغب بالتحقق بأن الإتصال تم وستشاهد في هذا الدرس لماذا نتحقق من الاتصال. |
01:49 |
إغلاق الاتصال بقاعدة البيانات
سنتعرف في هذا الدرس على كيفية إغلاق الاتصال بقاعدة البيانات وماهي أهميته |
05:02 |
عرض المدخلات في قاعدة البيانات
في هذا الدرس سنقوم بعرض مدخلاتنا في قاعدة البيانات باستخدام الاستعلامات. |
04:00 |
ماذا فعلنا في الدرس السابق؟
سنقوم في هذا الدرس بالتدقيق بكل ماكتبناه في الدرس الماضي لكي نفهم ماحدث بالضبط |
03:04 |
تجهيز التطبيق للصور
حسنا، قبل أن نتعامل مع الصور دعنا نتعرف سويا على التجهيزات الأولية لذلك. |
02:02 |
عرض الصور من قاعدة البيانات
تمرين
كيف نحصل على الصور وماهي طرق التعامل معها في الملفات وقاعدة البيانات؟ (لديك تحدي) |
06:07 |
عرض الصور واكتشاف المشاكل واصلاحها
تمرين
في هذا الدرس سنعرض الصور وسنحاول سويا البحث عن المشاكل في عرضها وحلها |
05:39 |
تحسين عرض الصور من قاعدة البيانات
في كثير من الأحيان لن تقوم برفع الصور بنفسك، ستحدث مشاكل في الأحجام بلا شك. في هذا الدرس سأعرفك على ممارسة جيدة للتعامل مع الصور. |
03:23 |
تخزين معلومات الاتصال بقاعدة البيانات بملف مستقل
سنتعلم في هذا الدرس فائدة أن نقوم بتخزين ملف الاتصال بقاعدة البيانات في ملف مستقل |
02:45 |
تجهيز جدول الخدمات services
سنقوم بهذا الدرس بتجهيز جدول لتخزين الخدمات لكي نحصل عليها بشكل ديناميكي من قاعدة البيانات |
03:08 |
عرض الخدمات في نموذج التواصل
تمرين
سنقوم بهذا الدرس بعرض الخدمات من قاعدة البيانات في القائمة المنسدلة في نموذج التواصل (يوجد تحدي) |
03:08 |
تجهيز جدول messages
تمرين
سنقوم بهذا الدرس بتجهيز جدول يخزن الرسائل التي تم إرسالها عبر النموذج |
06:05 |
إدخال المعلومات لقاعدة البيانات insert
سنتعلم في هذا الدرس كيف نقوم بإدخال المعلومات في نموذج التواصل إلى قاعدة البيانات باستخدم php |
03:54 |
بناء علاقة بين الجدولين services + messages
سنقوم الآن بإنشاء علاقة بين الجدولين services وmessages باستخدام foreign key |
02:48 |
إدخال بيانات الرسالة مع الربط بجدول الخدمات
سنقوم بهذا الدرس بإدخال البيانات ولكن مع ضبط العلاقة بين الجدولين messages + services |
01:55 |
إصلاح مشاكل المدخلات
في هذا الدرس سنقوم بالتعرف على طريقة لإصلاح مشاكل الإدخال |
06:50 |
عرض الرسائل من قاعدة البيانات باستخدام select
كيف نقوم بالاستعلام عن الرسائل الموجودة في قاعدة البيانات؟ |
01:53 |
تحسين جدول عرض الرسائل
سنقوم بتحسين جدول عرض البيانات مع إضافة أزرار للقيام بأحداث معينة في الموقع |
03:38 |
استخدام join و aliases
في الدرس سنتعرف على طريقة دمج الجداول حسب العلاقة وإعطاء الجداول والأعمدة أسماء مستعارة |
02:16 |
استخدام as لإعطاء اسم مستعار للاعمدة
سنقوم بهذا الدرس بإعطاء اسماء مستعارة للأعمدة والبدء بعرض الرسائل في صفحات مستقلة |
05:02 |
عرض الرسالة في صفحة مستقلة باستخدام select
الآن سنتعرف على طريقة عرض الرسالة لوحدها. |
04:40 |
ربط الرسائل بالخدمات وتحميل الملفات منها
تمرين
سنقوم الآن بالربط بين جدول الخدمات والرسائل والبدء بتحميل الملفات المرفقة مع الرسائل (يوجد تحدي) |
03:58 |
تحميل الملفات من الرسائل
تمرين
هل استطعت حل التحدي؟ لا مشكلة إن لم تستطع سنتعلم هنا طريقة تحميل الملفات المرفقة بالرسائل |
06:19 |
حذف الرسائل من قاعدة البيانات delete
سنتعرف على طريقة الاستعلام delete وحذف الرسائل من قاعدة البيانات |
PHP & MySQL Prepared +
في هذا القسم سنتعرف على prepared statement وهي خاصية من خصائص mysql يمكن استخدمها مع php لزيادة الأمان في التطبيق و تحسين الأداء.
|
|
06:00 |
مالمقصود بـ SQL Injection وماهي Prepared statment
Security
سنتعرف في هذا الدرس على حقن قواعد البيانات SQL Injection وكيف تفيد prepared statement في هذا المجال |
02:26 |
استخدام prepare
سنتعلم في هذا الدرس كيفية تحضير استعلام قاعدة البيانات باستخدام prepare |
03:01 |
استخدام bind_param مع الاستعلام المحضر prepare
سنستخدم في هذا الدرس bind_param وهي دالة لدمج المعلمات "parameters" مع الاستعلامات في prepare |
04:23 |
تنفيذ الاستعلام المحضر execute
في هذا الدرس سنتعلم تنفيذ الاستعلامات باستخدام execute بعدما قمنا بتحضيرها |
05:04 |
تنفيذ استعلام select مع prepared
سنتعلم في هذا الدرس كيف يمكننا تنفيذ استعلام select مع الاستعلامات المحضرة سابقا باستخدام prepared |
02:21 |
تنفيذ استعلام حذف مع prepared
سنأخذ في هذا الدرس مثال على استخدام prepare مع استعلام حذف delete |
توثيق المستخدمين Authentication +
سنتعلم في السلسلة القادمة كيف نقوم ببناء نظام توثيق للمستخدمين بحيث يصبح لدينا القدرة على منحهم إمكانية تسجيل حسابات جديدة والدخول للتطبيق والتحكم بالمستخدمين بناء على توثيقهم
|
|
03:54 |
مقدمة في authentication
تمرين
سنتعرف في هذا الدرس على أهمية توثيق المستخدمين "authentication" مع تحدي بانتظارك! |
04:39 |
إنشاء جدول المستخدمين
سنقوم في هذا الدرس بإنشاء جدول للمستخدمين users مع وضع الأعمدة المطلوبة |
05:18 |
ضبط شريط التصفح وربطه بالتسجيل
سنقوم بهذا الدرس بضبط شريط التصفح في الموقع وربطه مع صفحة التسجيل والصفحات الآخرى |
05:15 |
إنشاء نموذج تسجيل مستخدم جديد
سنقوم الآن بإنشاء نموذج تسجيل مستخدم جديد في التطبيق |
04:25 |
فلترة مدخلات المستخدمين
Security
سنتعلم في هذا الدرس فلترة بيانات المستخدمين بطريقة جديدة وهي mysqli_real_escape_string |
02:40 |
التحقق من صحة البيانات باستخدم مصفوفة الأخطاء
طريقة جديدة ايضا في هذا الدرس! سنستخدم مصفوفة لحفظ الأخطاء بها تسهيلا للعمل. |
04:14 |
عرض الأخطاء إن وجدت في ملف مستقل
سنستخدم الآن تضمين الملفات include لكي يصبح له تصميمه الخاص ويتعامل مع إظهار الأخطاء دائما في التطبيق |
03:36 |
التحقق من وجود المستخدمين قبل التسجيل
سنتعلم في هذا الدرس كيفية التحقق من وجود مستخدم في قاعدة البيانات قبل تسجيله |
01:50 |
عرض قيم الحقول في حال حدوث خطا
بدلا من أن يقوم المستخدم بملء الحقول مرة أخرى عند حدوث خطأ سنعرض له البيانات ولكن هذه المرة ليس عن طريق حفظها في الجلسة! |
02:27 |
استخدام خوارزميات كلمة المرور password_hash
Security
سنستخدم في هذا الدرس الدالة password_hash لكي نقوم بتحويل كلمة المرور إلى مزيج نصي غير قابل للفهم من خلال الخوارزميات الجاهزة في php |
01:34 |
حفظ المستخدم في قاعدة البيانات
سنقوم بهذا الدرس بعملية إدخال المستخدم لقاعدة البيانات بعد أن تم التحقق من بيانات |
03:10 |
توثيق المستخدم وتسجيل دخوله بعد إنشاء الحساب
تمرين
سنقوم بهذا الدرس بالتعرف على فكرة تسجيل الدخول للتطبيق وسنسجل دخول مستخدم بعد إنشاء الحساب له |
03:00 |
منع المستخدم من الوصول لصفحة معينة بعد التسجيل
تمرين
في هذا الدرس سنتعرف على كيفية منع المستخدمين من الوصول لصفحة معينة |
03:20 |
عرض رسالة ترحيبية لمرة واحدة
سنتعرف في هذا الدرس على كيفية عرض رسالة معينة لمرة واحدة فقط على المستخدمين بعد تسجيل حسابات جديدة |
03:02 |
إخفاء روابط الدخول والتسجيل بعد دخول المستخدم
كيف نقوم بإخفاء عناصر من الموقع بناء على توثيق المستخدم مثل روابط صفحات التسجيل والدخول وإظهار رابط تسجيل الخروج |
03:56 |
تسجيل الخروج من التطبيق
في هذا الدرس سنتعلم كيفية تسجيل الخروج من التطبيق |
03:18 |
بناء نموذج تسجيل الدخول
سنقوم في الدرس ببناء نموذج تسجيل الدخول ليستطيع المستخدم تسجيل الدخول لحسابه |
01:46 |
التحقق من وجود المستخدم قبل تسجيل الدخول
في هذا الدرس سنتحقق من وجود المستخدم في قاعدة البيانات قبل عملية تسجيل الدخول |
03:44 |
التحقق من صحة كلمة المرور password_verify
تمرين
سنستخدم في هذا الدرس الدالة password_verify لمقارنة كلمات المرور والتأكد من صحتها |
03:40 |
تسجيل دخول المستخدم بعد التحقق من البيانات
سنقوم الآن بتسجيل دخول المستخدم بعد التحقق من وجوده وصحة بياناته |
02:25 |
إنشاء نموذج استعادة كلمة المرور
سنبدأ الآن بإضافة ميزة استعادة كلمة المرور في التطبيق |
05:58 |
كيف تعمل استعادة كلمة المرور
تمرين
Security
سنفكر في هذا الدرس سويا في آلية عمل استعادة كلمة المرور في التطبيق مع اتخاذ الاجراءات اللآزمة لحماية المستخدمين قدر الإمكان |
03:02 |
إنشاء جدول password_resets
سنقوم بإنشاء هذا الجدول لتخزين طلبات استعادة كلمة المرور فيه. |
04:32 |
إنشاء رموز استعادة كلمة المرور random_bytes + hash
سنستخدم طريقة جديدة لإنشاء hash من خلال دالة random_bytes ودالة hash |
03:40 |
ضبط تاريخ إنتهاء رمز الاستعادة
سنقوم الآن بتعلم كيفية وضع تاريخ إنتهاء لرموز استعادة كلمة المرور بتاريخ في المستقبل |
02:42 |
إظهار رسالة النجاح بعد طلب الاستعادة
سنقوم الآن بعرض رسالة للمستخدم عند طلبه لاستعادة كلمة المرور |
03:13 |
حذف رموز الاستعادة من جدول password_resets
عند قيام المستخدم بطلب استعادة كلمة المرور، يفترض أن يتم حذف اي رموز موجودة مسبقا لهذا المستخدم. |
02:49 |
إنشاء نموذج تغيير كلمة المرور
في الدرس سنقوم بإنشاء نموذج ﻹدخال كلمة مرور جديدة |
01:40 |
إغلاق صفحة الاستعادة في حال عدم وجود رمز
في حال لم يكن هناك رمز استعادة كلمة مرور في الرابط سنقوم بإغلاق هذه الصفحة عن الزائر |
05:21 |
التحقق من صحة رمز استعادة كلمة المرور
يجب علينا التحقق من أن الرمز الخاص باستعادة كلمة المرور صحيح وصالح للاستخدام بناء على تاريخ الإنتهاء الخاص به وهذا ماسنقوم به في هذا الدرس |
07:23 |
تغيير كلمة المرور
الآن سنتعلم كيفية تغيير كلمة المرور للمستخدم بعد طلبها |
05:55 |
إرسال رابط استعادة كلمة المرور بالبريد
وصلنا إلى النهاية! سنقوم الآن بإرسال رابط استعادة كلمة المرور للبريد الخاص بالمستخدم |
01:44 |
ربط نماذج التوثيق مع بعضها
سنقوم بهذا الدرس بربط جميع النماذج الخاصة بالتوثيق مع بعضها |
بناء لوحة تحكم +
في هذه السلسلة سنقوم ببناء لوحة تحكم في الموقع وسنتعرف على طريقة التحكم بمحتوى قاعدة البيانات الدينياميكي وكذلك التحكم بصلاحيات المستخدمين وحماية لوحة التحكم
|
|
04:02 |
كيف ولماذا سنقوم ببناء لوحة التحكم
سنتعرف في هذا الدرس على فائدة لوحة التحكم وماهي الطريقة التي سنقوم بها |
02:00 |
اختيار قالب للوحة التحكم
سنقوم الآن باختيار قالب مناسب للوحة التحكم |
01:32 |
تخطيط قالب لوحة التحكم
سنقوم بهذا الدرس بالتعرف على كيفية تخطيط قالب لوحة التحكم |
05:23 |
ضبط توزيع ملفات القالب
سنقوم بهذا الدرس بتوزيع القالب على عدة ملفات لكي يسهل تعديلها ويصبح اكثر ديناميكية |
03:28 |
اختبار قالب لوحة التحكم
سنجري اختبارا على القالب الذي تم اختياره لكي نتأكد من سلامته |
04:51 |
ضبط تصميم القسم الجانبي من لوحة التحكم
سنقوم بهذا الدرس بضبط ونقل تصميم القسم الجانبي من لوحة التحكم |
04:25 |
تضمين الملفات المطلوبة للعمل
في هذا الدرس سنقوم بتضمين الملفات المطلوبة لعمل لوحة التحكم مثل ملف config و ملف database |
02:07 |
إنشاء ملفات التحكم بالمستخدمين
حان الوقت للتحكم بالمستخدمين ولكن قبل ذلك سنقوم بإنشاء الملفات التي ستتحكم بالمستخدمين |
06:40 |
إظهار قائمة بالمستخدمين المسجلين
سنقوم الآن بإنشاء قائمة بالمستخدمين المسجلين في التطبيق عبر تنفيذ استعلام في لوحة التحكم |
03:21 |
ضبط نموذج إنشاء مستخدم جديد
سنقوم في هذا الدرس بضبط نموذج لإنشاء مستخدم جديد في النظام |
04:44 |
المنطق البرمجي خلف إنشاء المستخدمين
سنقوم بهذا الدرس بضبط المنطق البرمجي الذي يعمل خلف نموذج إنشاء المستخدمين |
02:41 |
حفظ المستخدم الجديد في قاعدة البيانات
بعد إنشاء النموذج وضبط المنطق البرمجي سنقوم الآن بإدخال المستخدم الجديد في قاعدة البيانات |
02:35 |
التعامل مع أخطاء MySQL
يستحسن أن نقوم بالتعامل مع أخطاء MySQL بحيث يعرف المستخدم ماذا حدث أثناء تنفيذ استعلام معين |
01:58 |
إنشاء نموذج تعديل المستخدم
سنقوم بهذا الدرس بإنشاء نموذج تعديل المستخدم ليسمح لنا بتعديل البيانات المسجلة مسبقا |
03:35 |
الحصول على معلومات المستخدم من قاعدة البيانات
تمرين
في الدرس الحالي سنقوم بالحصول على معلومات المستخدم المسجلة في قاعدة البيانات وعرضها في النموذج |
08:40 |
تحديث بيانات المستخدم
تمرين
سنقوم بهذا الدرس بحل التحدي السابق وهو كيفية تعديل بيانات المستخدم وفي حال عدم وجود كلمة مرور في النموذج كيف نتفادى إدخال كلمة مرور فارغة |
04:17 |
حذف مستخدم من قاعدة البيانات
تمرين
سنقوم بهذا الدرس بحذف مستخدم ما، من قاعدة البيانات |
02:41 |
ضبط القائمة الجانبية مع الإعدادات
سنقوم بهذا الدرس بضبط القائمة الجانبية للوحة التحكم |
04:10 |
عرض قائمة الخدمات من قاعدة البيانات
سنعرض في هذا الدرس طريقة عرض الخدمات المسجلة في قاعدة البيانات في صفحة services |
04:38 |
إدخال خدمة جديدة في قاعدة البيانات
سنقوم بهذا الدرس بإنشاء خدمة جديدة لإدخالها في جدول services |
03:59 |
التعديل على الخدمات
في الدرس سنقوم بالتعديل على الخدمات المسجلة في قاعدة البيانات |
00:58 |
حذف الخدمات من قاعدة البيانات
سنقوم بهذا الدرس بتفعيل طريقة الحذف من قاعدة البيانات |
02:38 |
عرض المنتجات من قاعدة البيانات
حان وقت عرض المنتجات المسجلة في قاعدة البيانات في صفحة المنتجات بلوحة التحكم |
02:25 |
إدخال منتجات جديدة لقاعدة البيانات
سنقوم بهذا الدرس بإدخال منتجات جديدة لقاعدة البيانات باستخدام النماذج في لوحة التحكم |
24:28 |
إنشاء Upload class
(شاهد الوصف) في هذا الدرس سنتعلم كيفية إنشاء class لرفع الملفات بحيث يمكن استخدامه في أي مكان في التطبيق عند الحاجة له |
04:04 |
رفع الصور عند إضافة منتج جديد
(شاهد الوصف) سنقوم في هذا الدرس باستخدام Upload class الذي قمنا بإنشاءه سابقا بحيث يقوم برفع الصور أثناء إنشاء المنتجات |
08:25 |
تحديث معلومات المنتجات وحذف صورها عند التعديل
سنتعلم في هذا الدرس كيفية تحديث المنتجات وكيفية حذف الصورة القديمة للمنتجات في حال تم تحديثها عن طريق استخدام الدالة unlink |
04:05 |
حذف المنتجات مع حذف الصور الخاصة بها
سنقوم بهذا الدرس بحذف المنتجات من قاعدة البيانات وحذف صورها إن وجدت |
07:28 |
إنشاء جدول الإعدادات وربطه في ملف الإعدادات بالتطبيق
سنقوم بهذا الدرس بإنشاء جدول في قاعدة البيانات بحيث يحتوي على إعدادات ديناميكية وربطه في ملف الإعدادات السابق |
04:34 |
إنشاء نموذج تعديل إعدادات التطبيق
سنقوم بهذا الدرس ببناء نموذج لتحديث إعدادات التطبيق المحفوظة بقاعدة البيانات |
04:35 |
الحصول على الإعدادات وتحديثها
سنتعلم في هذا الدرس كيفية الحصول على المعلومات من قاعدة البيانات وكيف نقوم بتحديثها |
الصلاحيات Authorization +
سنتعلم في هذا القسم المقصود بالصلاحيات وكيف يمكن تطبيقها وماهي طرق التطبيق الممكنة
|
|
04:37 |
مقدمة في الصلاحيات Authorization vs Authentication
مهم
جرعة إضافية
ستتعلم في هذا الدرس مالمقصود بالصلاحيات ومالفرق بينها وبين التوثيق Authentication |
05:56 |
التعرف على بنية التطبيق App Structure
قبل أن تبدأ بتطبيق الصلاحيات من الجيد أن تتعرف على بنية هذا التطبيق وأين يمكن تطبيق الصلاحيات وماهو نوع الصلاحيات التي ستتطبق |
03:41 |
الصلاحيات باستخدم Sessions VS Database
سنتعرف على الفرق مابين صلاحيات المستخدمين من خلال متغيرات الجلسة و الصلاحيات من خلال الاستعلام في قاعدة البيانات |
01:38 |
تسجيل دور المستخدم في الجلسة Role
سنتعرف على كيفية تسجيل الدور الخاص بالمستخدم "نوعه" في الجلسة بعد تسجيل الدخول |
03:22 |
حماية لوحة التحكم من الوصول غير المصرح
في هذا الدرس سنتعرف على كيفية حماية لوحة التحكم من أي مستخدم ليس له صلاحيات بالوصول إليها |
02:40 |
كيفية إعادة التوجيه إلى لوحة التحكم وزيادة الصلاحيات
سنتعرف في هذا الدرس على كيفية إعادة توجيه المستخدم إذا كان مديرا إلى لوحة البيانات مباشرة بعد تسجيل الدخول وأفكار إضافية لزيادة الصلاحيات في التطبيق |
05:26 |
إنشاء User Class لضبط الصلاحيات من خلاله
سنقوم بإنشاء User Class لكي يتم من خلاله ضبط كل الصلاحيات في التطبيق بما في ذلك بعض المعلومات عن المستخدم |
تجربة المستخدم وتحسينات على التطبيق +
سنتعرف في هذه السلسة على المقصود بتجربة المستخدم User Experience وكيف يمكن وضع بعض التحسينات على التطبيق
|
|
04:54 |
تحسين لوحة التحكم
سنقوم بهذا الدرس بتحسين تجربة المستخدم في لوحة التحكم واصلاح المشاكل إن وجدت |
02:28 |
تحسين واجهة التطبيق للمستخدمين
سنتعرف على بعض الأفكار التي تساعد على تحسين واجهة التطبيق للمستخدمين |
05:51 |
مالمقصود بـ Clean Coding وكيف نقوم به قبل اطلاق المشروع
سنتعرف في هذا الدرس على أهمية Clean Coding "البرمجة النظيفة" وبعض الافكار المهمة قبل إطلاق المشروع في هذا المجال |
مراجع إضافية ومجانية للتعلم +
ستتعرف في هذا القسم على بعض المراجع الهامة والمجانية للتعلم والابحار في لغة PHP
|
|
04:01 |
أهمية المراجع البرمجية وكيفية البحث عن المعلومات
ستتعرف في هذا الدرس على أهمية المراجع البرمجية ومن أين تحصل عليها وكيف تتعلم منها |
03:03 |
شرح كيفية استخدام موقع php.net
سنقوم باستعراض موقع php.net في هذا الدرس وهو أكبر مرجع لهذه اللغة وكيفية البحث والاستزادة منه |
02:09 |
كيفية استخدام موقع phpclasses.org
سنتعرف على موقع PHP Classes والذي يحتوي على برمجيات متخصصة بلغة PHP تساعدك على العمل والتعلم بسرعة |
01:35 |
كيف تستفيد من github.com لتعلم php
في هذا الدرس سنستعرض موقع github.com ونتعرف على كيفية الاستفادة من البرمجيات المطروحة فيه |
00:59 |
موقع w3schools.com والتعامل معه
سنستعرض في هذا الدرس موقع w3schools الشهير في مجال الويب وماهي فوائدة ومزاياه التي نستطيع التعلم من خلالها |
عرض الكل + إخفاء الكل - |
تعتبر PHP من أكبر لغات البرمجة في عالم الويب بمجال Back-End وفي هذه المادة ستتعلم الأساسيات والاحتراف وبعض الأمور الأمنية في البرمجة وقواعد البيانات MySQL وكيفية بناء تطبيقات الويب.
مدرب في فلكس كورسز وقائد فريق التطوير والبرمجة في هذا الموقع الرائع. إذا كنت ترغب بمعرفة المزيد عني يمكنك زيارة موقعي الشخصي.
المزيد ...