فتح التسجيل لمدة اسبوع وسنتابع ظاهره السبام



موضوعات متميزة :
مرحبآ بعودة سوالف سوفت نقاش حول الفرق بين الشبكات الاجتماعيه والمنتديات والمدونات
طريقة معرفة ال IP الخاص بالمستخدم حتى لو مع VPN هل قمت بالترقية الى وندوز 10؟ ماهو انطباعك بعد الطريقة + شرح طريقة الترقية
هل لديك مشكله في الارشفه بموقعك؟ (فلنتعاون) [شاركنا] ما تعلمته خارج سوالف
دورة تصميم استايلات منتديات الجيل الرابع vBulletin4 تسمع عن API في لغات البرمجة ولكن هل تعرف ماهي ؟
بالصور .. إصدار cPanel/WHM الجديد 11.50 ومميزاته تبادل الخبرات[7](صفحاتنا و المعايير القياسية)


النتائج 1 إلى 14 من 14

الموضوع: شرح عمل منتدى باستخدام php و mysql من الألف للياء

  1. #1
    عضو نشيط
    تاريخ التسجيل
    Jan 2008

    شرح عمل منتدى باستخدام php و mysql من الألف للياء


    بسم الله الرحمن الرحيم

    سنتعلم ان شاء الله فى هذا الدرس كيفية عمل منتدى باستخدام php و mysql من الألف للياء
    هذا الدرس مفيد جدا جدا للراغبين فى احتراف لغة php و طرق تعاملها مع قواعد البيانات .
    متطلبات الدرس :
    • - فهم اللغات التالية ( html - css - php - mysql )
    • - فهم التعامل مع phpmyadmin .
    • - خبرة بسيطة بالتصميم لاضافة لمسات جمالية . ( اختيارى )
    • - مستوى الدرس : المستوى المتوسط – اصحاب الخبرة .
    و سوف يتم العمل على هذا المنتدى كأنة مشروع متكامل بداية من تصميم قواعد البيانات الى كتابة ملفات Html و تنسيقها بلغة css و اخيرا البرمجة باستخدام php .

    نبدأ على بركة الله


    أولا : تكوين قاعدة البيانات و الجداول المطلوبة بها .

    من الأفضل دائما تكوين و اعداد مخطط لقاعدة البيانات او مايسمى data modal . و الآن دعنا نصف المشروع الذى نقوم ببرمجتة بمنتهى البساطة و هو عبارة عن منتدى يحتوى على مستخدمين بامكانهم اضافة الموضوعات فى داخل الأقسام المختلفة من المنتدى و بامكانهم اضافة التعليقات .

    لاحظ من الفقرة السابقة قمنا بتمييز الاسماء التالية ( المستخدمين – التعليقات – الموضوعات – الأقسام ) .
    و هى عبارة عن الجداول الرئيسية التى سوف نستخدمها ان شاء الله .
    تابع الصورة التالية جيدا لتفهم العلاقة بين جداول قاعدة البيانات و بعضها .



    نلاحظ ان جدول المستخدمين مرتبط مع جدول الأقسام و مع جدول الموضوعات و جدول التعليقات .
    حيث يقوم المستخدم بكتابة موضوع داخل قسم معين و يتمكن الاخرين من التعليق عليه .
    لاحظ ان الخطوط السوداء ( المنقطة ) بين الجداول و بعضها توضح العلاقة بين الجداول و بعضها البعض و لا تقلق سيتم شرحها بالتفصيل .

    سيتم شرح الجداول من خلال شرح أوامر mysql اللازمة لتكوين تلك الجداول . مع العلم انه بامكان اى من برامج تصميم قواعد البيانات مثل wordbench الذى استخدمناه هنا ان يقوم بعمل ملف قاعدة البيانات بالكامل بامتداد .sql بامكانك رفعه مباشرة باستخدام phpmyadmin و لكن الأفضل هو كتابة الاكواد يدويا .لسرعة التمرين و الاتقان .

    تكوين جدول المستخدمين :

    كود PHP:
    CREATE TABLE users (
    user_id     INT(8NOT NULL AUTO_INCREMENT,
    user_name    VARCHAR(30NOT NULL,
    user_pass      VARCHAR(255NOT NULL,
    user_email    VARCHAR(255NOT NULL,
    user_date    DATETIME NOT NULL,
    user_level    INT(8NOT NULL,
    UNIQUE INDEX user_name_unique (user_name),
    PRIMARY KEY (user_id)
    TYPE=INNODB
    كما تعلمنا فى دروس mysql فان الجملة (الأمر) CREATE TABLE يقوم بتكوين جدول جديد و اسم الجدول يكتب بعد الجملة السابقة و يصبح الشكل النهائى CREATE TABLE users و بعدها يتم وضع كل الأعمدة الموجودة داخل الجدول بين قوسين .

    و جدول المستخدمين يتكون من الأعمدة التالية ( مع شرحها ) :


    user_id : نوع هذا الحقل هو INT و هى اختصار INTEGER اى ان نوع البيانات التى يتم تخزينها هنا هو ارقام صحيحة فقط . و تم اضافة الخاصية NOT NULL حيث لا يمكن ترك هذا الحقل فارغ . و الخاصية AUTO_INCREMENT لكى يتم زيادة قيمة الحقل بمقدار 1 عند قيام عضو جديد بالتسجيل .


    نلاحظ فى الكود السابق انه تم تعريف الحقل user_id على انه primary key و يتم استخدام primary key ليتم التعرف على كل صف فى الجدول بمفردة بمعنى اخر لمنع تكرار البيانات .
    و اليكم مثال بسيط للتعرف على عمل primary key : عند قيام عضو بالتسجيل باسم ahmed مثلا و قيام عضو اخر بمحاولة التسجيل بنفس الاسم بالتالى هناك مشكلة فكيف يمكن لقاعدة البيانات التعرف على المستخدمين حيث ان لكل منهم كلمة السر الخاصة به و البيانات الخاصة به . و بالتالى يأتى هنا دور primary key حيث يكون لكل عضو رقم ( كود) خاص يمكن قاعدة البيانات من التعرف عليه بسهولة .
    ملحوظة : كل الجداول تحتوى على primary key ايضا لمنع تكرار البيانات . user_name : نوع هذا الحقل هو VARCHAR و هو عبارة عن متغير نصى . و الرقم الموجود بين القوسين يحدد اقصى عدد حروف مسموح به لكتابة اسم المستخدم . و فى الكود السابق بامكان المستخدم التسجيل باسم عدد حروفه 30 حرف . و استخدمنا NOT NULL بحيث لا يمكن تركه فارغا . اى يجب على المستخدم كتابة اسمه .
    ستلاحظ فى اخر الكود ان هذا الحقل تم تعريفة على انه UNIQUE و هذا لمنع تكرار اسماء الأعضاء اى انه لكل عضو اسم خاص به لا يمكن تكراره . حيث يقوم الجزء UNIQUE INDEX باخبار قاعدة البيانات اننا نريد عمل كود مميز لكل اسم . و من ثم نقوم بتعريف الكود المنفرد و هو فى الكود السابق user_name_unique و نضع اسم الحقل الذى نريد عمل كود منفرد له داخل القوسين .

    user_ pass : هذا الحقل مطابق تمام للحقل user_name باستثناء طول الحروف تم وضعه 255 كرقم افتراضى و ذلك لآن هذا الحقل سنقوم بتشفيره لدواعى امنية باستخدام الدالة ()sh1 و بالتالى سيكون الطول الحقيقى لكلمة السر المشفرة ثابت و هو 40 حرف.

    user_email : هذا الحقل لتخزين بريد المستخدم داخل قاعدة البيانات و هو مطابق للحقل
    السابق user_pass user_date : يستخدم هذا الحقل لتخزين تاريخ تسجيل العضو و الوقت . و هنا هو عبارة عن دالة DATETIME الموجودة فى mysql و لا يمكن تركه فارغا . NOT NULL .

    user_level: يستخدم هذا الحقل لتخزين وظيفة العضو . مثلا اذا كان عضو عادى نخصص له القيمة 0 و اذا كان admin او مدير الموقع نخصص له القيمة 1و سيتم شرحها لاحقا .
    جاااااااااااارى اكمال الشرح .انتظرونا







  2. #2
    عضو نشيط
    تاريخ التسجيل
    Jan 2008

    مساحة محجوزة 1






  3. #3
    عضو نشيط
    تاريخ التسجيل
    Jan 2008

    مساحة محجوزة 2






  4. #4
    عضو نشيط
    تاريخ التسجيل
    Jan 2008

    مساحة محجوزة 3






  5. #5
    عضو نشيط
    تاريخ التسجيل
    Jan 2008

    مساحة محجوزة 4






  6. #6
    عضو جديد
    تاريخ التسجيل
    Apr 2010

    في الانتضار وان شاء الله يخرج المنتدى في أخلى حلة وأنا من المتابعين بارك الله فيك






  7. #7
    عضو نشيط
    تاريخ التسجيل
    Jul 2008

    لا تتأخر علينا
    ننتظرك






  8. #8
    عضو نشيط جدا
    تاريخ التسجيل
    May 2007

    حميل حدا بخصوص user_date استخدم ال Unix time افضل بكثير ,,,





    __________________
    Bruce - مدونة شديدة التخصص في PHP وتطبيقات الويب

  9. #9
    عضو فعال
    تاريخ التسجيل
    Jun 2008

    اقتباس المشاركة الأصلية كتبت بواسطة Bruce مشاهدة المشاركة
    حميل حدا بخصوص user_date استخدم ال Unix time افضل بكثير ,,,
    +1

    يمكن ايضًا اختيار CURRENT_TIMESTAMP كقيمة افتراضية للحقل
    وبذلك لا حاجة لإدخالها اصلا(الامر مثل auto increment)
    كود PHP:
    `user_dateTIMESTAMP NOT  NULL  DEFAULT CURRENT_TIMESTAMP 






    التعديل الأخير تم بواسطة ahmad sadiq ; 05-08-2010 الساعة 02:49 AM

  10. #10
    عضو نشيط جدا
    تاريخ التسجيل
    Jan 2008

    مع معرفتي لكني متابع لك للجديد و التطوير

    أشكرك عزيزي و بارك الله فيك ،، تقبل فائق التقدير





    __________________
    اللهم اغفر لي الذنوب التي تهتك العصم
    اللهم اغفر لي الذنوب التي تنزل النقم
    اللهم اغفر لي الذنوب التي تغير النعم
    اللهم اغفر لي الذنوب التي تحبس الدعاء
    اللهم اغفر لي الذنوب التي تنزل البلاء .

  11. #11
    عضو نشيط جدا
    تاريخ التسجيل
    Jan 2008

    !!!





    __________________
    اللهم اغفر لي الذنوب التي تهتك العصم
    اللهم اغفر لي الذنوب التي تنزل النقم
    اللهم اغفر لي الذنوب التي تغير النعم
    اللهم اغفر لي الذنوب التي تحبس الدعاء
    اللهم اغفر لي الذنوب التي تنزل البلاء .

  12. #12
    عضو جديد
    تاريخ التسجيل
    Apr 2010

    متابع, جزاك الله خيرا






  13. #13
    عضو فعال
    تاريخ التسجيل
    Jun 2008

  14. #14
    عضو سوبر نشيط
    تاريخ التسجيل
    Jun 2006

    شكرا على الشرح الرائع اخى الكريم










المواضيع المتشابهه

  1. مطلوب...شرح ضبط DNS للسيرفر الجديد من الألف للياء...
    بواسطة dxb في المنتدى إدارة السيرفرات والخوادم
    مشاركات: 5
    آخر مشاركة: 15-03-2008, 01:43 AM
  2. الآن كتب pdf خاصة بموقعك .. لشرح معظم السكريبتات من الألف للياء يوجد مثال ..
    بواسطة Mido في المنتدى عروض البيع وطلبات البرمجة والتصميم وبناء المحتوى وتبادل الاعلانات
    مشاركات: 4
    آخر مشاركة: 20-11-2004, 03:02 AM
  3. صمم موقعك من الألف للياء ( الجزء الثاني )
    بواسطة saraya في المنتدى الويب والويب 2.0 والـ Semantic Web
    مشاركات: 2
    آخر مشاركة: 14-04-2004, 07:08 PM
  4. صمم موقعك من الألف للياء ( الجزء الأول )
    بواسطة saraya في المنتدى الويب والويب 2.0 والـ Semantic Web
    مشاركات: 6
    آخر مشاركة: 10-04-2004, 05:10 PM
  5. مشاركات: 16
    آخر مشاركة: 05-06-2003, 10:28 AM

الكلمات الدلالية لهذا الموضوع

ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •