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

الموضوع: [الدرس الثالث-دورة الحياة البرمجية]برمجة الصفحة الرئيسية [ 1 ]

  1. #1

    [الدرس الثالث-دورة الحياة البرمجية]برمجة الصفحة الرئيسية [ 1 ]



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

    السلام عليكم ورحمة الله وبركاته


    الحمدلله والصلاة والسلام على رسول الله تعالى ، اما بعد فكما شاهدنا بالدرس السابق فقد قمنا ببرمجة كلاس للاتصال بقاعدة البيانات وايضا وضعنا ملف الـ function الذي يحتوي حاليا على دالة واحدة وهي للحماية حاليا ، ولكن بالنهاية قد يصبح الملف يحتوي على مئات السطور ، والان ننتقل إلى البدء في برمجة الصفحة الرئيسية والعرض في داخلها ...

    [LIST]
    [*]التحضير :
    يجب قبل كل بدء في مشروع او استكمال المشروع ان تقوم بتحضير بيئة العمل ، وايضا ان تقوم بتجهيز الادوات المستخدمة ،، فلذلك سنقوم الان بـ
    - تشغيل السيرفر الشخصي [ مثلا لدي Xampp << إذا كنت من مستعملينه ، فلا تنسى تشغيل ايضا قواعد البيانات وهذه تحصل عليها عندما تشغل برنامج Xampp يظهر لك نافذة فيها Apache وبجانبه Running وبجانبه زر تشغيل ، واسفل ذلك Mysql ، فقم بالضغط على start الذي بجانب الـ mysql ] [ أما اذا كنت من مستعملين Apache فسيتم حسب ظني تشغيل قواعد البيانات تلقائيا فقط عليك تشغيل الكل ]

    - تشغيل محرر الاكواد ، وفحص ترميز الصفحة وتأكد من كونها UTF-8

    - فتح المجلد الرئيسي للسكربت الذي بالضرورة ان يكون في مجلد www | htdocs حسب ما لديك ، اي بداخل السيرفر الشخصي حتى يتم التجريب مباشرة ...

    [*]العمل :
    نبدأ على بركة الله تعالى مباشرة بدون مقدمات إلى العمل في البرمجة الفعلية حاليا
    1. افتح ملف includes/config.php : والتأكد من صحة البيانات المدخلة مثل اسم القاعدة على حسب اسم القاعدة لديك ، وايضا بيانات الدخول ، وايضا قم باتباع الشرح التالي وذلك لإضافة معلومات العنوان والحقوق في السكربت ، فنقوم بعمل التالي :

      كود PHP:
      $site_name       "Life";
      $copy_right   "All copyright are saved for Life&copy;"
      كما نرى بالكود السابق عرفنا متغيرين واضحين وضوح الشمس واحد لعنوان الموقع والاخر للحقوق ، وقمنا باسناد القيم للمتغيرين ..

      هذا فقط ما نريده حاليا ،،،
    2. افتح ملف Function.php : هذا بالبداية طبعا ستقوم بفتح ملف function.php ، وذلك للقيام بالتأكد من :
      - قيامنا بعمل نسخة للصنف الخاص بنظام القوالب
      - قيامنا باستدعاء ملف الاتصال وملف صنف القاعدة وملف صنف نظام القوالب

      وايضا سنقوم حاليا بوضع المتغيرات التي عرفناها سابقاً الخاصة بالعنوان والحقوق داخل القالب ، وسيكون كالتالي :

      كود PHP:
      $smarty->assign('title' $site_name);
      $smarty->assign('copyright' $copy_right); 
      كما رأينا في هذا الكود ، قمنا باستخدام ايضا هنا احدى دوال صنف نظام القوالب والتي تقوم باسناد قيم لمتغيرات داخل القالب ،، فكما سبق شاهدنا اننا قمنا اولا بوضع مقبض نسخة الصنف ، وبعدها رموز الاشارة للدالة او المتغير المستدعى ، بعدها قمنا باستعمال دالة assign ، وهي تقوم بعمل تعيين لمتغيرات داخل القالب ،، وتستقبل معطيين هما [ اسم المتغير الذي تريد ان يكون داخل القالب ويكون بين علامتي اقتباس بالبداية ، وبعدها يكون فاصلة ، وبعد الفاصلة يكون قيمة المتغير ..

      وهكذا قمنا بتعريف المتغيرات ، الان نريد ان نقوم بوضع الامتدادات كل في مكانه ، فنقوم بفتح ملف header + footer من داخل مجلد القالب ،، ونبحث عن اماكن المتغيرات فمثلا العنوان يكون بين وسمي <title> </title>

      الان وجدنا اماكن المتغيرات ، ولكن تسألني كيف نقوم بطباعة المتغيرات داخل القالب ؟!؟!؟؟؟!

      الجواب ، لطباعة المتغيرات داخل نظام القوالب الذكي Smarty نستخدم الاقواس المعكوفة {}

      فمثلا لإضافة متغير العنوان ، يكون كالتالي :
      كود PHP:
      <title>{$title}</title
      وايضا كذلك بالنسبة للحقوق توجه نحو ملف footer.tpl ، وقم باضافة المتغير الخاص بالحقوق

      للتبسيط فنقوم باضافة التالي :
      كود PHP:
      {$copyright
      وبذلك اصبح لدينا الان للعنوان والحقوق قيم ...
    3. انشاء ملف فارغ جديد index.php : الان بعد التأكد من كل ما سبق نقوم بانشاء ملف جديد في مجلد السكربت الرئيسي باسم [ index.php ] << { يمكن انشاء الملف من محرر الاكواد او بالزر الايمن >> جديد >> مستند نص [ مع التأكد من ترميز الملف ان يكون UTF-8 ] }

      الان بعد ان انشأنا الملف ، نقوم بفتح الملف ، ونقوم بكتابة فتح واغلاق كود الـ php كالتالي

      كود PHP:
      <?php

      ?>
      والان بعد ان افتتحنا اكواد اللغة ، مالمطلوب نبدأ بالتفكير بمنطقية اي نحن انشأنا ملف للدوال وقمنا بداخله بعمل كل شيء من نسخ لصنف القالب والاتصال وما شابه ، فبالضرورة ان نقوم بعمل استدعاء للملف الرئيسي وهو ملف الدوال ،، وهذا يتم كالتالي :
      كود PHP:
      require("function.php"); 
      كما نشاهد بالكود السابق ، اننا استخدمنا الدالة [ require ] لاستدعاء الملف ، هنا يخطر ببالك سؤال :shiny:
      س : لماذا لم نستخدم الدالة include وقمنا باستخدام الدالة require ؟!
      ج : اقول لك اولا سأشرح لك الفرق بين الدالتين بعدها ستعرف بنفسك السبب ، فالدالتين هما لاستدعاء ملف ما ، لكن عند استعمال الدالة [ include ] فإذا كان هناك خطأ بالمف أو ان الملف مفقود ( غير موجود ) أو ان المسار خاطئ ، باختصار اي ان هناك عائق يحول بين البرنامج والملف وفشل باستدعائه ، فإنه يكمل تشغيل البرنامج ويظهر مكان استدعاء الملف خطأ !! ،،، أما الدالة [ require ] فإنها تقوم بالبحث عن الملف فإن لم تجد هناك اي ملف او كان هناك خطأ ما ، فإنها توقف عمل البرنامج ككل وتظهر خطأ في الصفحة ، الان في حالتنا قمنا بجعل ملف الدوال كملف رئيسي واساسي في كل الصفحات ، فلذلك اذا لم يتواجد فلن يكون هناك سكرربت اصلا ، فلذلك استعملنا الاخيرة ..

      <------- انتهينا وقمنا باستدعاء ملف الدوال والحمدلله البرنامج لقاه وكل شيء تمام ، الان سنقوم بخطوة تعتبر مبكرة لكنه من الافضل القيام بها ، الا وهي عرض ملف القالب الخاص بالصفحة الرئيسية وهو [ index.tpl ] ، ويتم هذا عن طريق الدالة الخاصة بصنف نظام القوالب smarty ، ويكون كالتالي :

      كود PHP:
      $smarty->display('default/index.tpl'); 
      كما نرى هنا قمنا باستخدام الدالة display التابعة لصنف سمارتي ، وهي تقوم بعرض ملف القالب الذي تريد ان تجري عليه التعديلات ويطبع ما تريد فيه ، وتتكون الدالة كالتالي

      1- مقبض الصنف ويكون متغير وفي حالتنا $smarty لأننا نسخنا الصنف على هذا المتغير
      2- بعدها تأتي رموز الاشارة إلى الدالة او المتغير الذي نطلبه من الصنف [ -> ]
      3- بعدها يأتي قوسين () ويكون بداخلها علامتي اقتباس "" أو ''
      4- وبداخل الاقواس يأتي اسم مجلد القالب وهو في حالتي default وبعدها / وبعدها اسم ملف القالب وفي حالتنا index.tpl ...

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

      بعد ذلك الان يمكنك الحفظ والذهاب بمتصفحك إلى : http://localhost/هنا ضع اسم مجلد السكربت /

      وسترى النتائج وهي كما في الصورة : http://upload.traidnt.net/upfiles/QdG76328.png

      طبعا اذا كان عملك 100% وكما تم الشرح ستظهر كما بالصورة السابقة ، اما اذا كان هناك خطأ فاتبع الشرح مرة اخرى وجرب او يمكنك طرح مشكلتك وسيتم حلها ان شاء الله

      الان نبدأ بالبرمجة الفعلية ، فبالبداية بعد ان قمنا باستدعاء ملف الدوال ، وعمل عرض للقالب ، الان نقوم بعرض العنوان الخاص بالصفحة الرئيسية ، ففي الصفحة الرئيسية في العنوان سنقوم بإضافة كلمة الصفحة الرئيسية إلى جانب اسم الموقع فيكون كالتالي :

      كود PHP:
      $smarty->assign('title'$site_name." | الصفحة الرئيسية"); 
      طبعا هذا يكون قبل عرض القالب وبعد كود الاستدعاء ، اي يكون في الوسط بين الاكواد السابق كتابتها ... والان لو ذهبت للمعاينة ستجد انه تمت اضافة [ الصفحة الرئيسية ] بجانب اسم الموقع ...

      الان بعد ان انتهينا من شغلة العناوين والحقوق وما شابه ،، نرجع للصفحة الرئيسية السابقة فنرى كما قلنا بالمخطط البلوك اليمين - البلوك الوسط - البلوك اليسار

      ففي هذا الدرس سنقوم بعمل البلوك الايمن ، وفيه سيكون

      - القائمة الرئيسية ، وتحتوي على الاقسام الخاصة بالمقالات
      - تسجيل الدخول للاعضاء ،
      - الاحصائيات ، وسيتم تركها حاليا إلى حين الانتهاء حتى يتبين محتواه

      نبدأ على بركة الله تعالى في القائمة الرئيسية ، وبما اننا سنقوم بعمل اقسام للمقالات ، فبالتالي سنقوم بعمل جدول جديد في قاعدة البيانات يكون كالتالي

      اسم الجدول : cats
      عدد حقول الجدو : 3
      الحقول :
      Id || int(11) ||Not Null || Auto increment
      cat_name || varchar(255) || Null
      stat || int(11) || Null

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

      <<<< الكود الخاص بالجدول لمن يحتاجه

      كود PHP:
      CREATE TABLE `cats` (
        `
      Idint(11NOT NULL AUTO_INCREMENT,
        `
      cat_namevarchar(255) DEFAULT NULL,
        `
      statint(11) DEFAULT NULL,
        
      PRIMARY KEY (`Id`)
      ENGINE=MyISAM DEFAULT CHARSET=utf8
      الان انتهينا من عمل الجدول الخاص بالتصنيفات او الاقسام ، وننتقل إلى برمجة عرض الاقسام ،

      اولا نبدأ بعد الكود السابق الخاص بالعنوان ، ونضع تعليق بسيط كالتالي :
      كود PHP:
      /**
      * Catagory shows [begin]
       **/ 
      اي هنا نعرف المطور او قارئ الكود انه هنا بداية كود عرض الاقسام

      وبعد هذا التعليق نبدأ ببرمجة كود عرض الاقسام ، وسنحتاج لعمل عرض للاقسام من قاعدة البيانات :

      - استعلام لمعرفة الاقسام الموجودة
      - عمل جلب للنتائج
      - تخزين النتائج في متغير على شكل مصفوفة
      - تعيين متغير للمصفوفة وتسجيلها بنظام القوالب
      - عرض الاقسام داخل ملف index.tpl في مجلد القالب ..

      نبدأ إذا خطوة خطوة ، فلعمل استعلام من قاعدة البيانات هناك دوال خاصة بذلك ،
      1- نقوم بالاستعلام عن الاقسام التي حالتها [ 0 ] مفعلة ( تلقائيا ) ،

      كود PHP:
      $cat_query $mysql->query("select Id,cat_name From cats where stat = 0  "); 
      كما نرى بالكود السابق ، قمنا باستخدام الصنف الذي قمنا ببرمجته سابقا لعمل الاستعلام وايضا واتبعنا الخطوات التالي :
      1- عرفنا متغير للاستعلام >> 2- بعدها قمنا باستخدام دالة query من الصنف الذي برمجناه سابقا >> 3- بعدها فتحنا اقواس الاستعلام ووضعنا علامتي اقتباس ، وبدأنا بكلمة بسيطة وهي select وهي تعني اختار [ وحددنا حقلي Id, cat_name ] ومن ثم قلنا له From اي [ من ] وحددنا الجدول cats ومن ثم الان نذهب لعمل شرط في الاستلاعم وهو ان يكون الـ stat [ الحالة ] === 0 وهذا يعني انه مفعل كما اسلفنا ...

      وكما نرى هذا هو بكل بساطة الاستعلام ، والان نذهب لجلب البيانات وعمل حلقة تكرار وتخزين البيانات المجلوبة في متغير عبارة عن مصفوفة ، ويصبح الكود كالتالي :

      كود PHP:
      while($cats $mysql->fetch_array($cat_query)){
          
      $cat[] = $cats;

      شرح الاكواد السابقة :

      1- عملنا حلقة تكرار عن طريق الدالة while ، ووضعنا شرط التكرار هو متغير مسند له قيمة الجلب من القاعدة بواسطة الدالة [ $myqsl->fetch_array ] التي برمجاناها داخل الصنف ...
      2- بعدها داخل التكرار قمنا بتعريف متغير محتوياته عبارة عن مصفوفة ، وذلك عن طريق $cat[] ، واسندنا له قيمة المستخرج من الاستعلام ...

      --- الان نذهب لتخزين البيانات المستخرجة التي وضعناها بالمتغير السابق إلى داخل متغير داخل نظام القوالب وهو كما بالطريقة العادية لا يختلف عنه اي شيء

      كود PHP:
      $smarty->assign('cat'$cat); 
      أظنها واضحة ولا تحتاج إلى شرح وتفصيل .. كما في سابقاتها !

      الان انتهينا من استخراج الاقسام وكل شيء الان نكتب تعليق بسيط لتوضيح انه انتهى مكان الاقسام

      كود PHP:
      /**
       * Catagory shows [end]
       **/ 
      [ *** ] الان ننتقل إلى العمل في داخل القالب ، فنقوم بالذهاب إلى صفحة index.tpl الذي بداخل مجلد القالب ...

      - نبحث داخل الملف عن الكود الخاص بالقائمة وهو كالتالي :

      كود PHP:
      <div class="headmenu">القائمة الرئيسية</div>
      <
      div class="linkesmenu">
          <
      ul>
              <
      li><a href="#" title="الصفحة الرئيسية" target="_self">الصفحة الرئيسية</a></li>
              <
      li><a href="#" title="الصفحة الرئيسية" target="_self">الصفحة الرئيسية</a></li>
              <
      li><a href="#" title="الصفحة الرئيسية" target="_self">الصفحة الرئيسية</a></li>
              <
      li><a href="#" title="الصفحة الرئيسية" target="_self">الصفحة الرئيسية</a></li>
              <
      li><a href="#" title="الصفحة الرئيسية" target="_self">الصفحة الرئيسية</a></li>
              <
      li><a href="#" title="الصفحة الرئيسية" target="_self">الصفحة الرئيسية</a></li>
          </
      ul>
      </
      div
      طبعا نقوم بمسح جميع الاقسام الوهمية السابقة ونترك 2 منهم ، الاول نتركه ليكون هو الصفحة الرئيسية ، والثاني سنقوم بانشاء التكرار عليه ... اي بالنهاية سيصبح كالتالي :

      كود PHP:

      <div class="headmenu">القائمة الرئيسية</div>
      <
      div class="linkesmenu">
          <
      ul>
              <
      li><a href="index.php" title="الصفحة الرئيسية" target="_self">الصفحة الرئيسية</a></li>
              <
      li><a href="#" title="الصفحة الرئيسية" target="_self">الصفحة الرئيسية</a></li>
          </
      ul>
      </
      div
      الان سنطبق التكرار داخل نظام القوالب سمارتي على القسم الثاني ، وذلك باستخدام

      كود PHP:
      {section nameloop= }

      {/
      section
      كما نرى تأخذ هذه الدالة معطيين الاول اسم حلقة التكرار ، والثاني المتغير الذي يستمد منه البيانات ليكررها ، فيصبح كالتالي بعد التعديل

      كود PHP:
      {section name="cat" loop=$cat }

      {/
      section
      الان نقوم بوضع داخلها الصف الثاني ، ونقوم بتعديل الخيارات كالتالي :

      كود PHP:
      <li><a href="cat.php?id={$cat[cat].Id}title="{$cat[cat].cat_name}target="_self">{$cat[cat].cat_name}</a></li
      كما نرى بالكود السابق نقوم بكتابة محتويات التكرار كالتالي

      كود PHP:
      {$اسم_متغير_loop[name].اسم_الحقل
      وبالتالي قمنا بتعديل البيانات ووضعنا الرابط إلى صفحة cat.php ، وهي صفحة سوف نقوم بانشائها ستقوم بعرض القسم ومحتوياته ...

      وهكذا انتهينا ، فيمكنك الحفظ الان والقيام بالمعاينة

      -- برمجة نظام تسجيل الدخول وهو بسيط وسهل جدا ، ولا يحتاج شرح كثيير ، ولكن استعمال الجافاسكربت [ الاجاكس ] في تسجيل الدخول هو قد يضيف نكهة بسيطة للدرس ، ولكنه ايضا سيضيف نكهة مميزة للسكربت ... نبدأ على بركة الله تعالى ،،

      ---1--- نقوم باضافة تعليق بسيط قبل البدء وبعد الانتهاء ، كالتالي :

      كود PHP:
      /**
       * Login Side [begin]
       **/


      /**
       * Login Side [end]
       **/ 
      الان سنقوم بالكتابة بوسط التعليقين ، التالي

      أولا : سنقوم بعمل متغير النموذج [ Form ] ، والذي سيكون قيمته النموذج الخاص بتسجيل الدخول ..

      كود PHP:
      $form "
              <form method='post' action='' id='login_form'>
              اسم المستخدم : <input name='username' type='text' id='username' value='' maxlength='15' /><br />
              كلمـة المرور&nbsp; : <input name='password' type='password' id='password' value='' maxlength='15' />
              <input type='submit' name='submit' id='submit'  value='دخول' class='submit' />
              <span id='msgbox' style='display:none'></span>
              </form>
      "

      كما نرى بالكود السابق هو عبارة عن كود HTML عادي جدا ، نموذج ادخال وفيه اضافة بسيطة وهي صندوق [ div ] لعرض الاخطاء التي تواجه المستخدم من كلمة مرور خاطئة ، أو ما شابه او رسالة نجاح ..

      الان بعد الانتهاء سنقوم بعمل بسيط وهو تخزين متغير بنظام القوالب وقيمته هي النموذج السابق
      اذا نقوم بالتالي :
      كود PHP:
      $smarty->assign('form'$form); 
      الان نريد ان نعرض هذا النموذج بواسطة المتغير في داخل القالب ، فنذهب إلى صفحة index.tpl في مجلد القالب ، ونبحث عن الكود التالي :

      كود PHP:
          <div class="headmenu">دخول الأعضاء</div>
          <
      div class="bodymenu">
                      <
      form method="" action="">
              
      اسم المستخدم : <input type="text" name="username" size="15" /><br />
              
      كلمـة المرور&nbsp; : <input type="text" name="password" size="15" />
              <
      input type="submit" value="دخول" class="submit" />
              </
      form>
          </
      div
      ونقوم باستبدال الاكواد السابقة جميعها بــ ــ ــ ــ ــ ــ ــ

      كود PHP:
          <div class="headmenu">دخول الأعضاء</div>
          <
      div class="bodymenu">
          <
      div id="login">
              {
      $form}
          </
      div>
          </
      div
      وهكذا الان يمكنك الذهاب للمتصفح وستجد النموذج ذاته لكنه هذه المرة النموذج في صفحة index.php ولكن المتغير في القالب ، ولهذه الحركة اهمية كبرى .. تابع وسترى ،،

      الان نقوم بفتح مجلد [ js ] الموجود داخل المجلد الرئيسي للسكربت ، ونقوم بوضع الملفين التاليين بداخلهما :

      http://www.life5.net/Smarty's/3/login.js
      http://www.life5.net/Smarty's/3/jquery-1.4.2.min.js

      طبعا الاول وهو ملف login.js ، وهو المخصص لعمل تسجيل الدخول ، وهو جاهز 100% ان شاء الله يمكنك فتحه وقرائته ، والاخر هو ملف خاص بمكتبة jQuery ...

      الان سننتقل إلى انشاء صفحة [ login.php ] في داخل مجلد السكربت الرئيسي ، وهو الذي سيحتوي على شروط التأكد من اسم المستخدم وكلمة المرور ، وبعدها تسجيل الجلسة [ session ] ...

      -- اولا قم بانشاء ملف php فارغ ، الطرق كثييرة ومشروحة بالدروس السابقة ، وقم بتسمية الملف login.php

      طبعا نفتح اكواد لغة البرمجة php ، ومن ثم نقوم بالعمل الرئيسي وهو استدعاء ملف الدوال فبالتالي يصبح الملف كالتالي ،،،
      كود PHP:
      <?php
      session_start
      ();
      /**
       * @author Life
       * @copyright 8-7-2010
       */

      require("function.php");


      ?>
      الان سنقوم بعمل شرط بسيط وهو للتأكد من البيانات المدخلة ، وسيكون كالتالي :

      كود PHP:
      $user_name  mksafe($_POST['user_name']);
      $password   md5($_POST['password']);

      $user_query $mysql->query("select user_name,password from users where user_name = '$user_name' ");
      $result     $mysql->fetch_array($user_query);

      if(
      mysql_num_rows($user_query) > 0){
          
          if(
      strcmp($result['password'],$password) == 0)
          {
              echo 
      "yes";
              
              
      $_SESSION['u_name']= $user_name 
              
          }else{
              echo 
      "no";
          }
          
      }else{
          echo 
      "no";

      في الكود السابق ، قمنا اولا بتعريف متغيرين الاول لاسم المستخدم ، والثاني لكلمة المرور ... وقيمة كل متغير هي ما يستقبله البرنامج من النموذج الخاص بتسجيل الدخول ، ولكن بالمتغير الاول قمنا باستعمال الدالة mksafe التي قمنا بعملها ، وبالمتغير الخاص بكلمة المرور ، فقمنا بعمل تشفير بدالة md5 وذلك لزيادة الحماية بالسكربت ...

      ثم بعد ذلك قمنا بعمل استعلام يستعلم عن اسم المستخدم إذا كان موجود ام لا ...

      بعدها عملنا جلب للبيانات وكل هذا مشروح في دروس سابقة واظنه واضح كله ،،

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

      mysql_num_rows

      وهي دالة لقاعدة البيانات [ كان لازم عملنا لها دالة بالكلاس لكن لا مشكلة ] ، تقوم هذه الدالة بعد السطور الموجودة في قاعدة البيانات التي تم الاستعلام عنها ، وفي الشرط قمنا بجعله يتأكد من ان السطور هي اكثر من 0 أي يوجد احد بهذا الاسم في قاعدة البيانات ،،،

      ثم بعد ذلك إذا كان هناك شخص بهذا الاسم فسنقوم الان بالتأكد من كلمة المرور ، ولذلك استخدمنا احدى دوال الـ php وهي [ strcmp ] ، وهي تستعمل للمقارنة بين معطيين وترجع نتائجها كالتالي :

      أصغر من صفر [ 0 ] ===> فإن المعطى الاول اصغر من المعطى الثاني
      أكبــر من صفر [ 0 ] ===> فإن المعطى الاول اكبــر من المعطى الثاني
      يسـاوي صفر [ 0 ] ===> فإن المعطيين متساويين ، وهكذا استعملنا في حالتنا أي استخدمنا الشرط ليكون الناتج == 0 ليكونان متطابقين ، وبالتالي فإن المدخلات صحيحة

      ثم بعد ذلك قمنا بطباعة كلمة [ yes ] وذلك لكي نعلم الجافاسكربت بأننا وصلنا إلى المطلوب الصحيح ، وبعد طباعة yes ، قمنا بتخزين قيمة اسم المستخدم داخل جلسة [ session ] وذلك للاستفادة منها فيما بعد والتأكد من عدم خروجه ...

      وطبعا باقي الكود معروف وهو في حالة عدم تطابق كلمتي المرور ، وايضا عدم وجود سجلات لاسم المستخدم !! فيرسل no ويظهر الجافاسكربت خطأ ..

      ----2---- الان نعود مرة اخرى إلى صفحة index.php ، وذلك لنقوم بعمل التأكد من وجود جلسة مسجلة أم لا ، وإذا كان هناك جلسة يقوم باخفاء الفورم واظهار رسالة ترحيبية ، وروابط خاصة ...

      اولا بعد فتح الصفحة [ index.php ] ، نقوم بكتابة بعد فتح وسمي اللغة ، نقوم بفتح جلسة جديدة ..

      كود PHP:
      <?php // بع هذا الكود بالضبط 
      session_start();
      وبعدها انزل إلى مكان تسجيل الدخول وبين التعليقين ، نقوم الان بعمل شرط بسيط كالتالي :
      كود PHP:
      if($_SESSION['u_name']){
          
      }else{
      $form "
              <form method='post' action='login.php' id='login_form'>
              اسم المستخدم : <input name='username' type='text' id='username' value='' maxlength='15' /><br />
              كلمـة المرور&nbsp; : <input name='password' type='password' id='password' value='' maxlength='15' />
              <input type='submit' name='submit' id='submit'  value='دخول' class='submit' />
              <div id='msgbox' style='display:none'></div>
              </form>
      "
      ;

      $smarty->assign('form'$form);


      كما نرى بالكود السابق وضعنا كود بسيط يتم التأكد من خلاله من إذا ما وجد ان هناك جلسة مسجلة ، فيقوم باظهار شيء ، واذا لا يظهر الفورم بشكل طبيعي ...

      الان سنقوم بعمل صندوق جديد خاص بما بعد تسجيل الدخول ،، ويكون اسمه مثل after_login
      وايضا سنقوم بتخزين المتغير وقيمته داخل نظام القوالب
      ويكون الكود كالتالي :

      كود PHP:
          $after_login "
              <div id='after_login'>
                  <p style='font-size:15px;text-align:center;'>اهلا بعودتك "
      .$_SESSION['u_name']." </p>
                  <p style='font-size:15px;text-align:center;padding-top:15px;'><a href='usercp.php' style='text-decoration:underline;color:#444444;'> لوحة التحكم </a></p>
                  <p style='font-size:15px;text-align:center;padding-top:5px;'><a href='?logout=1' style='text-decoration:underline;color:#777777;'> تسجيل الخروج</a></p>
              </div>
          "
      ;
      $smarty->assign('after_login'$after_login); 
      وكما نرى بالكود السابق فقط عرفنا متغير وقيمته عبارة عن اكواد خاصة بالعرض وبها رسالة ترحيبية ورابطين احدهما للوحة التحكم ، والاخر لتسجيل الحروج من الموقع ..

      الان نقوم بإضافة شرط اخر في اعلى بداية منطقة تسجيل الدخول [ أي بعد التعليق الاول ] وهو عبارة عن شرط بسيط إذا قام بطلب تسجيل الدخول فهو يستقبل الطلب ويقوم بالعمل :
      كود PHP:
      if($_REQUEST['logout']){
          unset(
      $_SESSION['u_name']);
          
      header('Location: index.php');

      في الكود السابق وضعنا شرط ، إذا وجدت انه قام بطلب logout ، فيقوم بـ
      1- فض الجلسة [ حذف الجلسة ] الخاصة بتسجيل دخول العضو ، واستعملنا الدالة unset لعمل ذلك ..
      هنا يأتي سؤال بسيط : لماذا لم نستعمل session_destroy() ؟!
      - الجواب وهو لأنه session_destroy تعني تدمير الجلسات ، فلنفرض انه كان هناك جلسات اخرى غير الدخول للعضو مثلا جلسة مشاهدة الموضوع مثال ،، فإذا قمنا بعمل تدمير الجلسات فستذهب جميع الجلسات وقد تخرب عمل شيء ما ،، ولكن الاخيرة unset فهي تقوم بفض الجلسة التي تحددها انت ...

      وايضا بالكود السابق استعملنا الدالة header ، واستعمالنا لها كان مقصورا على عمل اعادة توجيه للصفحة الرئيسية ، وذلك لكي لا يبقى بالعنوان قيمة logout ...

      هكذا انتهينا من نظام تسجيل الدخول ، لكن باقي اخر خطوة وهي وضع المتغير في القالب ،

      ويكون كالتالي :

      - نفتح ملف index.tpl ونبحث عن
      كود PHP:
      <div id="login"
      - نقوم بإضافة الكود التالي أعلى الكود السابق مباشرة

      كود PHP:
      {$after_login
      ******* ايضا هناك شيء مهم جدا جدا جدا نسيته اثناء الشرح ، الان نذهب لملف header.tpl داخل مجلد القالب ...

      - نفتح الملف الخاص بالهيدر
      - ابحث عن :
      كود PHP:
      <link rel="shortcut icon" href="templates/default/images/favicon.ico" type="image/x-icon"  /> 
      - اسفله مباشرة ، قم بوضع الكود التالي ، وهذا الكود يفيد في استدعاء ملفات الجافاسكربت اللي حملتها من الرابط اعلاه

      كود PHP:
      <script src="js/jquery-1.4.2.min.js" type="text/javascript" language="javascript"></script>
      <script src="js/login.js" type="text/javascript" language="javascript"></script> 

      -- اما بالنسبة للاحصائيات فهي من المكونات التي سنتركها للنهاية حتى يتبين لدينا ماذا سنضع بداخلها ،، لأن الوضع الان مبعثر قليلا ...

    4. الانتهاء والتجريب :

      في هذا الجزء سأقوم بوضع رابط لتجريب السكربت بعد الانتهاء من كل درس ان شاء الله تعالى

      ولتجربة العمل تفضل : http://www.life5.net/Article/

    5. إضافات وتوضيح :



    والى هنا يكون درسنا قد انتهى بفضل الله تعالى ، فإن اصبت فمن الله تعالى وان اخطأت فمن نفسي ، وان شاء الله نرى التطبيقات كلها بعد هذا الدرس ، ولمن لا يملك مساحة فارغة ، يمكنه الان حجز استضافة مجانية وذلك لنرى التطبيقات من كل عضو ، وايضا بالنهاية سنرى من هو افضل سكربت مطبق بإذن الله تعالى ...


    ونعود ونذكر ، نستقبل الاستفسارت بالنسبة للاعضاء هنا ، وبالنسبة للزوار وايضا الاعضاء نستقبل الاستفسارات عن طريق مدونة الحياة :
    www.life5.net



    تحياتي للجميع :
    عبدالله
    Life





    __________________
    زورونا في موقع الحياة للنقاشات والأسئلة والأجوبة :
    - php >> وهو لحل مشاكل php وما حولها
    - Ideas >> وهو لعرض الأفكار وتقييمها وايضا لمناقشة الأفكار


  2. #2
    عضو نشيط جدا
    تاريخ التسجيل
    Apr 2008
    المشاركات
    361


    نموذج الدخول عندي لم يظهر.

    لا ادري اين الخطأ ؟؟؟؟





    __________________
    مجلتي الصغيرة

  3. #3


    نموذج الدخول عندي لم يظهر.

    لا ادري اين الخطأ ؟؟؟؟
    اهلا بك اخوي ،، وشاكر لك متابعتك وتطبيقك

    اولا يجب التأكد من عدة اشياء

    1- التأكد من قيامك بعمل تخزين لمتغير النموذج في القالب بواسطة assign
    2- التأكد من وضعك لاسم المتغير الذي خزنته في القوالب

    تأكد منهم واذا ما زال المشكلة ، ارفق لي الملفات استخرج لك الخطأ ، وسوف اشرحه لك ان شاء الله

    تحياتي لك





    __________________
    زورونا في موقع الحياة للنقاشات والأسئلة والأجوبة :
    - php >> وهو لحل مشاكل php وما حولها
    - Ideas >> وهو لعرض الأفكار وتقييمها وايضا لمناقشة الأفكار

  4. #4
    عضو نشيط جدا
    تاريخ التسجيل
    Apr 2008
    المشاركات
    361


    الملفات في المرفقات.





    الملفات المرفقة الملفات المرفقة
    __________________
    مجلتي الصغيرة

  5. #5


    هلا اخوي ،،

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

    جرب ان تنقل الدالة $smarty->display من اول الصفحة إلى اخرها [ أي قبل ما تغلق قكود البي اتش بي ]

    تحياتي لك





    __________________
    زورونا في موقع الحياة للنقاشات والأسئلة والأجوبة :
    - php >> وهو لحل مشاكل php وما حولها
    - Ideas >> وهو لعرض الأفكار وتقييمها وايضا لمناقشة الأفكار

  6. #6
    عضو نشيط جدا
    تاريخ التسجيل
    Apr 2008
    المشاركات
    361


    كيف يمكن اضافة خاصية التحقق من خلو المدخلات في النموذج من الحروف الممنوعة واكواد الاتش تي ام ال والجافا سكريبت ؟





    __________________
    مجلتي الصغيرة

  7. #7


    كيف يمكن اضافة خاصية التحقق من خلو المدخلات في النموذج من الحروف الممنوعة واكواد الاتش تي ام ال والجافا سكريبت ؟
    اهلا يالغالي ،،

    استخدمنا دالة mksafe ، التي قمنا ببرمجتها سابقا وهي تقوم بفلترة المدخلات

    تحياتي لك





    __________________
    زورونا في موقع الحياة للنقاشات والأسئلة والأجوبة :
    - php >> وهو لحل مشاكل php وما حولها
    - Ideas >> وهو لعرض الأفكار وتقييمها وايضا لمناقشة الأفكار

  8. #8
    عضو نشيط جدا
    تاريخ التسجيل
    Apr 2008
    المشاركات
    361


    اهلا يالغالي ،،

    استخدمنا دالة mksafe ، التي قمنا ببرمجتها سابقا وهي تقوم بفلترة المدخلات

    تحياتي لك
    هي لا تتعامل مع هذه الحروف :

    *-+/؟ـ{()>&"'=°<

    بحيث اذا ادخلتها في النموذج لا تاتيك اي رسالة خطأ تدل على عدم السماح لك باستعمال هذه الحروف.





    __________________
    مجلتي الصغيرة





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

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

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