صفحة 1 من 2 12 الأخيرةالأخيرة
النتائج 1 إلى 15 من 18

الموضوع: انطلق مع كلاس LightCode Multi-Page

  1. #1
    عضو نشيط جدا
    تاريخ التسجيل
    May 2007
    المشاركات
    309

    انطلق مع كلاس LightCode Multi-Page



    كلاس LightCode Multi-Page
    السلام عليكم
    منذ فترة انتهيت من كلاس له فائدة جميلة جدا وستوفر العناء علي اغلب المبرمجين الذين يملكون سكريبتات خاصة بهم
    الكلاس يقوم كاأداة رئيسية ممتازة لتقسيم صفحات البرمجة الخاصة لموقعك
    فمثلا عندما كنت تريد استخدما اكثر من صفحة في صفحة واحدة مثل
    index.php?mode=signup
    index.php?mode=login
    كنت ستقوم بستخدام Switch والـ Case لاتمام هذة المهمة او دالة if()
    كود PHP:
    switch($_GET['mode']){
    case 
    'singup':
    // signup code
    break;
    case 
    'login':
    // login code
    break;

    تخيل اذا اذا كنت تملك صفحة يوجد بها العديد والعديد من الصفحات الداخلية اذا ستكون البرمجة ملخبطة وطويلة وسيزيد حجم الملف ولايمكن اضافة صفحة الا بالبرمجة يعني من الضروري فتح الملف لاضافة Case جديد ؟؟؟ اذا الحل في استخدام LightCode Multi-Page
    يقوم بالاتي :-
    1- سيعنيك عن استخدام case ودالة السويتش
    2- برمجة نظيفة وكل شي مرتب في صفحة
    3- سهولة اضافة مثلا شي جديد يدون التعديل علي الملف الرئيسي
    للتحميل :
    LightCode Multi-Page
    يوجد مع الكلاس تطبيق خاص به.
    طريقة الاستخدام
    كود PHP:
    <?php
        
    if (version_compare(phpversion(), '4''<') == true) die ('errror'); 
        include(
    'lightcode.class.php');
        
    $LightCode = new LightCode();
        
    $LightCode->page 'router';
        
    $LightCode->modules 'modules';
        
    $LightCode->defualt 'index';
    //other codes
        
    $LightCode->load();
    ?>
    السطر الاول للتاكد من ان النسحة اكبر من 4
    السطر الثاني جلب الكلاس
    السطر الثالت تعريف الكلاس
    السطر الرابع هو ماهو اسم اسابقة لاسم الصفحة هنا قمنا بتسيمتها router اذا ستكون الصفحات بهذا الشكل (index.php?router= ) طبعا يمكنك تغيرها.
    السطر الخامس وهوا الملف الذي يحتوي علي الصفحات modules يمكنكا تغيره اذا اردت.
    السطر السادس وهوا الصفحة الافتراضية قمت بتعينها index في حالة عدم وجود الصفحة المطلوبة يقوم بنقلك الي index.php?router=index.
    السطر الاخير وهوا يقوم بجلب الصفحات وتحميلها وهو ياتي في اخر السكريبت ليسمن الضروري طبعا لكن عند وضع هذا الكود سيقوم بجلب الصفحة المطلوبة.

    ثانيا: ملف جديد باسم modules
    نقوم مثلا بصتع صفحة نسميها index.php
    ونضع الكود
    كود PHP:
    <?php
    print 'Hello World!';
    ?>
    ونقوم بطلب الصفحة
    index.php?router=index
    ستقوم بطباعة محتويات الصفحة index.php
    وفي حالة عدم كتابة index.php فقط بدون تحديد الصفحة سيقوم ايضا بجلب الصفحة index.php لاننا حددنا ذلك في بداية الكلاس.
    كثال اخر صفحة باسم home.php في ملف modules
    ونضع الكود
    كود PHP:
    <?php
    print 'Welcome to Our site!';
    ?>
    ونقوم بطلب الصفحة index.php?router=home سيقوم بجلب الصفحة home.php.

    انتطر تعليقاتكم حول الكلاس اذا كنت تملك اضافة او شي او ملاحظات فقم بوضعها في التعليقات في مدونتي او بالردود هنا في سوالف
    رابط : http://developer.ws.ly/article-40.html
    سلامات





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


  2. #2
    عضو فعال
    تاريخ التسجيل
    Aug 2007
    المشاركات
    1,431

  3. #3
    عضو فعال جدا
    تاريخ التسجيل
    Aug 2007
    المشاركات
    3,929


    كلاس رائع بالفعل .. شكرا لك





    __________________
    تحاور مع العاقل بعقل .. اما ان يقتنع او تقتنع
    وتحاور مع الجاهل بعقل .. اما يطقعش او تفرقش
    وتلك الفاظ لا معنى لها كذلك كلماته

  4. #4


    أعجبني حقيقة هذا الكلاس رغم أنه بسيط جداً

    وقمت بالتعديل عليه بعد اذنك حسب طريقتي في البرمجة والتحسين منه بإضافة حماية من ثغرة Remote Include File عن طريق this->direction
    كذلك إضافة حماية من حقن الكلاس بثغرة XSS مع أني لا أعلم كيف يتم الاختراق عبر تلك الثغرة في هذه الحالة! لكن مجرد احتياط لا أكثر ولا أقل

    أرجو منك أن تعطيني رأيك في تعديلي المرفق ولك مني جزيل الشكر وخالص التحايا (وردة)





    الملفات المرفقة الملفات المرفقة

  5. #5
    عضو فعال جدا
    تاريخ التسجيل
    Sep 2007
    المشاركات
    2,065


    رائع بجد تسلم ايدك






  6. #6
    عضو نشيط
    تاريخ التسجيل
    May 2007
    المشاركات
    82


    ألا تعتقد أن الكلاس تطبيق ماهو إلا تطبيق مباشر لثغرات الـFile Include ???

    بغض النظر عن حسن فكرته ام لا

    لم أشاهد كود الكلاس ولكن جبيت انبهك لإن عند رؤيتي لهذا المثال اول مابدر في ذهني هو ثغرات الـFile Include





    __________________
    Codeigniter .. عندما تكون البرمجة .. متعة بحق .. (1) (2) (3)

  7. #7
    عضو نشيط جدا
    تاريخ التسجيل
    May 2007
    المشاركات
    309


    ff5006
    مشكور علي مرورك
    سحاب اون لاين
    عفوا
    khashabawy
    مشكور ياغالي
    مدمن نت
    مدمن نت اهلا بك اولا لكن لو لاحظت لايمكن حقن الكلاس لأن الكلاس محمي ضد الحقن والسبب؟
    السبب انه انت من يضع الصفحات كيف يستطيع شخص ان يقوم بحقنه الا اذا سمحت له بذلك ولهذا الكلاس الاصلي يفي بالغرض حسب رأي طبعا تعديلك قوي جدا مع ان قمت ببعض التطويرات يمكن لو جمعنا كل هذة التطويرات سنخرج بأطار عمل ولما لا.....
    EGY2NET
    اقرا الكلاس اولا
    الكلاس مبرمج باحترافية في الاداء بحث لم تفتني بأذن الله اي شي
    اشياء يقوم بها الكلاس للتحقق في الملف المطلوب
    يجب ان شكون ملف , يجب ان يكون يجب ان ينتهي ب .php , يجب ان لايكون مسار (مجلد) , ويجب ان يكون موجود

    يعني لايمكن التحايل عليه الا اذا قام احد برفع صفحة محقونة وهذا مستحيل الا اذا كنت عاطي صلاحية لذلك

    سلامات جميعا





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

  8. #8
    عضو نشيط جدا
    تاريخ التسجيل
    Aug 2007
    المشاركات
    597

  9. #9


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

    فلا يمكن إستغلالها سوي برفع ملف لها الفولدر ولو أستطاع مخترق رفع ملف له فهو قد أخترقك من الأساس !!!





    __________________
    السيف أصدق أنباء من الكتب

  10. #10


    Bruce
    توقع أي شئ من الهكر

    لاتعلم فلربما هناك أناس تاخذ الكلاس خاصتك وتستخدمه بهذا الشكل:
    كود PHP:
    <?php
    if (version_compare(phpversion(), '4''<') == true) die ('errror'); 
    include(
    'lightcode.class.php');
    $LightCode = new LightCode();
    $LightCode->page 'router';
    $LightCode->modules 'modules';
    $LightCode->defualt $_GET[$LightCode->page]; ////// لاحظ هنا
    //other codes
    $LightCode->load();
    ?>
    لذا فقط يأتي أحد الهكرز ويستغل الثغرة بهذا الشكل:
    index.php?router=http://www.example.com/index.php

    ثم يقوم الكلاس بالتأكد من وجود الملف وكذلك امتداد الملف php أيضاً ليس مجلداً
    جميع تلك الشروط تحققت ثم مرحباً بالشل

    لذا يجب أن يكون الكلاس فيه كل الإحتياطات اللازمة وهو لن يكلفك شيئاً

    ولهذا السبب قمت أنا بوضع هذا الكود:
    كود PHP:
    public $direction = (getcwd() ? getcwd() : '.'); 
    ثم استخدمته في الدالة show:
    كود PHP:
    $name $this->direction '/' $this->modules '/' $var '.php'
    شكراً لك






  11. #11


    ما قصدته لو كان الكود

    كود PHP:
    $file_path "./directory/".$_GET['router']."php";
    if( 
    file_exists($file_path) )
        include(
    $file_path); 






    __________________
    السيف أصدق أنباء من الكتب

  12. #12
    عضو نشيط جدا
    تاريخ التسجيل
    Feb 2006
    المشاركات
    428


    UP





    __________________
    • شبكة التصميم العربية
      ( برمجة وتصميم , حجز وإستضافة مواقع , إدارة مخدمات )
      جــــوال : 00963.932.710879
      مسنجر : support (at) design4arabs.com
      الموقــع : www.design4arabs.com

  13. #13


    ما قصدته لو كان الكود

    كود PHP:
    $file_path "./directory/".$_GET['router']."php";
    if( 
    file_exists($file_path) )
        include(
    $file_path); 
    طيب وأنا وش سويت

    ركز في ردي الأخير:
    كود PHP:
    public $direction = (getcwd() ? getcwd() : '.'); 







  14. #14
    عضو نشيط جدا
    تاريخ التسجيل
    Aug 2007
    المشاركات
    597

  15. #15
    عضو نشيط جدا
    تاريخ التسجيل
    May 2007
    المشاركات
    309


    المجروح
    شكرا لمرورك
    وصلت فكرتك ..,,,
    مدمن نت
    هو اذا قام المبرمج بوضع الكود بهذة الصيغة
    كود PHP:
    $LightCode->defualt $_GET[$LightCode->page]; ////// لاحظ هنا 
    فاعلم انه ليس جاهلا بل يستجهل ))) يعني طريقتك هذة ستضاف اذا كان المبرمج عربي (هههه!!!)
    طريقتك جيدة وستضاف بأذن الله لكن لاتنسي
    لماذا قمت باعطائها public فالافضل private لهذة العملية
    بارك الله فيك علي التفاعل مع الموضوع
    Jo Live
    الباين عجبك الكلاس حتي قمت بكتابة ردين بارك الله فيك

    انتظر باقي الاراء,,,,
    سلامات





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





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

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

أضف موقعك هنا| اخبار السيارات | حراج | شقق للايجار في الكويت | بيوت للبيع في الكويت | دليل الكويت العقاري | مقروء | شركة كشف تسربات المياه | شركة عزل اسطح بالرياض | عزل فوم بالرياض| عزل اسطح بالرياض | كشف تسربات المياة بالرياض | شركة عزل اسطح بالرياض