Advanced Search

المحرر موضوع: على بركة الله سلسلة دروس تصميم المواقع  (زيارة 14995 مرات)

0 الأعضاء و 1 ضيف يشاهدون هذا الموضوع.

سبتمبر 02, 2002, 11:27:47 مساءاً
رد #45

أبو عبدالرحمن

  • عضو متقدم

  • ****

  • 718
    مشاركة

    • مشاهدة الملف الشخصي
على بركة الله سلسلة دروس تصميم المواقع
« رد #45 في: سبتمبر 02, 2002, 11:27:47 مساءاً »
الدرس الرابع عشر: تصميم صفحة التوقيع في سجل الزوار (صفحة sign_book.asp)

صفحة sign_book.asp لن يكون بها أي Code بلغة ASP . فستكون كاملة بلغة HTML ويمكنك تصميمها بالفرونت بيج (Microsoft Frontpage) بسهولة.

افتح صفحة guest.asp واحفظها باسم sign_book.asp حيث سنجري عليها التغييرات اللازمة. وإليك الـ Code لهذه الصفحة، وسنقوم بشرح أهم النقاط فيه بعد ذلك.

Code Sample
<%@ Language=VBScript CodePage = "1256"%>

<html dir=rtl>

<!--#include file="pageheader.txt" -->

<p align="center"><font face="Simplified Arabic">مرحبا بكم في
سجل الزوار.. وملاحظاتكم تسعدنا</font></p>

<form method="POST" action="add_to_book.asp">
   <b>الحقول التي أمامها علامة (<font color="#C11111">*</font>) مطلوبة.</b><p>
   <b>الاسم: <font color="#C11111">*</font> <input type="text" name="name" size="20"></b></p>
   <p><b>البريد الالكتروني: <input type="text" name="email" size="20"></b></p>
   <p><b>الموقع الشخصي (URL):
   <input type="text" name="website" size="20"></b></p>
   <p><b>طريقة الاستدلال على الموقع: <select size="1" name="link">
   <option>محرك بحث</option>
   <option>رابط من موقع آخر</option>
   <option>وسائل الإعلام</option>
   <option>صديق</option>
   <option>أخرى</option>
   </select></b></p>
   <p><b>تقييم الموقع: <input type="radio" value="ممتاز" checked name="ranking">
ممتاز     <input type="radio" name="ranking" value="جيد">
جيد     <input type="radio" name="ranking" value="ضعيف">
ضعيف</b></p>
   <p><b>التعليق: <font color="#C11111">*</font></b></p>
   <p><textarea rows="5" name="comment" cols="25"></textarea></p>
   <p><input type="submit" value="إضافة التوقيع" name="B1"></p>
</form>

<!--#include file="pagefooter.txt" -->


ستكون الصفحة بالشكل التالي:



والآن ليكم بعض الملاحظات حول هذه الصفحة:

  • طريفة إدراج الـ Forms تحدثنا عنها في الدرس الحادي عشر (تصميم صفحة البحث). وباختصار يمكنكم إدراجها من قائمة Insert وبعدها Form . وهنالك عدة أسماء وأشكال لها.

        = في: الاسم، والبريد، والموقع الشخصي، تم استخدام الحقل الذي باسم Textbox .

        = في: طريقة الاستدلال على الموقع، تم استخدام Drop-Down Box .

        = في: تقييم الموقع، تم استخدام Option Button (ثلاث مرات).

        =  في: التعليق، تم استخدام Text Area .

  • يجب علينا تحديد اسم لكل حقل، وذلك بالضغط بزر الفأرة الأيمن على الحقل المراد تحديد اسمه، واختيار Form Field Properties من القائمة. وكتابة الاسم في خانة Name .

  • الأسماء للحقول هي كالتالي:



  • لكتابة الاختيارات في قائمة (طريقة الاستدلال على الموقع)، اضغط على القائمة بالزر اليمين، واختر Form Field Properties . من الشاشة التي ستظهر اضغط Add وأضف خياراتك واحدة تلو الأخرى.

  • وضعنا اسما واحدا لجميع الاختيارات في (التقييم) وللتميز بين هذه الخيارات، اضغط على الاختيار الأول بالزر اليمين، واختر Form Field Properties . ومنه حدد القيمة في خانة Value بكتابة ممتاز. وكرر العملية بالنسبة للخيارات الأخرى.

  • لتغيير كلمة Submit المكتوبة على الزر، اضغط عليه بالزر الأيمن واختر Form Field Properties . واكتب الكلمة التي تريد أن تظهر على الزر مكان Submit .

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



    اختر Send to Other ثم اضغط على زر Options . وفي الشاشة التالية اكتب اسم الصفحة التي تود إرسال هذه المدخلات إليها في خانة Action (اكتب هذا الاسم add_to_book.asp) واترك الحقل Method كما هو (لا تغير كلمة POST ).

    في الدرس التالي، سنصمم صفحة إضافة هذه المدخلات إلى قاعدة البيانات.

    ---------------------------------------------------------
  • يمكنك مشاهدة الصفحة التي قمنا بتصميمها في هذا الدرس من خلال هذا الرابط: سجل الزوار

  • سيتم توفير الصفحات في الدرس التالي.

  • سبتمبر 02, 2002, 11:49:29 مساءاً
    رد #46

    أبو عبدالرحمن

    • عضو متقدم

    • ****

    • 718
      مشاركة

      • مشاهدة الملف الشخصي
    على بركة الله سلسلة دروس تصميم المواقع
    « رد #46 في: سبتمبر 02, 2002, 11:49:29 مساءاً »
    الدرس الخامس عشر: إضافة بيانات للقاعدة


    بعد أن انتهينا من تصميم صفحة sign_book.asp والتي تحتوي على الحقول المطلوبة لإدخال البيانات، سنقوم الآن بتصميم صفحة باسم add_to_book.asp لإضافة البيانات للقاعدة. هذه الصفحة ستكون عبارة عن Code بلغة ASP ولن نستخدم أي عبارات HTML . وما ستلاحظه في هذه الصفحة هو عدم ظهورها للزائر. أي ستعمل هذه الصفحة عندما يقوم الزائر بكتابة ملاحظاته والضغط على زر: أضف التوقيع. لكن الزائر لن يلاحظ هذه الصفحة، وسيرى نفسه في صفحة (عرض التواقيع) وسترى توقيعه في الأعلى.

    لا نريد أن أستبق الأحداث، سنعرض عليك الآن الـ Code لهذه الصفحة، وسنقوم بشرح أهم النقاط فيه بعد ذلك.

    Code Sample
    <%@ Language=VBScript CodePage = "1256"%>

    <!--#include file="connection.txt" -->

    <%
    add_dat = now()
    name = request.form ("name")
    email = request.form ("email")
    website = request.form ("website")
    link = request.form ("link")
    ranking = request.form ("ranking")
    comment = request.form ("comment")

    If name="" or comment="" then
        response.write "<center>" & "لم تقم بإدخال جميع الحقول المطلوبة.. من فضلك اضغط زر عودة في متصفحتك وقم بإدخال جميع الحقول"
    Else
        addSQL= " insert into guest_book (add_dat,name,email,website,link,ranking,comment) values ('"&add_dat&"','"&name&"','"&email&"','"&website&"','"&link&"','"&ranking&"','"&comment&"') "
        ADO.execute(addSQL)

        response.redirect "guest.asp"
    End if

    ADO.close
    Set ADO=Nothing

    %>


    تحدثنا سابقا عن المتغيرات. وقلنا أننا نكتب اسم المتغير ثم نضع علامة (=) بعد اسمه ونضع قيمته بعد علامة اليساوي. وذكرنا أن القيمة قد تكون رقما، أو كلمة، أو مدخلات في حقول من صفحات سابقة. وذكرنا أنه إن كانت طريقة نقل البيانات GET نستخدام العبارة Request.QueryString للتعبير عن المدخلات. أما إن كانت POST فسنستخدم Request.Form . والآن لنشرح المتغيرات التي لدينا.

    لدينا 7 متغيرات. اترك المتغير الأول جانبا الآن. ولننظر للست متغيرات الأخرى ( name, email, website, link, ranking and comment) تشترك هذه المتغيرات الستة في نفس طريقة الكتابة. حيث تم تحديد اسمها، ومن ثم وضع علامة (=) ثم تم الإفصاح عن أن قيمة هذه المتغيرات ستكون عبارة عن مدخلات في حقول في الصفحة السابقة وذلك بالعبارة Request.Form أما أسماء الحقول في الصفحة السابقة فتم كتابتها بين هذه العلامات: (" ")

    والآن، لنرجع للمتغير الأول وهو add_dat . تم تحديد قيمة المتغير بـ now() وهذه القيمة هي قيمة ثانية في اللغة تعطي: الوقت والتاريخ الحاليتين. وهنالك الكثير من الدوال الأخرى أهمها :



    بعد تحديد المتغيرات تم كتابة جملة تبدأ بـ if . وهذه جملة شرطية. صيغتها:

    Code Sample
    If something Then
        something
    Else
        something
    End if



    حيث أن كلمة something تعبر عن : شرط تقوم بتحديده، وفعل يجب القيام به. لنفترض أن الشرط هو: الساعة 12. والفعل أو الإجراء هو طباعة: (ابتدأ يوم جديد). والإجراء البديل هو طباعة: (لازلنا في نفس اليوم). بإمكاننا استخدام هذا الشرط، حيث سنكتب if ثم سنكتب الشرط المطلوب. ثم سنكتب Then لتنفيذ الإجراء المطلوب. وفي حالة عدم تحقق الشرط يتم تنفيذ الإجراء البديل الذي بعد Else . ونغلق الدالة الشرطية بـ End if

    ويمكن أن تتطور هذه الصيغة في حالة وجود أكثر من شرط لتصبح كالتالي:

    Code Sample

    If something Then
        something
            Else If something Then
                something
                    Else If something Then
                        something
                            Else
                                something
                    End if
            End if
    End if



    لنعد للـ Code ونرى كيف تم استخدام الدالة الشرطية.

    Code Sample
    If name="" or comment="" then



    في السطر السابق تم تحديد الشرط، وهو: إن كانت Name أو Comment لا تساوي شيئا (أي حقول فارغة) قم بالتالي...

    من السطر السابق نفهم أمران هما:

  • علامتا "" المتلاصقتان تعنيان : لا شيء .. أو : فراغ.

  • يمكن استخدام الأوامر المنطقية Or و And في الدوال الشرطية لدمج أكثر من شرط في سطر واحد.

    أما الإجراء الواجب القيام به في حالة تنفيذ الشرط فهو الآتي:

    Code Sample
    response.write "<center>" & "لم تقم بإدخال جميع الحقول المطلوبة.. من فضلك اضغط زر عودة في متصفحتك وقم بإدخال جميع الحقول"



    أي: اطبع الجملة التالية: (لم تقم بإدخال جميع الحقول المطلوبة.. من فضلك اضغط زر عودة في متصفحك وقم بإدخال جميع الحقول).

    الأمر الجديد في response.write هذه المرة هو أننا قمنا بكتابة أمر HTML ضمن أوامر ASP وكأنه واحد منها. هذا أمر هو
    Code Sample
    <center>

     أي: توسيط. والذي سيجعل الجملة تظهر في منتصف السطر. تم كتابة هذا الأمر على النحو التالي: وضعت علامات التنصيص "" ثم كتب الأمر بداخلها ثم وضعت علامة (و) & وتم كتبة الجملة التي نريد طباعتها.

    هذا هو الشرط. أما الإجراء البديل في حالة عدم تحقق الشرطة (أي في حالة وجود بيانات في هذه الخانات) فهو:

    Code Sample
    addSQL= " insert into guest_book (add_dat,name,email,website,link,ranking,comment) values ('"&add_dat&"','"&name&"','"&email&"','"&website&"','"&link&"','"&ranking&"','"&comment&"') "


    وفي هذا السطر أمر جديد، هو insert ووظيفته: إضافة المدخلات لقاعدة البيانات. وصيغته كما هو واضح بالأعلى. يكتب الأمر insert متبوعة بالكلمة into ثم اسم الجدول المراد إضافة البيانات إليه. وبين قوسين تكتب أسماء الخانات في الجدول المطلوب إضافة المدخلات إليها. ثم تكتب values وبعدها بين قوسين أيضا القيم المراد إضافتها وهي بنفس ترتيب الحقول.

    تكتب القيم هكذا: '"&add_dat&"'

    بعد سطر insert يتم كتابة سطر تنفيذ الأمر وهو :

    Code Sample
    ADO.execute(addSQL)


    الاسم addSQL نحن من قام بتحديده، ويمكننا تغييره كيفما نشاء.

    لازلنا في الجملة الشرطية، حيث تم تحديد فعل أو إجراء إضافي هو:

    Code Sample
    response.redirect "guest.asp"



    وهذه الجملة تعني: انتقل للصفحة أو العنوان الموجود بين علامتي التنصيص. وفي حالتنا هذه طلبنا منه الانتقال إلى صفحة عرض التواقيع.

    تم أغلنا الشرط بـ End if

    لنتخيل الآن طريقة عمل هذه الصفحة  

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

    من الجدير بالذكر أن هذه العملية ستستغرق ثواني قليلة قد لا يشعر بها الزائر.

    ---------------------------------------------------------

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

  • لسحب صفحات سجل الزوار: سجل الزوار

  • لسحب قاعدة البيانات: قاعدة بيانات

  • سبتمبر 04, 2002, 04:43:27 مساءاً
    رد #47

    أبو عبدالرحمن

    • عضو متقدم

    • ****

    • 718
      مشاركة

      • مشاهدة الملف الشخصي
    على بركة الله سلسلة دروس تصميم المواقع
    « رد #47 في: سبتمبر 04, 2002, 04:43:27 مساءاً »
    إخوتي الأعزاء

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

    إلى هذه المرحلة هل واجه أحد من متابعي هذه الدروس - القليلون - أي مشكلة في تنفيذ أي درس من الدروس السابقة ..

    وإلى حين الإفادة تقبلوا خالص تحياتي ...

    أخوكم أبو عبدالرحمن

    سبتمبر 05, 2002, 04:19:20 صباحاً
    رد #48

    ابو الحروف

    • عضو خبير

    • *****

    • 1993
      مشاركة

      • مشاهدة الملف الشخصي
    على بركة الله سلسلة دروس تصميم المواقع
    « رد #48 في: سبتمبر 05, 2002, 04:19:20 صباحاً »
    اخلص تحياتي لك اخي الكريم ابو عبد الرحمن

    بارك الله فيك على المجهود الجبار الذي تبذله...

    الحقيقة انني اواجه مشكلتان:
    الاولى: انني حينما رفعت ملف view_book مرة اخرى لم تظهر اللغة العربية بشكل صحيح!!! ولا ادري لماذا!!!

    والثانية: هي انني حينما اريد ان اضيف اسما في سجل الزوار فإنه لا يقبل...

    وتقبل خالص شكري

    سبتمبر 05, 2002, 10:26:22 مساءاً
    رد #49

    أبو عبدالرحمن

    • عضو متقدم

    • ****

    • 718
      مشاركة

      • مشاهدة الملف الشخصي
    على بركة الله سلسلة دروس تصميم المواقع
    « رد #49 في: سبتمبر 05, 2002, 10:26:22 مساءاً »
    أخي الغالي أبو الحروف

    أولاً لا أدري لمن أبارك ... هل أبارك لك كونك أصبحت مشرفاً لمنتدى الكيمياء ....

    أم ابارك لهذا المنتدى أن أصبحتم أحد مشرفيه ...

    بحق هذه الأمانة أنتم أهل لها وهي تستحقكم .....

    وأدعو الله أن يعينكم ويوفقكم إلى كل خير .....

    فيما يتعلق بما واجهتم من مشكلات في الدروس أود ان أسأل ...

    هل نجحت الدروس كاملة في سيرفر الجهاز أم لا ...

    ما نوع الخطوط التي تستعملها أثناء إضافتك للكلام داخل الموقع عن طريق الفرونت بيج ..
    وإلى حين ردكم تقبل خالص تحياتي وتقديري .............

    سبتمبر 06, 2002, 04:50:48 مساءاً
    رد #50

    ابو الحروف

    • عضو خبير

    • *****

    • 1993
      مشاركة

      • مشاهدة الملف الشخصي
    على بركة الله سلسلة دروس تصميم المواقع
    « رد #50 في: سبتمبر 06, 2002, 04:50:48 مساءاً »
    بارك الله فيك سيدي الكريم ابو عبد الرحمن

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

    ادعو الله عز وجل ان يوفق الجميع الى ما يحب ويرضى...

    اما بالنسبة للسيرفر في جهازي فيبدو ان هنالك مشكلة فيه لذا فقد عملت طوال الوقت من خلال الموقع... وقد نجحت في عرض صفحة view_book الا ان المشكلة كانت لدى الاضافة في السجل!!!
    من ناحية اخرى فإن الكتابة الهيروغليفية ظهرت فقط حينما غيرت شيئا في صفحة view_book (وصلة للاضافة في السجل), حيث تغيرت الكتابة (واصلها من الاكسس وليس من الفرونت بيج...) اما بالنسبة لنوع الخط فقد كان الخط الافتراضي arial

    وجزاك الله الخير كله سيدي الكريم

    سبتمبر 06, 2002, 05:29:16 مساءاً
    رد #51

    أبو عبدالرحمن

    • عضو متقدم

    • ****

    • 718
      مشاركة

      • مشاهدة الملف الشخصي
    على بركة الله سلسلة دروس تصميم المواقع
    « رد #51 في: سبتمبر 06, 2002, 05:29:16 مساءاً »
    أخي الحبيب أبو الحروف هل يمكن لك أن تحدد ما نوع المشكلة التي في السيرفر لديك

    حاول أن تنسخ هذا الكود وتلصقه بالمفكرة ومن ثم نسخه من المفكرة إلى الفرونت بيج ..
    Code Sample

    <%
     response.write "المنتديات العلمية ترحب بكم"
    %>
        

    ومن ثم حفظ الصفحة بهذا الاسم ( test.asp ) في المجلد التالي ( C:\Inetpub\wwwroot )
    ويمكن تغيير الحرف ( \:C ) إلى ( \ : D  )  حسب وجود السيرفر في السي أو الدي

    ومن ثم الضغط على هذا الرابط ( http://localhost/test.asp )

    فإن ظهرت الصفحة مكتوب فيها ( المنتديات العلمية ترحب بكم ) فإن السيرفر لديك يعمل بشكل جيد

    فقط تحرى عن أي خلل في تطبيق الدروس ..

    بانتظار ردكم حيال ما يتم معكم ..

    سبتمبر 06, 2002, 05:48:08 مساءاً
    رد #52

    ابو الحروف

    • عضو خبير

    • *****

    • 1993
      مشاركة

      • مشاهدة الملف الشخصي
    على بركة الله سلسلة دروس تصميم المواقع
    « رد #52 في: سبتمبر 06, 2002, 05:48:08 مساءاً »
    سيدي الكريم ابو عبد الرحمن

    لقد جربت ما ذكرت وظهر الملف...

    سأحاول التفتيش عن مصدر المشكلة مرة اخرى

    سبتمبر 06, 2002, 07:06:42 مساءاً
    رد #53

    أبو عبدالرحمن

    • عضو متقدم

    • ****

    • 718
      مشاركة

      • مشاهدة الملف الشخصي
    على بركة الله سلسلة دروس تصميم المواقع
    « رد #53 في: سبتمبر 06, 2002, 07:06:42 مساءاً »
    السادس عشر: تصميم صفحات إدارة الموقع (admin.asp)

    أرحب بكم أولا في هذا الدرس، وأرجو لكم الفائدة.

    سنقوم سويا بتصميم صفحات لإدخال اسم المستخدم والرقم السري والتأكد من صحتهما من أجل الدخول لصفحة إدارة الأخبار. وسترون كيف أن المهمة سهلة وممتعة.. فلنبدأ..

    للوصول إلى هذه النتيجة سنقوم بإنشاء ثلاث ملفات وهم كالتالي :   adminsection.asp  ,  validentry.asp, admin.asp

    نموذج إدخال اسم المستخدم والرقم السري (admin.asp): يحتوي على نموذج (Form) لإدخال اسم المستخدم والرقم السري. تقوم هذه الصفحة بعرض  رسالة خطأ عند عدم إدخال اسم المستخدم أو الرقم السري، أو عند إدخال معلومات خاطئة.

    صفحة التحقق من المعلومات (validentry.asp): ستقوم بالتحقق من صحة إدخال اسم المستخدم والرقم السري، ومن تسجيلهما في الموقع.

    الصفحة الإدارية (adminsection.asp): هي الصفحة التي سيسمح بالدخول إليها للقيام بمهام إدارة الموقع، بعد إدخال اسم المستخدم والرقم سري بشكل صحيح .

    قبل أن نقوم بتصميم الصفحات.. يجب أن نقوم بتصميم جدول جديد في قاعدة البيانات.. يسكون اسم الجدول admin وبه ثلاث حقول هي id (من نوع Autonumber) و Name و Password (من نوع Text). وقم بإدخال أية قيم في هذا الجدول. أعني إدخال اسم مستخدم وكلمة مرور افتراضيتين. والآن لنبدأ بإنشاء كل صفحة على حدا..

    نموذج إدخال اسم المستخدم والرقم السري (admin.asp):

    ينقسم هذا الملف إلى جزأين:

    الجزء الأول: يحتوي على نموذج (Form) لإدخال اسم المستخدم والرقم السري كالتالي:

    أدخل اسم المستخدم والرقم السري للدخول على صفحة الإدارة

    اسم المستخدم :

    الرقم السري:


      



    أما Code النموذج بلغة HTML فهو:

    Code Sample
    <form method="POST" action="validentry.asp" name="Login">
    <p> أدخل اسم المستخدم والرقم السري للدخول لصفحة الإدارة  </p>
    <p>اسم المستخدم: <input type="text" name="Name" size="20">  </p>
    <p>الرقم السري: <input type="password" name="Password" size="20">  </p>
    <p> <input type="submit" value="دخول" name="submit">  </p>
    </form>


    ملاحظات:

    تم تسمية حقل (اسم المستخدم) بـ Name أما حقل (الرقم السري) فاسمه Password .

    لحقل الخاص بالرقم السري تم تحديد فيه اختيار الكلمة: Yes التي أمام : Password Field عند الدخول لـ Form Field Propierties وذلك ليتم وضع (نجوم) عند كتابة الرقم السري بدلا من إظهاره على الشاشة.

    الجزء الثاني: يقوم بعرض رسالة خطأ عند عدم إدخال اسم المستخدم أو الرقم السري، أو عند إدخال معلومات خاطئة، ويجب كتابة الـ Code بعد النموذج (Form) مباشرة أي بعد < form/ >

    سوف يستقبل هذا الجزء قيمة من ملف validentry.asp  عند وجود خطأ في إدخال المعلومات في النموذج، وسوف يضعها في error ، سنرى لاحقا كيف سيرسل الملف validentry.asp القيمة.
    Code Sample
    <%
          error=Request.querystring("error")  ' validentry.asp من ملف error  هذه القيمة من ملف

          If  error <> "" then    ' 1. أي في حالة وجود خطأ (لا يساوي فراغ) ، نفذ الأوامر التي تحت (اف) الشرطية

                    If     error = "Name_Null" Then    ' 2.  اطبع الأمر بالأسفل ، Name_Null  يساوي (error) إذا كان الخطأ  

                            Response.write "<b><font color=#FF0000>لم تدخل اسم المستخدم</font></b>"

                    Else

                            If    error = "Pass_Null" Then     '3.  اطبع الأمر بالأسفل ، Pass_Null  يساوي (error)  أما إذا كان الخطأ  

                                   Response.write "<b><font color=#FF0000>لم تدخل الرقم السري</font></b>"

                            Else

                                    If    error = "Name_Entry" Then   '4.  اطبع الأمر بالأسفل ، Name_ Entry  يساوي (error)  أما إذا كان الخطأ  

                                           Response.write "<b><font color=#FF0000>لقد أدخل اسم مستخدم خطأ</font></b>"

                                    Else

                                           If    error = "Pass_Entry" Then    '5.  اطبع الأمر بالأسفل ، Pass_ Entry  يساوي (error)  أما إذا كان الخطأ  

                                                   Response.write "<b><font color=#FF0000>لقد أدخلت رقم سري خطأ</font></b>"

                                            End If

                                   End If

                              End If

                         End If

            End If
    %>

    شرح شروط التحقق من أخطاء الإدخال في النموذج :

    1- If error <> "" then ، هذا الأمر سيتحقق من عدم مساواة error  لفراغ، أي أنه استقبل خطأ من الملف validentry.asp . في حالة تحقق الشرط واستقبال الخطأ، سوف يتم تنفيذ الأوامر التي في داخل If لاختبار الشروط من 2 إلى 5 . أما في حالة عدم تحقق الشرط ، أي لا يوجد خطأ، فسيتنقل لقراءة الأوامر التي تلي End If الأخيرة.
    2- If error = "Name_Null" Then , هذا الأمر سيتحقق من استقبال خطأ في error بحيث يكون مساوي لـ "Name_Null"، وهو يستقبل هذا الخطأ (هذه القيمة) إن لم يدخل المستخدم اسم المستخدم في خانة اسم المستخدم في النموذج. فإذا تحقق الشرط، سوف يعرض عبارة  "لم تدخل اسم المستخدم". أما إذا لم يكن error  يساوي "Name_Null" ، أي لم يتحقق الشرط، فسينتقل إلى اختبار الشرط التالي رقم 3.

    3- If error = "Pass_Null" Then ، هذا الأمر سيتحقق من استقبال الخطأ error  بأن يكون مساوي  لـ "Pass_Null"، وهو يستقبل هذا الخطأ (هذه القيمة) إن لم يدخل المستخدم الرقم سري في خانة  الرقم السري في النموذج، فإذا تحقق الشرط سوف يعرض عبارة  "لم تدخل الرقم السري". أما إذا لم يكن error  يساوي "Pass_Null"  ، أي لم يتحقق الشرط، سوف ينتقل إلى اختبار الشرط التالي رقم 4 .

    4- If error = "Name_Entry" Then  ، هذا الأمر سيتحقق من استقبال الخطأ error  بحيث يكون مساوي لـ "Name_Entry"، وهو يستقبل هذا الخطأ (هذه القيمة) إن أدخل المستخدم قيمة (اسم مستخدم) ولكنها خاطئة، أي غير مسجلة في قاعدة البيانات.  فإذا تحقق الشرط سوف يعرض عبارة  "لقد أدخلت اسم مستخدم خطأ". أما إذا لم يكن error  يساوي "Name_Entry"،  أي لم يتحقق الشرط، سوف ينتقل إلى اختبار الشرط التالي رقم 5.

    5- If error = "Pass_Entry" Then ،  هذا الأمر سيتحقق من استقبال الخطأ error  بحيث يكون مساوي لـ "Pass_Entry"، وهو يستقبل هذا الخطأ (هذه القيمة) إن أدخل المستخدم قيمة (الرقم السري) ولكنها خاطئة، أي غير مسجلة في قاعدة البيانات. فإذا تحقق الشرط سوف يعرض عبارة  "لقد أدخلت رقم سري  خطأ". بعد ذلك ستتوقف عملية اختبار الشروط.

    بذلك نكون انهينا من إنشاء صفحة Admin.asp والبقية في الدرس التالي..

    ------------------------------------------------------

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

    سبتمبر 07, 2002, 06:02:02 صباحاً
    رد #54

    ابو الحروف

    • عضو خبير

    • *****

    • 1993
      مشاركة

      • مشاهدة الملف الشخصي
    على بركة الله سلسلة دروس تصميم المواقع
    « رد #54 في: سبتمبر 07, 2002, 06:02:02 صباحاً »
    السلام عليكم اخي ابو عبد الرحمن

    كل الملفات تعمل, سواء في الجهاز ام في الموقع...
    بقيت مشكلة الاضافة الى السجل... فهي لا تعمل في الموقع ولا على الجهاز... اعتقد ان المشكلة تكمن في صفحة add_to_book
    ولكنني لا ادري ما هي بالضبط

    والله اعلم




    سبتمبر 07, 2002, 10:56:33 مساءاً
    رد #55

    أبو عبدالرحمن

    • عضو متقدم

    • ****

    • 718
      مشاركة

      • مشاهدة الملف الشخصي
    على بركة الله سلسلة دروس تصميم المواقع
    « رد #55 في: سبتمبر 07, 2002, 10:56:33 مساءاً »
    أخي الحبيب أبو الحروف

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

    بمكنك أخي الحبيب من زيارة موقعك وستجد أنه يعمل 100% ..

    أين الخلل ؟؟
    يكمن الخلل الذي حصل معك في أن الموقع http://www.brinkster.com/  الذي يستضيف موقعك يحتم إنزال قاعدة البيانات على المجلد db وليس أي مجلد آخر مثل database ... وقد قمت بتعديل ما يلزم ...

    وبالمناسبة لقد وفقتم باختيار موقع الاستضافة هذا وهو من أقوى المواقع التي تقدم هذه الخدمة المجانية ويدعم لغة الـ asp بشكل تام  وسرعته خيالية أثناء تبادل البيانات ...

    شكراً لتواصلك واهتمامك ..




    سبتمبر 08, 2002, 07:07:56 صباحاً
    رد #56

    ابو الحروف

    • عضو خبير

    • *****

    • 1993
      مشاركة

      • مشاهدة الملف الشخصي
    على بركة الله سلسلة دروس تصميم المواقع
    « رد #56 في: سبتمبر 08, 2002, 07:07:56 صباحاً »
    مرحبا اخي العزيز

    شكرا لك على متابعتك الشخصية لما اقوم بالتمرن عليه...

    وانا في انتظار بقيةالدروس  '<img'>

    سبتمبر 08, 2002, 04:36:28 مساءاً
    رد #57

    أبو عبدالرحمن

    • عضو متقدم

    • ****

    • 718
      مشاركة

      • مشاهدة الملف الشخصي
    على بركة الله سلسلة دروس تصميم المواقع
    « رد #57 في: سبتمبر 08, 2002, 04:36:28 مساءاً »
    الدرس السابع عشر: صفحة التحقق من المعلومات (validentry.asp)

     ستقوم باستقبال القيم المدخلة في نموذج Admin.asp ، ثم ستتحقق  من صحت إدخال اسم المستخدم والرقم السري، ومن تسجيلهما في الموقع.

    إن لم تكن المعلومات المدخلة صحيحة في النموذج، سوف ترسل هذه الصفحة (validentry.asp) ، متغير يسمى error  إلى ملف admin.asp ، ليخبره عن نوع الخطأ في إدخال المعلومات. ليقوم النموذج بعرض رسالة الخطأ المناسبة للمستخدم.

    إذا هذه الصفحة validentry.asp لن تقوم بعرض أي شيء للمستخدم، ستقوم فقط بالتحقق من صحة إدخال المعلومات، فإن كانت غير صحيحة، سيرسل error لـ admin.asp وسوف يعرض الخطأ. إما إذا كانت المعلومات المدخلة صحيحة للمستخدم، سوف يقوم بعرض صفحة adminsection ، وهذا سنتحدث عنه في الدرس التالي.

    الآن سنكتب Code التحقق من إدخال المعلومات كالتالي :
    Code Sample

    <%
    Name=Request.form("Name") 'admin.asp القيمة من النموذج في  ، Name  سيستقبل المتغير
    Password=Request.form("Password") 'admin.asp القيمة من النموذج في  ، Password  سيستقبل المتغير


       If    Name = ""   Then ' 1.   يساوي فراغ ، أي لم يدخل المستخدم قيمة في النموذج لاسم المستخدم   Name  إذا كان
             response.redirect ("admin.asp?error=Name_Null") '   Name_Null مع إرسال الخطأ admin.asp  ارجع إلى صفحة

       Else
             If    Password = ""   Then '2.   يساوي فراغ ، أي لم يدخل المستخدم قيمة في النموذج للرقم السري    Password  إذا كان  
                    response.redirect ("admin.asp?error=Pass_Null")    '  Pass_Null مع إرسال الخطأ admin.asp  ارجع إلى صفحة
            

             Else ' 3.   إذا كان اسم المستخدم متوفر والرقم السري متوفر ، حقق الأوامر التي بالأسفل

                    %><!--#include file="connection.txt" --><%

                    SelectSql = "Select * from admin where name = '"& Name &"'  ' Admin تحقق من وجود اسم المستخدم في جدول الإداريين
                    set rs=ADO.execute (SelectSql)

                    If    rs.EOF    Then  '4.  Name أي لا يوجد سجل في الجدول يحتوى على اسم المستخدم يساوي القيمة الموجودة في  EOF  يساوي rs  إذا كان
                          response.Redirect ("admin.asp?error=Name_Entry") '  Name_Entry  مع إرسال الخطأ admin.asp  ارجع إلى صفحة
      

                     Else
                           If    rs("password")   <>   password    Then  '5. لا يساوي  ، أي لم يدخل المستخدم رقم سري صحيح موجود في القاعدة  rs("password")  إذا كان
                                 response.redirect ("admin.asp?error=Pass_Entry")  '  Pass_Entry مع إرسال الخطأ admin.asp  ارجع إلى صفحة

                           Else '6.   أما إذا كان الرقم السري لاسم المستخدم المدخل صحيح

                                 Name_Cooky= request.cookies("Name")  '  Name_Cooky افتح كوكيز الاسم  وضعه في المتغير

                                 If    Name_Cooky  <>  Name   Then '7.   اختبر الكوكيز ، هل يساوي الاسم المدخل في النموذج  
                                        response.cookies ("Name")  =  Name ' إذا لم يكون مساوي له ، فضع الاسم الجديد من النموذج في الكوكيز

                                 End IF
                      

                                 response.Redirect ("adminsection.asp") '  انتقل إلى صفحة إدارة الموقع

                           End If

                    End If

               End If
        End If
    %>



    كما ترون، الصفحة تحتوي فقط على كود لغة ASP ، ولا تحتوي على كود لغة html  ، لأنها لن تعرض شيئا.

    سأقوم الآن بشرح الـ Code ، جزئا جزئا ، وسوف ترون كيف أن الأمر سهل.

    استقبال القيم من نموذج إدخال اسم المستخدم والرقم السري : admin.asp

    كما هو واضح سيستقبل هذا الجزء ("Request.form("Name اسم المستخدم من نموذج الإدخال، وسيضع القيمة في المتغير Name

    وسيستقبل هذا الجزء("Request.form("Password  الرقم السري من نموذج الإدخال، وسيضع القيمة في المتغير Password

    Code Sample
    Name=Request.form("Name") 'admin.asp القيمة من النموذج في  ، Name  سيستقبل المتغير
    Password=Request.form("Password") 'admin.asp القيمة من النموذج في  ، Password  سيستقبل المتغير


    شرح لشروط التحقق من صحة المعلومات المدخلة في النموذج

    1. If Name = "" Then : هذا الجزء سيتحقق إذا كان اسم المستخدم يساوي فراغ أي لم يدخل المستخدم اسما في نموذج الإدخال، إذا كان كذلك نفذ الأمر التالي:

    ("response.redirect ("admin.asp?error=Name_Null ، أي انتقل إلى ملف admin.asp  إذا كان اسم المستخدم يساوي فراغ، وأرسل إليه كذلك متغير اسمه error  يحتوى على قيمة تساوي Name_Null ، للدلالة على وجود خطأ وهو عدم إدخال اسم المستخدم في النموذج.

    الأمر respons.redirect ، تعني انتقل إلى صفحة معينة. ويجب تذكر عند استخدام هذا الأمر في أمثلة أخرى في المستقبل ، يجب أن يكون فوق < html > ، وبما أن هذه الصفحة لا تحتوي على < html > فليس علينا أن نبالي الآن. ثم نكتب بين الأقواس، اسم الملف المراد الانتقال إليه، وهو في مثالنا هذا (admin.asp).

     وأردنا أن نرسل مع الملف متغير للدلالة على وجود خطأ. فكتبنا error=Name_Null ، أي أرسل متغير يحوي القيمة Name_Null ، وتستطيعون الرجوع للدرس السابق لاحقا لمراجعة كيفية استقبال هذا الخطأ والتعامل معه.

    إذا كان Name  لا يساوي فراغ ، سوف ينتقل للتحقق من الشرط التالي رقم 2.

    Code Sample
    If    Name = ""   Then ' 1.   يساوي فراغ ، أي لم يدخل المستخدم قيمة في النموذج لاسم المستخدم   Name  إذا كان
             response.redirect ("admin.asp?error=Name_Null") '   Name_Null مع إرسال الخطأ admin.asp  ارجع إلى صفحة

    2- . If Password  = "" Then : هذا الجزء يتحقق إذا كان الرقم السري  يساوي فراغ أي لم يدخل المستخدم الرقم السري في نموذج الإدخال. فعند تحقق هذا الشرط سيتم تنفيذ الشرط التالي:

     ("response.redirect ("admin.asp?error=Pass_Null ، أي انتقل إلى ملف admin.asp  إذا كان الرقم السري  يساوي فراغ، وأرسل إليه كذلك متغير اسمه error  يحتوى على قيمة تساوي Pass_Null ، للدلالة على وجود خطأ وهو عدم إدخال الرقم السري في النموذج.

    إذا كان Password  لا يساوي فراغ، سوف ينتقل إلى تحقيق الأمور التي تحت Else  رقم 3

    Code Sample
    Else
             If    Password = ""   Then '2.   يساوي فراغ ، أي لم يدخل المستخدم قيمة في النموذج للرقم السري    Password  إذا كان  
                    response.redirect ("admin.asp?error=Pass_Null")    '  Pass_Null مع إرسال الخطأ admin.asp  ارجع إلى صفحة


    3- سوف ننتقل الآن بعد Else إلى التحقق من توافق المعلومات المدخلة في النموذج مع المعلومات الموجودة في قاعدة البيانات. أي هل اسم المستخدم والرقم السري موجودان في قاعدة البيانات أم لا.

    فنتصل أولا بقاعدة البيانات، بإضافة ملف الربط (Connection.txt) بواسطة خاصية الإدراج Include File .

    ثم  نكتب أمر البحث عن اسم في ملف admin ، بحيث يساوي اسم المستخدم المدخل في النموذج ، فأضفنا الشرط "'"& where name = '"& Name

    أي استخرج لي سجلا من جدول admin ، بحيث يكون الاسم في السجل يساوي الاسم المدخل في النموذج . حيث أن  where name =  هذا هو الاسم في السجل، وهذا   '"& Name &"' الاسم من النموذج.

    Code Sample
    SelectSql = "Select * from admin where name = '"& Name &"'  ' Admin تحقق من وجود اسم المستخدم في جدول الإداريين
    set rs=ADO.execute (SelectSql)


    4.  If rs.EOF Then : يتحقق هذا الشرط إذا كان المتغير rs (وهذا من نوع خاص لاستقبال البيانات من قاعدة البيانات) يساويEOF  :End Of the File ، أي أن المتغير منتهي ولم يسترجع أي سجل من الجدول لعدم وجود سجل يساوي الاسم فيه الاسم المدخل في النموذج. فعند تحقق هذا الشرط ، سيتنفذ هذا الأمر: ("response.Redirect ("admin.asp?error=Name_Entry  

    أي انتقل إلى الملف admin.asp ، وأرسل له متغير error والذي يحوي على القيمة Name_Enry ، للدلالة على وجود خطأ في اسم المستخدم الذي تم إدخاله.

    أما إذا كان الملف ليس EOF ، أي أنه يحوي على سجل مسترجع من جدول admin انتقل إلى الشرط رقم 5.

    Code Sample
    If    rs.EOF    Then  '4.  Name أي لا يوجد سجل في الجدول يحتوى على اسم المستخدم يساوي القيمة الموجودة في  EOF  يساوي rs  إذا كان
                   response.Redirect ("admin.asp?error=Name_Entry") '  Name_Entry  مع إرسال الخطأ admin.asp  ارجع إلى صفحة


    5. If rs("password") <> password Then : يتحقق هذا الشرط من أن الرقم السري المدخل في النموذج يساوي الرقم السري الموجود في الجدول. إذا كانا غير متساويان، سيتحقق الشرط وسينفذ هذا الأمر("response.redirect ("admin.asp?error=Pass_Entry ، أي انتقل إلى صفحة admin.asp  بإضافة إلى المتغير error والذي يحوي قيمة Pass_Entry ، ويدل على أن الرقم السري المدخل خطأ.

    أما إذا كان الأمر السري المدخل صحيح ، انتقل إلى Else رقم 6

    Code Sample
    Else
            If    rs("password")   <>   password    Then  '5. لا يساوي  ، أي لم يدخل المستخدم رقم سري صحيح موجود في القاعدة  rs("password")  إذا كان
                        response.redirect ("admin.asp?error=Pass_Entry")  '  Pass_Entry مع إرسال الخطأ admin.asp  ارجع إلى صفحة


    6.  بعد أن تأكدنا من صحة اسم المستخدم والرقم السري، سنقوم بحفظ اسم المستخدم في متغير ثابت بين الصفحات يسمى كوكي Cooky ، للتأكد فيما بعد في الصفحات الأخرى من أن الشخص قد قام بإدخال اسم المستخدم والرقم السري في البداية.

    فسنقوم أولا بقراءة قيمة الاسم من الكوكي بهذا الأمر ("Name_Cooky= request.cookies("Nam

    فـ ("request.cookies("Name_Cooky يعني استخرج لي قيمة الكوكي الذي اسمه Name_Cooky ، فالكلمة request تعني طلب الكوكي. ثم ضعه في المتغير Name_Cooky. ثم سننتقل للشرط السابع.

    7 . هنا If Name_Cooky <> Name : سنختبر هل الاسم المدخل في النموذج Name ، يساوي الكوكيز. إذا لم يكن يساوي، احفظ الاسم المدخل من النموذج في الكوكي وستكون القيمة ثابتة بين الصفحات، حتى نعرفه فيما بعد عند التنقل بين الصفحات ونكتب أمر الحفظ بهذه الطريقةresponse.cookies ("Name")  =  Name

    أي خذ القيمة من Name واحفظها في الكوكي Name . فالكلمة response هنا تعني حفظ القيمة في الكوكي. وهذا الكوكي تنتهي صلاحيته، أي يختفي عند إغلاق المستخدم لصفحات الإنترنت كلها.

    وبعد الشرط ، استخدمنا هذا الأمر ("response.Redirect ("adminsection.asp وهو يعني بعد تكوين الكوكي ، الآن يمكنك الدخول على صفحة الإدارة adminsection.asp

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

    Code Sample
    Else '6.   أما إذا كان الرقم السري لاسم المستخدم المدخل صحيح

           Name_Cooky= request.cookies("Name")  '  Name_Cooky افتح كوكيز الاسم  وضعه في المتغير

           If    Name_Cooky  <>  Name   Then '7.   اختبر الكوكيز ، هل يساوي الاسم المدخل في النموذج  
                        response.cookies ("Name")  =  Name ' إذا لم يكون مساوي له ، فضع الاسم الجديد من النموذج في الكوكيز

           End IF

           response.Redirect ("adminsection.asp") '  انتقل إلى صفحة إدارة الموقع

    End If


    -------------------------------------------------------

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

    لسحب صفحة الدخول لإدارة الموقع: إدارة الموقع

    سبتمبر 08, 2002, 04:44:56 مساءاً
    رد #58

    أبو عبدالرحمن

    • عضو متقدم

    • ****

    • 718
      مشاركة

      • مشاهدة الملف الشخصي
    على بركة الله سلسلة دروس تصميم المواقع
    « رد #58 في: سبتمبر 08, 2002, 04:44:56 مساءاً »
    الدرس الثامن عشر: صفحة الإدارة (adminsection.asp)

    الصفحة الإدارية adminsection.asp :

    هي الصفحة التي سيسمح بالدخول إليها  للقيام بمهام إدارة الموقع. وفي هذه الصفحة سنحتاج كذلك للتأكد من إدخال المستخدم الاسم والرقم السري بشكل صحيح. لذلك سنختبر Cooky الذي أنشأناه في الدرس السابق. وهذا هو الـ Code :
    Code Sample
    <%
    Name_Cooky=Request.cookies("Name") ' Name_Cooky اطلب قيمة الكوكي وضعه في المتغير

    If Name_Cooky="" Then ' إذا كان الكوكي يساوي فراغ ، أي لا يوجد كوكي

        response.redirect ("admin.asp") ' ارجع لصفحة إدخال الاسم والرقم السري لطلب إدخالهم

    End If

    %>


    بذلك لن يستطيع أي شخص الدخول على هذه الصفحة إلا إذا دخل على الموقع بالاسم والرقم السري بشكل صحيح وإلا فإن الصفحة ستنقله إلى صفحة admin.asp لطلب تلك المعلومات. بذلك نكون قد انهينا دروس كيفية، التحقق من إدخال الاسم والرقم السري عند الدخول على موقع الإدارة. وتعلمنا ما هو Cooky وكيفية استخدامه على هذا المثال.

    يمكنك الآن إضافة ما تشاء في هذه الصفحة. وأقترح إضافة الأقسام التالية:

    إضافة أخبار:

        * أخبار عامة.

        * أخبار تقنية.

    تعديل / مسح الأخبار:

        * أخبار عامة.

       * أخبار تقنية.
    إدارة سجل الزوار.

    تغيير كلمة المرور.

    إضافة مشرفين.

    مسح مشرفين.

    وهذا هو الـ Code :

    Code Sample
    <%@ Language=VBScript CodePage = "1256"%>

    <%

    Name_Cooky=Request.cookies("Name")
    If Name_Cooky="" Then

    response.redirect ("admin.asp")

    End If

    %>

    <html dir="rtl">

    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
    <title>الصفحة الإدارية</title>
    </head>

    <body dir="rtl">

    <p align="center"><b><font face="Simplified Arabic">الصفحة الإدارية</font></b></p>


    <p align="justify"><b><font face="Simplified Arabic">إضافة أخبار:</font></b></p>

    <ul>
    <li>

    <p align="justify"><b><font face="Simplified Arabic">أخبار عامة.</font></b></p>

    </li>
    <li>

    <p align="justify"><b><font face="Simplified Arabic">أخبار تقنية.</font></b></p>

    </li>
    </ul>

    <p align="justify"><b><font face="Simplified Arabic">تعديل / مسح الأخبار:</font></b></p>

    <ul>
    <li>

    <p align="justify"><b><font face="Simplified Arabic">أخبار عامة.</font></b></p>

    </li>
    <li>

    <p align="justify"><b><font face="Simplified Arabic">أخبار تقنية.</font></b></p>

    </li>
    </ul>

    <p align="justify"><b><font face="Simplified Arabic">إدارة سجل الزوار.</font></b></p>

    <p align="justify"><b><font face="Simplified Arabic">تغيير كلمة المرور.</font></b></p>

    <p align="justify"><b><font face="Simplified Arabic">إضافة مشرفين.</font></b></p>

    <p align="justify"><b><font face="Simplified Arabic">مسح مشرفين.</font></b></p>

    </body>

    </html>


    في الدروس التالية سيتم تصميم صفحات إضافة الأخبار. والتي لا تختلف كثيرا عن صفحة التوقيع في سجل الزوار.

    ----------------------------------------------------------

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

    لسحب صفحات إدارة الموقع: إدارة الموقع

    لسحب قاعدة البيانات: قاعدة البيانات

    سبتمبر 09, 2002, 10:38:57 مساءاً
    رد #59

    أبو عبدالرحمن

    • عضو متقدم

    • ****

    • 718
      مشاركة

      • مشاهدة الملف الشخصي
    على بركة الله سلسلة دروس تصميم المواقع
    « رد #59 في: سبتمبر 09, 2002, 10:38:57 مساءاً »
    الدرس التاسع عشر: صفحة إضافة الأخبار (add_news.asp)

    سنستخدم نفس المبادئ التي تعلمناها عند إنشاء صفحة إضافة توقيع في سجل الزوار  لتصميم هذه الصفحة (add_news.asp). والشكل العام سيكون كالتالي:



    أسماء الحقول هي:

    * section للقائمة المنسدلة.
    * subject للعنوان.
    * body للمحتوى.
    يمكن تصميم الشكل السابق بالفرونت بيج، أو استخدام هذا الـ Code:

    Code Sample
    <p align="center"><b>إضافة الأخبار</b></p>
    <form method="POST" action="add_news.asp">
         <p><b>القسم: <select size="1" name="section">
         <option value="general_news">أخبار منوعة</option>
         <option value="tech_news">أخبار تقنية</option>
         </select></b></p>
         <p><b>العنوان: <input type="text" name="subject" size="20"></b></p>
         <p><b>المحتوى:</b></p>
         <p><b> <textarea rows="11" name="body" cols="78"></textarea></b></p>
         <p><input type="submit" value="إضافة" name="add"></p>
    </form>


    سنستعرض الآن الفروقات بين هذه الصفحة وصفحة سجل الزوار:

    أولا : تم إضافة القسم (section) واستخدمنا فيه القائمة المنسدلة Drop-Down Box. مع ملاحظة تعديل خصائصه :

    فعند إضافة القيم للقائمة المنسدلة (بالضغط على زر Add) ستظهر لنا الشاشة التالية:



    نضع إشارة صح أمام Specify Value ثم نكتب القيمة التي سيتم إرسالها من طريق النموذج Form . وهذه القيمة تمثّل: اسم الجدول الذي يحتوي على هذه النوعية من الأخبار في قاعدة البيانات. ولفهم سبب قيامنا بذلك، يجب معرفة الغرض من استخدام القائمة المنسدلة في هذا الموقع.

    تعلمنا سابقا أن أمر Add للإضافة بيانات للقاعدة، يتطلب تحديد:

    1- اسم الجدول المطلوب إضافة البيانات فيه.

    2- اسم كل حقل في الجدول.

    3- القيمة المطلوب إدراجها في كل حقل.

    في حالتنا هذه لدينا جدولين وليس جدولا واحدا.. جدول يضم الأخبار العامة، وآخر للأخبار التقنية. بالإمكان تصميم صفحة لإضافة الأخبار عامة، وصفحة أخرى لإضافة الأخبار التقنية. لكن الأفضل من ذلك، هو تصميم صفحة واحدة (مرنة) يمكن من خلالها تحديد الجدول الذي نريد إضافة المقالات فيه. ويتم ذلك باستخدام القائمة المنسدلة.

    في النهاية ستظهر خصائص القائمة المنسدلة بالشكل التالي:



    أخيرا، من خلال Form Properties يتم تحديد الصفحة التي سيتم إرسال القيم إليها للمعالجة، وهي نفس الصفحة التي تحتوي على النموذج: add_news.asp

    بعد تصميم النموذج، ننتقل الآن إلى كتابة أوامر ASP .. وسنشرح الأوامر الجديدة.

    Code Sample
    <%@language=VBScript CodePage="1256"%>

    <!--#include file="connection.txt"-->

    <%
    section=request.form("section")
    subject=request.form("subject")
    body=request.form("body")
    %>

    <%
    Function AddF()

    addSQL= " insert into "§ion&" (subject,body) values ('"&subject&"','"&body&"')"
    ADO.execute(addSQL)
    %><p><font face="Simplified Arabic" size="3">شكرا لك.. لقد تم إضافة الخبر بنجاح</font></p><%

    End Function
    %>
    <body>
    <%
    If subject="" or body="" or then
         response.write "لم تقم بإدخال جميع الحقول المطلوبة.. من فضلك اضغط زر عودة في متصفحتك وقم بإدخال جميع الحقول"
    Else
         AddF()
    End If
    %>
    <p align="center"><b>إضافة الأخبار</b></p>
    <form method="POST" action="add_news.asp">
         <p><b>القسم: <select size="1" name="section">
         <option value="general_news">أخبار منوعة</option>
         <option value="tech_news">أخبار تقنية</option>
         </select></b></p>
         <p><b>العنوان: <input type="text" name="subject" size="20"></b></p>
         <p><b>المحتوى:</b></p>
         <p><b> <textarea rows="11" name="body" cols="78"></textarea></b></p>
         <p><input type="submit" value="إضافة" name="add"></p>
    </form>
    <%
    ADO.close
    Set ADO=Nothing
    %>
    </body>

    </html>


    أولا: هنالك اختلاف بسيط في جملة addSQL عما كتبناه سابقا في صفحة إضافة التواقيع لسجل الزوار، ففي سجل الزوار حددنا اسم الجدول الذي نود إضافة المدخلات فيه، أما في هذه الصفحة فاستبدلنا اسم الجدول بالمتغير "§ion&" والذي يتم استقبال قيمته من خلال القائمة المنسدلة في النموذج. وبالتالي قد يكون أخبار عامة، أو أخبار تقنية.

    ثانيا: استخدمنا Function والتي يمكن تسميتها وظيفة أو دالة. وهي عبارة عن مجموعة أوامر تُـنفّـذ مع بعضها البعض أو لا تُـنفّـذ إطلاقا، لذا فنضعها مع بعض نبدأها بـ Function ونحدد اسم مثلا addf ونضع بعدها الاسم () ثم نكتب المطلوب.. ونغلق الـ  Function  بـ End Function . وفي المكان اللي نريد تنفيذ هذه الأووامر أو الـ Function فيه نضع فيه الاسم. وفي حالتنا addf() وضعناه بين Else و End if وهو المكان الذي نريد فيه أن تتنفذ أوامر الإضافة.

    --------------------------------------------------------