صفحة 1 من 4 1234 الأخيرةالأخيرة
النتائج 1 إلى 15 من 46

الموضوع: شرح برنامج الناشر 1.5

  1. #1
    عضو فعال جدا
    تاريخ التسجيل
    Dec 2000
    المشاركات
    2,697

    شرح برنامج الناشر 1.5



    السلام عليكم ..
    بناءاً على موضوع الدورة المبسطة الذي كنت أتمنى إكماله عرضت على الإخوة فكرة شرح برنامج الناشر 1.5 والذي أنزلته بالمنتدى قبل عدة أسابيع :
    http://www.swalif.net/softs/showthre...threadid=65885
    ولعل في وجود البرنامج وشرح أكواده توضيح للمبتدئ في php لبعض الأوامر التي يكثر إستخدامها ..
    وقد يلومني البعض بكون الشرح غير منهجياً أو لا يتناول الأساسيات بشكل مبدئي .. إلا أنه كما هو معروف فالتعليم له أساليب ومنها أسلوب التجربة والمحاولة و التعلم من الخطأ ..
    فكما أن الميكانيكي في البنشر .. لا يتعلم الميكانيكا كعلم تقني بل يأخذها كحرفة يفهم من خلال ممارستها أصول الميكانيكا .. فكذا نحاول إن شاءالله في شرح البرنامج و أكواده أن نفهم ولو جزءاً بسيطاً من أوامر php ..

    بداية لمن حمل البرنامج سوف يرى أنه يتكون من عدة مجلدات وملفات ..
    - مجلد database ويحتوي على database.sql ملف قاعدة البيانات الخاص بالبرنامج ..
    - مجلد html ويحتوي على عدة ملفات ومجلدات و هو عبارة عن محرر HTML ولن أقوم بشرحه لأنه خارج إطار البرنامج ولكن سيلمح لكيفية إضافته إن شاءالله ..
    - مجلد images ويحتوي على صورة واحدة وليس للمجلد أهمية بالشرح ..
    - ملف admin.php وهو لوحة التحكم بالبرنامج ..
    - ملف print.php وهو لعرض المقالات بشكل مهيء للطباعة ..
    - ملف config.php وهو كما ذكرنا بالدورة ملف يحتوي على المعلومات الأساسية للبرنامج وقاعدة البيانات ..
    - ملف articles.php لعرض المقالات ..
    - ملف index.php وهو لعرض المقالات بصفحة البداية ..
    - و ملف template.php وهو لتخزين شكل البرنامج ..

    والآن إلى الشرح :





    رضا غير متواجد حالياً


  2. #2
    عضو فعال جدا
    تاريخ التسجيل
    Dec 2000
    المشاركات
    2,697


    1- ملف قاعدة البيانات database.sql :

    كود PHP:
    #
    # Table structure for table 'articles'
    #

    CREATE TABLE `articles` (
      `
    idint(10unsigned NOT NULL auto_increment,
      `
    topicint(10unsigned NOT NULL default '0',
      `
    subjectvarchar(255NOT NULL default '',
      `
    writervarchar(255NOT NULL default '',
      `
    descriptiontext NOT NULL,
      `
    texttext NOT NULL,
      `
    resourcevarchar(255NOT NULL default '',
      `
    datevarchar(255NOT NULL default '',
      `
    countervarchar(10NOT NULL default '0',
      
    PRIMARY KEY  (`id`),
      
    KEY `id` (`id`)
    TYPE=MyISAM;

    #
    # Dumping data for table 'articles'
    #

    # --------------------------------------------------------

    #
    # Table structure for table 'topics'
    #

    CREATE TABLE `topics` (
      `
    idint(10unsigned NOT NULL auto_increment,
      `
    placeint(10unsigned NOT NULL default '0',
      `
    namevarchar(255NOT NULL default '',
      `
    descriptiontext NOT NULL,
      
    PRIMARY KEY  (`id`),
      
    KEY `id` (`id`)
    TYPE=MyISAM;

    #
    # Dumping data for table 'topics'

    كما هو ملاحظ في الملف أنه يحتوي ما سبق مع التنبيه بأن الأسطر التي ببدايتها # غالباً ما تكون أسطر هامشية ليس لها أثر برمجي ..
    طبعاً لمن فهم الدرس الخاص بعمل قاعدة البيانات في الدورة السابقة سيعرف أن ما وضع فوق عبارة عن جدولين هما articles لتحزين المقالات و topics لتخزين مواضيع المقالات ..
    ولعلي أشرح جدول المواضيع أولاً ..
    كما تلاحظون يحتوي على 4 حقول .. حقل id لترقيم المواضيع ولاحظوا أننا جعلنها يقوم بالترقيم تلقائياً .. وحقل place وهو لتخزين موضع الموضوع أو القسم هل هو فرعي أو رئيسي وقد جعلنا هذا الحقل رقمي لأنه سيخزن فيه رقم id القسم الأب أو الذي يندرج داخله أو يتم تخزين 0 فيه إذا كان القسم رئيسياً .. ولعلكم لاحظتم أننا وضعنا default '0' بحيث أنه إن لم يتم تخزين قيمة فعلية فيه فإنه يوضع داخله صفر ..
    والحقل الذي بعده حقل name لتخزين إسم الموضوع أو القسم وهو حقل نصي محدد ب 255 حرف كأقصى حد للعرض ..
    ثم الحقل description وهو حقل نصي مفتوح وغير محدود ..
    نأتي للجدول الثاني وهو جدول المقالات .. ونلاحظ أن فيه 9 حقول ..
    الحقل الأول id لترقيم المقالات تلقائياً ..
    والحقل الثاني topic وهو حقل رقمي سيخزن فيه رقم id القسم أو الموضوع الذي يندرج المقال تحته ..
    وهناك حقول نصية محددة ب 255 حرف للعنوان والكاتب ..
    ثم حقل الوصف و النص الكامل وهما حقول نصية غير محدودة ..
    ثم حقلي نص للتاريخ والمصدر ..
    ثم حقل محدد بعشر خانات للعداد ..

    فوائد من الدرس :
    - للربط دائماً بين صفوف من جدول إلى جدول آخر نعتمد على الحقول الرقمية ونستخدم عادة رقم المعرف id كما سنربط بين المقال وقسمه أو موضوعه ..
    - نحاول دائماً في الحقول التي لن تحتوي على نصوص فقط أرقام .. نجعلها دائماً حقول رقمية int ولعل البعض يلاحظ أن counter حقل نصي ولكن لأن البرنامج قديم فلم يعدل فيه ..
    - يفضل دائماً أن تكون أسماء الحقول والجداول واضحة وسهلة حتى لا تصعب الشخص أثناء البرمجة ..

    أي تساؤل أنا حاضر ..

    الدرس القادم بإذن الله ملف config.php ..





    رضا غير متواجد حالياً

  3. #3
    عضو فعال
    تاريخ التسجيل
    Feb 2004
    المشاركات
    1,091


    جزاك الله خيرا ,
    كنت سأطلب منكم ذلك لولا الخجل , :shy:
    انتظر بشوق مواصلة الشرح ,





    __________________
    CSS - XHTML
    مدمن أنترنت غير متواجد حالياً

  4. #4
    عضو فعال جدا
    تاريخ التسجيل
    Dec 2000
    المشاركات
    2,697


    2- الملف التعريفي config.php :

    كود PHP:
    <?php
    $dbserver
    ="localhost";
    $dbuser="";
    $dbpass="";
    $dbname="Al-Nasher";

    $sitename="Al-Nasher";
    $siteurl="Al-Nasher";
    $sitemail="Al-Nasher";

    $username="Al-Nasher";
    $password="Al-Nasher";

    $limit="10";
    $limit_index="5";

    $m=date("m");
    $y=date("Y");
    $d=date("d");
    if(
    $m>2)
    $y=$y$m=$m; }
    if(
    $m==1||$m==2){ $y=$y-1$m=$m+12; }
    $j=intval(365.25*$y)+intval(30.6001*($m+1))+$d+1720994.5;
    if(
    date("d/m/Y")>=(15/10/1582)){ $a=intval($y/100); $b=2-$a+intval($a/4); $jd=$j+$b; }
    if(
    date("d/m/Y")<(15/10/1582)){ $jd=$j; }
    $hh=$jd-1948437.5;
    $y=($hh/354.3667);
    $hy=intval($y)+1;
    $m=(12*($y-intval($y)));
    $hm=intval($m)+1;
    $d=(29.5305*($m-intval($m)));
    $hd=intval($d);
    if(
    $hd==0){ $hd=30$hm=$hm-1; }
    if(
    $hm==0){ $hm=12$hy=$hy-1; }
    $date="$hd/$hm/$hy";

    mysql_connect($dbserver,$dbuser,$dbpass);
    mysql_select_db($dbname);
    ?>
    ملاحظ في الملف السابق أن السطور من 2 إلى 5 تحتوي على متغيرات توضع في قيمتها معلومات قاعدة البيانات ..
    ثم وضعنا في السطور 7 إلى 9 ثلاث متغيرات يوضع فيها إسم الموقع ورابطه وبريده ..
    ثم في السطر 11 و 12 يوضع إسم المستخدم وكلمة المرور ..
    ثم وضعنا متغيرين مهمين في السطر 14 و 15 وهما لتحديد كم عدد المقالات التي ستظهر في الصفحة الواحدة و كم عدد المقالات التي تظهر لكل قسم أو موضوع بالصفحة الرئيسية ..
    ثم وضعنا كود برمجي جلبته من برنامج التاريخ الهجري من شبكة الأمجاد .. وقد اختصرته لكي يظهر فقط التاريخ الهجري الحالي كقيمة للمتغير $date الموجود قبل إجراء عملية الإتصال ..

    أي تساؤل ؟!! ..

    الدرس القادم ملف admin.php الجزء الأول ( جهزوا نفسكم ) ..





    رضا غير متواجد حالياً

  5. #5
    عضو فعال
    تاريخ التسجيل
    Feb 2004
    المشاركات
    1,091


    طبعا سيثبت الموضوع إن شاء الله .:shy: :shy:





    __________________
    CSS - XHTML
    مدمن أنترنت غير متواجد حالياً

  6. #6
    عضو فعال
    تاريخ التسجيل
    Feb 2004
    المشاركات
    1,091


    ما الفرق بين : int و varchar ؟؟





    __________________
    CSS - XHTML
    مدمن أنترنت غير متواجد حالياً

  7. #7
    عضو فعال
    تاريخ التسجيل
    Feb 2004
    المشاركات
    1,091


    وياريت لو تشرح لي هذا السطر :
    كود PHP:
    unsigned NOT NULL auto_i
    ncrement 
    ولماذا هو مختلف عن :
    كود PHP:
    `topicint(10unsigned NOT NULL default '0'






    __________________
    CSS - XHTML
    مدمن أنترنت غير متواجد حالياً

  8. #8
    عضو فعال
    تاريخ التسجيل
    Feb 2004
    المشاركات
    1,091


    سؤال في الملف config.php
    السطر : 39
    لمذا نضيف دالة إختيار قاعدة البيانات ؟هل هو ضروري للاتصال ؟
    كود PHP:
    mysql_select_db($dbname); 






    __________________
    CSS - XHTML
    مدمن أنترنت غير متواجد حالياً

  9. #9
    عضو فعال جدا
    تاريخ التسجيل
    Dec 2000
    المشاركات
    2,697


    ماشاءالله ..
    يبدو أنك طالب نجيب يا مدمن .. تعجبني ..

    ما الفرق بين : int و varchar ؟؟
    قد لا يكون جوابي منهجياً ولكن الأولى تعني حقل رقمي لن يخزن جدول قاعدة البيانات فيه إلا أرقام والثاني حقل نصي يمكن تخزين الحروف والأرقام والرموز فيه بشكل عام ..

    أما سؤالك الثاني فالفرق أن الأول حقل رقمي لكن فيه ميزة أن يكون ترقيم تلقائي بمعنى إن أضفنا صف جديد فبدل أن نكتب رقم جديد هو تلقائياً يكتب فيه الرقم التسلسلي ..
    أما الحقل الثاني فهو حقل رقمي يحمل قيمة رقمية فقط .. والقيمة الإفتراضية له هي صفر ..

    أما سؤالك الثالث فوضعنا المتغير الخاص بإسم قاعدة البيانات طبعاً لكي يقوم بالإتصال بها ..





    رضا غير متواجد حالياً

  10. #10
    عضو فعال
    تاريخ التسجيل
    Feb 2004
    المشاركات
    1,091


    ماشاء الله شرح واضح ووافي ,
    أنتظر بقية الدرس:shy:





    __________________
    CSS - XHTML
    مدمن أنترنت غير متواجد حالياً

  11. #11
    عضو جديد
    تاريخ التسجيل
    Sep 2003
    المشاركات
    20


    فعلا هذه الطريقه افضل

    الله يقويك اخوي رضا

    مممممممممممممم بصراحه الدرس يبيله فنجال قهوه وتروييييقه علشان افهمه زين ...





    __________________
    ـأتيليهـ
    www.atelieh.com
    MSN: www @ atelieh.com
    atelieh غير متواجد حالياً

  12. #12
    عضو فعال
    تاريخ التسجيل
    Feb 2004
    المشاركات
    1,091


    up





    __________________
    CSS - XHTML
    مدمن أنترنت غير متواجد حالياً

  13. #13
    عضو نشيط
    تاريخ التسجيل
    May 2003
    المشاركات
    289


    بارك الله فيك يااستاذنا
    الليله بدرسه عدل واذا فيه سؤال ان شاء الله بسالك

    تحياتي لك





    EYNN غير متواجد حالياً

  14. #14
    Banned
    تاريخ التسجيل
    Mar 2003
    المشاركات
    410


    جزاك الله خير اخ رضا انا ركبته في موقعي وغيرت الستايل بس لقيت خطء في فورم راسلنا انه ما يضهر اسم وبريد المرسل ويضع بدل منها علامة N\A على ما اظن بس ضبطته وخليته يرسل الاسم والبريد .. وانا استفدت كثير من السكربت .

    www.sa-center.com





    ابو حمد غير متواجد حالياً

  15. #15
    عضو فعال جدا
    تاريخ التسجيل
    Dec 2000
    المشاركات
    2,697


    حياكم الله ..
    نسيت أضع ملف template.php لأنه المفروض يشرح قبل ملف لوحة التحكم .. على كل حال بعد قليل سأشرحه إن شاءالله ..

    أبوحمد .. أشكرك جداً على استعمالك البرنامج وتطويرك عليه زاده جمالاً ماشاءالله عليك .. وأدعو الجميع بزيارة موقع الأخ لرؤية إمكانيات البرنامج الحالية :
    http://www.sa-center.com/home
    وبالنسبة للخطأ الذي تقوله هو ليس خطأ إنما ينتج عن عدم كتابة الزائر بريده أو إسمه ..
    ولا أخفيك أنه نقص في البرنامج حيث لم أضع أوامر طلب التأكيد ..
    لكن ليس خطأً على كل حال والمطلوب من كل زائر تعبئة جميع المعلومات ..





    رضا غير متواجد حالياً





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

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

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