سأقوم معكم برحلة تعليمية بسيطة.. سنتعلم من خلالها كيفية استخدام هذه اللغة، وسأخبركم سر عنها ..
إنها سهلة جدا وليست معقدة. وسنتعلمها بإذن الله بكل سهولة ويسر.. وسأستخدم مشروعا صغيرا خلال
الرحلة لتطبيق ما نتعلمه من اللغة على المشروع بذلك سننتهي معا بموقع جاهز يعمل بهذه اللغة صممناه
السهلة والرائعة. ASP بأنفسنا، مستعدون ؟ ..( : إذا هيا نتوكل على الله ونبدأ رحلتنا التعليمية للغة
؟ ASP ما الحاجة لاستخدام
أو أحد برامج التصميم التي تمكنك من عمل ما تشاء HTML يمكنك تصميم صفحات رائعة باستخدام لغة
لشركة Dreamwaver أو Microsoft FrontPage كبرنامج HTML (تقريبا (ثم تحويل عملك للغة
ASP?!! إذن لماذا أضيع وقتي بتعلم Macromedia.
تكون ثابتة بمعنى أنك ما تكتبه في الصفحة سيظهر لك عند HTML المعلومات الظاهرة في صفحات
العرض .. مثل برنامج الوورد .. الذي تكتبه تراه .. ولكن ماذا إذا كانت عندك سجلات كبيرة من البيانات
وتريد أن تعرضها في الصفحة.. مثل ملاحظات سجل الزوار.. أو أسماء المشتركين في منتداك أو معلومات
أخرى مخزنة في قواعد بيانات مثل ميكروسوفت اكسس.
عرض هذه البيانات في الشاشة باستخراجها مباشرة من قواعد البيانات ASP تستطيع باستخدام صفحة
عن ASP وتتميز صفحات HTML . المخزنة فيها البيانات بدلا من تخزين هذه البيانات على صفحات
بكونها صفحات غير ثابتة المعلومات.. فالمعلومات بها مؤخذة من قواعد البيانات وتتغير في HTML
الصفحة بتغير المعلومات في قواعد البيانات وسأطلق هذه الميزة كلمة صفحات تفاعلية أي أنا تتفاعل
وتتأثر في الصفحة بتأثر وتغير المعلومات في قواعد البيانات. ومن الأمثلة على هذه الصفحات.. غرف
قوائم المشتركين.. ، Guest Book سجل الزوار ، Discussion Board المنتديات ، Chat الحوار
وغيرها من الصفحات التي تتطلب استقبال وإرسال المعلومات.
ASP : متطلبات العمل على لغة
Internet Information Server أو Personal Web Server أولا : تركيب
وغيرها، لا تعمل مباشرة على الأجهزة CGI و PHP و ASP اللغات المتقدمة لبرمجة المواقع أمثال
حتى تعمل. بإمكانك حجز مساحة (مجانية أو باشتراك شهري) في أحد Server الشخصية. فهي تحتاج ل
أنصح بالاشتراك Servers ( فأجهزتهم عبارة عن Hosting Providers مواقع الاستضافة في الإنترنت
وقواعد بيانات ASP فهو يقدم مساحة مكانية تدعم لغة [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] في موقع
لكن ذلك ليس نهاية المطاف، فتكلفة الاتصال بالإنترنت مكلفة في بعض البلدان، وتصميم MS Access).
الموقع أثناء الاتصال، قد يكلف الكثير من الأموال. لذا، بإمكانك تركيب بعض البرامج التي تجعل من حاسبك
Server. الشخصي
لمستخدمي ويندوز ٩٨ أو ويندوز ملينيوم : ·
وتركيبه في غاية البساطة.. كل ما عليك هو فتح Personal Web Server (PWS) قم بتركيب برنامج
سيتم setup.exe ( ومنه شغل الملف pws ومنه add-one 98 واختر المجلد Win98 CD قرص ويندوز
شرح هذا الأمر بالتفصيل في الدرس التالي.(
asp. في قرص الويندوز ٩٨ فابحث عن مجلد باسم pws ملاحظة: إن لم تجد مجلد باسم
إن لم لكن لديك قرص ويندوز ٩٨ يمكنك سحب البرنامج من هذا الرابط:
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]
NT : لمستخدمي ويندوز 2000 أو ·
للويندوز وستجده كخدمة متوفرة مع سيدي تركيب Internet Information Server قم بتركيب خدمة
ثم اختيار إضافة وإزالة مكونات ويندوز Control Panel الويندوز، وذلك بالذهاب لي لوحة التحكم
منه. Internet Information Server واختيار Add/Remove Windows Components
ASP : ثانيا : إختيار برنامج لكتابة نصوص
لا تحتاج بالضرورة لاستخدام برنامج خاص لذلك. سأستخدم خلال الشرح برنامج ASP لكتابة نصوص
لأنه متوفر عند الأغلبية ونستطيع باستخدامه تصميم شكل الصفحات ، وإن أردتم استخدام Front Page
الذي يأتي مع NotePad برامج أخرى تستطيعون أيضا متابعة الدروس معنا. إن كنت تريد استخدام برنامج
لأنه لن يساعدك في تصميم Note Pad الويندوز يمكنه القيام بالواجب. إلا أنني لا أنصحك حاليا باستخدام
أو Microsoft Front Page شكل الصفحة. كذلك تستطيع استخدام أي برامج تصميم صفحات الويب مثل
ASP المتخصص في إنشاء صفحات Microsoft Interdev أو ،Macromedia DreamWeaver
ولغات غيرها .
إن كنت لا تملك برنامجا أخر للتصميم ، Front Page إذا قم بتركيب
ثالثا: برنامج قواعد البيانات:
أو غيرها من برامج قواعد البيانات.. لكنني سأعتمد على Microsoft Access أو SQL يمكننا استخدام
وذلك لتوفره عند الأغلبية. Microsoft Access 2000
بذلك نكون قد تجهزنا للبدء في كتابة النصوص : ).. وأتمنى منكم المتابعة للتعلم.
لنبدأ معنا
إنني مؤمن بأن أفضل طريقة لتعلم هذه اللغة هو القيام بأمثلة عملية.. لذا لن أتحدث عن المتغيرات أو
الأوامر أو القيم إلا عندما نحتاجها لتصميم إحدى الصفحات.
ولنتأكد من تطبيقنا السليم للغة.. سنبدأ بمشروع من الصفر، خطوة بخطوة.. وعند نهاية هذه الدروس
ستكون قادرا على تصميم مشروعا مشابها، ومن ثم تطويره إن شاء الله.
مشروعنا سيكون، تصميم موقع إخباري بسيط.
أولا: المحتوى:
١. أخبار تقنية .
٢. أخبار منوعة .
ثانيا: الخدمات:
١. محرك بحث في محتويات الموقع .
٢. سجل زوار .
ثانيا:الإدارة:
١. تسجيل المسؤولين عن الموقع (أسماء وكلمات مرور خاصة بهم .(
٢. إضافة، تعديل، حذف الأخبار من خلال الموقع .
تنفيذ هذا الموقع الإخباري، يتطلب منا تعلم مجموعة من أهم أوامر هذه اللغة.. وهذا هو الغرض من هذه
الدروس .فهل أنت مستعد ومتحمس ؟! إذا أرجو منك المتابعة وسنصل إلى موقع رائع في النهاية.
إذا خذ قسطا من الراحة.. وابدأ بتجهيز البرامج التي أخبرتك عنها في الأعلى.. ثم تابع الدروس التالية..
وأنا في انتظارك هناك.
Personal Web Server - PWS تركيب
وستجد هنا خطوات مدعمة بالصور لتسهيل عملية تركيب ASP ضروري لتشغيل صفحات PWS إن تركيب
40 MB 20 و – 30 MB RAM 90 و MHz يتطلب البرنامج على الأقل معالج بينتيوم بسرعة PWS.
فارغة في القرص الصلب.
في مشغل الأقراص . Windows ١. أدخل قرص 98
Run واختر تشغيل Start ٢. اضغط على قائمة ابدأ
x:\add-ons\pws\setup.exe ٣. اكتب
بحرف مشغل الأقراص بجهازك . X ٤. أبدل حرف
ستظهر لك الشاشة التالية:
Custom ثم من الشاشة التالية اضغط على Next اضغط على
"Show ثم اضغط على "Personal Web Server (PWS)" من الشاشة التالية اختر
Subcomponents…"
"Show Subcomponents…" ثم اضغط على "Documentation” من الشاشة التالية اختر
Next ثم Ok ثم مرة أخرى Ok ثم اضغط على "Active Server Pages” من الشاشة التالية اختر
للانتقال لخطوة التالية من عملية التثبيت.
ستظهر لك الشاشة التالية.. أفضل إبقاء كل شي على ما هو عليه، إلا أن هذا الأمر راجع إليك.
ستبدأ عملية التثبيت.
بعد الانتهاء منها سيطلب منك إعادة تشغيل الجهاز. عندما تفعل ذلك ستلاحظ أن هنالك شيئا جديدا أضيف
هذا يعني أن التركيب قد تم بنجاح. تهانينا. Taskbar. بجانب الساعة في شريط المهام
طريقة سريعة لاختبار ذلك، اذهب للعنوان التالي (يفضل الاحتفاظ بهذا العنوان في قائمة المواقع المفضل
وستظهر لك الشاشة التالية : Favorites) [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]
!
ملاحظات:
إن لم لكن لديك قرص ويندوز ٩٨ يمكنك سحب البرنامج من هذا الرابط: ·
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]
إن لم ترغب بتخزين هذا البرنامج على جهازك. فبإمكانك حجز مساحة مجانية من هذا الموقع ·
لكن ذلك سيتطلب تجربة الصفحات التي سنصممها، على . [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]
الإنترنت مباشرة، ولن يمكن تشغيل الصفحات على الكمبيوتر.
default.asp الصفحة الأولى
في الموقع لتشغیلها Index أو Default عن صفحة تحمل اسم (Browser) دائما ما یبحث برنامج التصفح
: Default . تلقائیا. لذا عادة ما تكون الصفحة الرئیسیة في الموقع بهذا الاسم. وفي مشروعنا سنستخدم اسم
قم بتصمیم ما یعجبك.. مع مراعاة وضع عنوان الصفحة بشكل بارز، ورابط لكل من Frontpage باستخدام
وآخر ،(guest.asp) ورابط لسجل الزوار ،(news.asp) والأخبار المنوعة ، (tech.asp) الأخبار التقنیة
ولا تنسى أن تكتب فقرة (admin.asp). وأخیرا رابط لقسم إدارة الموقع ،(search.asp) لمحرك البحث
C:\Inetpub\wwwroot\news ترحیبیة بالزوار .وخزن جمیع هذه الملفات في
ملاحظة: هذه بعضالمواقع التي تشرح لك كیفیة التصمیم بالفرونت بیج :المصمم لك ، أجنادین.
ثم قم أنت بإنشاء المجلد C:\Inetpub\wwwroot سیتم إنشاء هذه المجلدات PWS ملاحظة: عند تركیب
لتخزین ملفات مشروعنا هذا فیه. news
التصمیم المقترح:
عالم الیوم
للتصمیم المقترح. (استخدام هذا النصسیسهل علیك متابعة الدروس.( HTML هذا هو نص
<html dir=rtl>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=windows-1256">
<meta http-equiv="Content-Language" content="ar-qa">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title> الیوم عالم </title>
</head>
<body>
<p align="center"><img border="0" src="thetitel.gif"></p>
<hr>
<p align="center"><font face="Simplified Arabic"
size="3"><b><a href="tech.asp"> أخبار
تقنیة </a>| <a href="news.asp"> أخبار منوعة </a>| <a
href="search.asp"> بحث </a>
| <a href="guest.asp"> سجل الزوار </a>| <a href="admin.asp"> إدارة
الموقع </a></b></font></p>
<hr>
<p align="center"><font face="Simplified Arabic" size=" مرحبا <" 3
بكم في
موقعنا الإخباري المتمیز </font></p>
<p align="center"><font face="Simplified Arabic" size=" نتمنى <" 3
لكم
المتعة والفائدة معنا </font></p>
<p align="center"><font face="Simplified Arabic" size=" مع <" 3
تحیات </font></p>
<p align="center"><font face="Simplified Arabic" size="3"
color="#AD إدارة<" 1212
الموقع </font></p>
<hr>
<p align="center"><font face="Simplified Arabic"
size="3"><b><a href="tech.asp"> أخبار
تقنیة </a>| <a href="news.asp"> أخبار منوعة </a>| <a
href="search.asp"> بحث </a>
| <a href="guest.asp"> سجل الزوار </a>| <a href="admin.asp"> إدارة
الموقع </a></b></font></p>
<p align="center"><b><font face="Simplified Arabic"
size=" جمیع<" 2
الحقوق محفوظة ٢٠٠١ </font></b></p>
</body>
</html>
SSI استخدام
للاستغناء عن تكرار تصمیم الأجزاء المتشابهة في كل صفحة.. مثل الجزء العلوي من الصفحة.. أو مؤخرة
لوضع الجزء المراد تكراره في ملف SSI الصفحة والتي تحتوي على حقوق الحفظ .. نستطیع استخدام میزة
واحد فقط.. وإضافة اسم الملف في الملفات المراد تكرار الجزء فیها.
على سبیل المثال: سنعتمد تصمیما واحدا لجمیع الصفحات.. ففي رأس الصفحة عنوان الموقع، وتحته روابط
للأقسام المختلفة.. وفي نهایة الصفحة الروابط من جدید.
ببساطة، یمكنك نسخ نفس النصلجمیع الصفحات.. الرأس:
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=windows-1256">
<meta http-equiv="Content-Language" content="ar-qa">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title> عالم الیوم </title>
</head>
<body>
<p align="center"><img border="0" src="thetitel.gif"></p>
<hr>
<p align="center"><font face="Simplified Arabic"
size="3"><b><a href="tech.asp"> أخبار
تقنیة </a>| <a href="news.asp"> أخبار منوعة </a>| <a
href="search.asp"> بحث </a>
| <a href="guest.asp"> سجل الزوار </a>| <a href="admin.asp"> إدارة
الموقع </a></b></font></p>
<hr>
نهایة الصفحة:
<hr>
<p align="center"><font face="Simplified Arabic"
size="3"><b><a href="tech.asp"> أخبار
تقنیة </a>| <a href="news.asp"> أخبار منوعة </a>| <a
href="search.asp"> بحث </a>
| <a href="guest.asp"> سجل الزوار </a>| <a href="admin.asp"> إدارة
الموقع </a></b></font></p>
<p align="center"><b><font face="Simplified Arabic"
size=" جمیع<" 2
الحقوق محفوظة ٢٠٠١ </font></b></p>
</body>
</html>
ثم كتابة ما تریده ما بین هاتین الفقرتین.
للتوضیح أكثر، سأضح النصكاملا مرة أخرى، الجزء العلي سأضعه باللون الأخضر، والسفلي باللون الأرق،
والجزء الرئیسي سیكون باللون الأسود. هذا هو النص:
<html dir=rtl>
الجزء العلوي '
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=windows-1256">
<meta http-equiv="Content-Language" content="ar-qa">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title> عالم الیوم </title>
</head>
<body>
<p align="center"><img border="0" src="thetitel.gif"></p>
<hr>
<p align="center"><font face="Simplified Arabic"
size="3"><b><a href="tech.asp"> أخبار
تقنیة </a>| <a href="news.asp"> أخبار منوعة </a>| <a
href="search.asp"> بحث </a>
| <a href="guest.asp"> سجل الزوار </a>| <a href="admin.asp"> إدارة
الموقع </a></b></font></p>
<hr>
الجزء الرئیسي '
<p align="center"><font face="Simplified Arabic" size=" مرحبا <" 3
بكم في
موقعنا الإخباري المتمیز </font></p>
<p align="center"><font face="Simplified Arabic" size=" نتمنى <" 3
لكم
المتعة والفائدة معنا </font></p>
<p align="center"><font face="Simplified Arabic" size=" مع<" 3
تحیات </font></p>
<p align="center"><font face="Simplified Arabic" size="3"
color="#AD إدارة<" 1212
الموقع </font></p>
الجزء السفلي '
<hr>
<p align="center"><font face="Simplified Arabic"
size="3"><b><a href="tech.asp"> أخبار
تقنیة </a>| <a href="news.asp"> منوعة أخبار </a>| <a
href="search.asp"> بحث </a>
| <a href="guest.asp"> الزوار سجل </a>| <a href="admin.asp"> إدارة
الموقع </a></b></font></p>
<p align="center"><b><font face="Simplified Arabic"
size=" جمیع<" 2
الحقوق محفوظة ٢٠٠١ </font></b></p>
</body>
</html>
الأمر سهل للغایة ألیس كذلك؟! إنه سهل هذه المرة لأن عدد الصفحات لدینا بسیط.. الصفحة الرئیسیة، الأخبار
التقنیة، الأخبار المنوعة، بحث، سجل الزوار.. أي خمس صفحات.. لكن تخیل أن عندنا ١٠٠ صفحة.. هل
ستقوم بعملیة النسخ واللصق لكل هذه الصفحات!! وإن قمت بذلك.. تخیل أنك ترید إجراء تعدیل معین في
تصمیم رأس الصفحة أو نهایتها، هل ستفتح ال ١٠٠ صفحة وتقوم بتعدیلها واحدة واحدة!! ألن یكون الأمر
شاقا علیك!! إلیك الحل.
pagefooter.txt والجزء الأسفل باسم pageheader.txt قم بحفظ الجز الأعلى في ملف اسمه
لتكون الشفرة فیه كالتالي: default.asp أجرِ تعدیلا التالیة على ملف
<html dir=rtl>
<!--#include file="pageheader.txt" -->
<p align="center"><font face="Simplified Arabic" size=" مرحبا <" 3
بكم في
موقعنا الإخباري المتمیز </font></p>
<p align="center"><font face="Simplified Arabic" size=" نتمنى <" 3
لكم
المتعة والفائدة معنا </font></p>
<p align="center"><font face="Simplified Arabic" size=" مع <" 3
تحیات </font></p>
<p align="center"><font face="Simplified Arabic" size="3"
color="#AD إدارة<" 1212
الموقع </font></p>
<!--#include file="pagefooter.txt" -->
شغل الصفحة.. وستراها بنفس التصمیم الأول.. والآن.. یمكن إدراج الرأس والنهایة لكل الصفحات الأخرى
(التي سنصممها قریبا) من دون الحاجة لنسخ الشفرة في كل مرة.. وإن أردنا إجراء أي تغییر في المستقبل،
كل ما علینا هو إجراء التغییر على أحد هذین الملفین.. والتغییر سیطبق تلقائیا على جمیع الصفحات.
project.mdb تصميم قاعدة البيانات للمشروع
إن لم Microsoft Access كما ذكرت في الفصل الأول، سنصمم قاعدة البيانات باستخدام برنامج . 2000
تكن لديك خبرة سابقة في التعامل مع هذا البرنامج فلا تخشى شيئا، فسأكون معك خطوة بخطوة.
١- شكل ٤
سيطلب منك حفظ قاعدة البيانات، اختر لها اسما واحفظها Ok. واضغط Blank Access database اختر
أو المجلد الفرعي الذي خصصته لهذه الصفحة بداخل هذا المجلد. C:\Inetpub\wwwroot في
سيتم إكمال الدروس news ( بداخل المجلد الفرعي database ويفضل أن تحفظ بداخل مجلد فرعي باسم
اعتمادا على هذا الافتراض.(
!Error
4-1- شكل 1
project.mdb وسنسمي القاعدة هنا
!Error
4-2- شكل 2
ستظهر لك الشاشة التالیة: Create بعد الضغط على زر
٢- شكل ٤
وصمم الجدول التالي Create table in Design view اختر
٣- شكل ٤
– Text, Memo, AutoNumber) وهذا الجزء يتغير بتغير نوع الحقل Field Properties ( في قسم
وعادة ما يكون الرقم الموجود ٥٠ . هذا الجزء هو الذي يحدد عدد Text إن كان الحقل Field Size ستجد
الحروف التي بإمكانك إدخالها في هذا الحقل، لذا أنصح بتغييرها ل ٢٥٥ وهو الحد الأقصى.
أي لا يمكن ترك هذا الحقل فارغ. بإمكانك No وعادة يكون أمامها Allow Zero Length أيضا ستجد
أي يمكن ترك هذا الحقل فارغ من البيانات. Yes وضع
سيسألك عن اسم الجدول، بإمكانك اختيار أي اسم يعجبك. في مشروعنا الحالي سنسميه Save اضغط على
No ثم ستظهر لك الرسالة التالية اختر منها tech_news.
!Error
٤- شكل ٤
٢). اضغط على اسمه مرتين لفتحه. سيظهر لك الشكل - أغلق الجدول، وسترى اسمه موجود في (شكل ٣
التالي
4- شكل 5
سيتم ترقيمها تلقائيا( id أدخل البيانات التالية في الجدول (خانة
30/9/2001 1 مايكروسوفت
تنجو من
محاولة
تفكيكها
سحبت الولايات الثمانية عشر الدعوى التي
رفعتها على شركة مايكروسوفت، مطالبة
المحكمة بتفكيك الشركة لكونها محتكرة
لسوق البرمجيات.
31/9/2001 2 اختراق مواقع
حركة طالبان
على الإنترنت
بعد عملية تفجير برجي التجارة العالمية
بنيويورك، ورفض حركة طالبان تسليم بن
لادن للولايات المتحدة الأمريكية، قام
مجهولون باختراق مواقع الحركة على
الإنترنت.
أغلق الجدول، واحفظ القاعدة.. واستعد للدرس القادم الذي سأبين فيه كيفية استعراض محتويات القاعدة
عن طريق الموقع.
في المرة التالية، ستظهر لك الشاشة التالية: Ms Access ملاحظة: عند فتح برنامج
يمكنك اختيار القاعدة التي أنشاءناها في هذا الدرس من خلال هذه الشاشة مباشرة.
بقاعدة البیانات ASP ربط صفحات
وفي هذا الدرس، Microsoft Access صممنا في الدرس السابق قاعدة بيانات باستخدام برنامج . 2000
واستعراض محتوياتها. ASP سنتعلم كيفية ربط القاعدة بصفحات
(tech.asp). لإجراء بعض التعديلات عليها. لذا قم بحفظها باسم (default.asp) قم بفتح الصفحة الأولى
tech.asp فكل التغييرات التي سنقوم بهذا ستكون على ملف
في الصفحة الأولى كنا قد كتبنا جملة ترحيبية لزوار الموقع. أما في هذه الصفحة فسنستبدلها بجملة أخرى
تبين ماهية الصفحة. فسنكتب:
إليكم آخر المستجدات على الساحة التقنية
ASP . والآن.. سنبدأ بالجزء الأهم.. وهو كتابة نصوص
واكتب الجملة HTML تكتب دائما بين هاتين العلامتين. <% %> لذا، افتح نصوص ASP نصوص
التالية في أول سطر:
<%@ Language=VBScript CodePage = "1256"%>
في هذه الصفحة. وسطر (تحديد اللغة) يجب أن يكون VBScript هذا السطر يشير إلى أننا سنستخدم لغة
دائما في بداية الصفحة.
واكتب التالي تحت الجملة الترحيبية:
<%
Dim ConnectionString
Dim ADO
ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" &
Server.MapPath("\database\project.mdb")
Set ADO=Server.CreateObject("ADODB.Connection")
ADO.ConnectionString =ConnectionString
ADO.Open
%>
يتم فيها تحديد المتغيرات، وسنتحدث عن المتغيرات أكثر في (Dim): السطران الأول والثاني ·
المستقبل.
يحدد طريقة فتح قاعدة البيانات، واسم القاعدة والمسار (ConnectionString): السطر الثالث ·
إليها. يمكنك تغيير اسم القاعدة ومسارها بما يتناسب مع ما قمت به على جهازك. لقد قمت
وما قبل الاسم هو مسار الوصول إليها. project.mdb بتسمية القاعدة
ADO يحدد اسم المتغير الذي سيقوم بالربط.. وهو في مثالنا (Set ADO): السطر الرابع ·
ويمكنك تغييره بما يناسبك، إلا أن عليك استخدامه كثيرا، لذا لا أفضل تغييره حتى لا يسبب لك
بعض الصعوبة في متابعة الدروس.
السطران الخامس والسادس: يقومان بفتح القاعدة. ·
ما قمنا به حتى هذه الخطوة، هو الوصول للقاعدة فقط. والخطوة التالية هي الوصول للبيانات التي
مباشرة: ADO.open بالقاعدة. ولعمل ذلك قم بكتابة التالي تحت عبارة
selectSQL="select * from tech_news"
set rs=ADO.execute(selectSQL)
وفيها يثم اختيار البيانات من القاعدة Select تحدد أمر الاختيار (selectSQL): السطر الأول ·
حسب شروط يتم تحديدها. في حالتنا هذه طلبنا اختيار:
١. جميع البينات) ويمثلها رمز , (* ويمكن استبدالها باسم عمود او خانة معية من الجدول.
tech_news ٢. من جدول
أي أن هذان هما الشرطان الواجب القيام بهما.
تنفيذ الأمر. (set rs): السطر الثاني ·
ما قمنا به حتى الآن هو فتح القاعدة، واستدعاء البيانات منها. وما سنقوم به الآن هو طباعة هذه
مباشرة: set rs=ADO.execute(selectSQL) المعلومات. قم بكتابة التالي تحت عبارة
response.write " العنوان : " & rs("subject")
response.write " التاریخ : " & rs("add_dat")
response.write " الخبر : " & rs("body")
تمثل النتائج. حيث يكتب اسم الجدول المراد عرض ، rs(*) ، تقوم بطباعة النتائج response.write
بياناته بين علامات التنصيص " "
وفي شريط العنوان Explorer Internet وذلك بفتح المتصفح tech.asp قم بتشغيل الصفحة
اكتب العنوان الموقع، وذلك بكتابة اسم جهازك ومن ثم المجلد الذي يحتوي الموقع: Address Bar
default.asp/news/http://asp
في العنوان تمثل اسم الجهاز، وهذا الاسم يختلف من جهاز لآخر. لمعرفة اسم جهازك، ASP : ملاحظة
لترى: Identification واختر Network ومنها افتح الشبكة Panel Control افتح لوحة التحكم
Computer Name
أي أن العنوان سيصبح كالتالي: localhost يمكنك الاستعاضة عن اسم الجهاز بكلمة
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]
ستظهر صفحة عالم اليوم بالشكل التالي:
عالم اليوم
فاضغط على رابط :أخبار تقنية. لترى النتيجة:
إليكم آخر المستجدات في الساحة التقنية
٢٠٠١ الخبر : بعد عملية /٩/ العنوان : اختراق مواقع حركة طالبان على الإنترنتالتاريخ : ٣١
تفجير برجي التجارة العالمية بنيويورك، ورفض حركة طالبان تسليم بن لادن للولايات المتحدة
الأمريكية، قام مجهولون باختراق مواقع الحركة على الإنترنت.
الذي كتبته بقراءة محتويات القاعدة وعرضها .بالطبع توجد إشكاليات بسيطة Code مبروك. لقد قام ال
في البيانات المعروضة، وسنشرح طريقة التغلب عليها في الدروس القادمة. لكن المهم في هذا الدرس، هو
فهمه جيدا لأن معظم الدروس التالية تعتمد على هذا الدرس.
: " & rs("body") الخبر response.write " أخيرا، يفضل إغلاق ربط القاعدة بهذا السطر تحت عبارة
مباشرة:
ADO.close
تحسین مظهر عرضالبیانات
فإن كنا نود عرض النتائج كل جملة في سطر HTML تحسين مظهر عرض البيانات يعتمد على أوامر لغة
أي أن أوامر العرض ستكتب بالطريقة التالية: <p></p> فسنضع الجملة بين
بوضع هذه العلامة%> قبل السطور التالية. ASP ملاحظة: لا تنسى أن تغلق نصوص
<p><%response.write " العنوان : " & rs(subject)%></p>
<p><%response.write " التاریخ : " & rs(add_dat)%></p>
<p><%response.write " الخبر : " & rs(body)%></p>
يجب ملاحظة التالي:
بالعلامة التالية: <% ASP علينا إغلاق نصوص HTML قبل البدء بكتابة أوامر ·
علينا عدم نسيان وضع هذه العلامات: <% %> . HTML في أسطر ASP عند كتابة نصوص ·
<p/><%(rs( العنوان : " & 2 " response.write%><p> : مثال
شغل صفحة أخبار تقنية. لترى النتيجة:
إليكم آخر المستجدات في الساحة التقنية
العنوان : اختراق مواقع حركة طالبان على الإنترنت
٢٠٠١/٩/ التاريخ : ٣١
الخبر : بعد عملية تفجير برجي التجارة العالمية بنيويورك، ورفض حركة طالبان تسليم بن لادن
للولايات المتحدة الأمريكية، قام مجهولون باختراق مواقع الحركة على الإنترنت.
أظن أن شكل النتائج أصبح أجمل بهذه الطريقة. وغن كنت تريد تجميله أكثر، عليك باستخدام الجداول.ز كما
في المثال التالي:
<div align="center">
<center>
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse"
bordercolor="#111111" width="90%">
<tr>
<td width="100%" dir="rtl" bgcolor="#DFDFFF"><b><span lang="ar-sa"> : العنوان
<%response.write rs(subject)%></span></b></td>
</tr>
<tr>
<td width="100%" dir="rtl"><b><span lang="ar-sa"> التاریخ : <%response.write
rs(add_dat)%></span></b>
<p><b><span lang="ar-sa"> الخبر : <%response.write rs(body)%></span></b></td>
</tr>
</table>
</center>
</div>
<hr color="#DFDFFF" width="90%">
وستكون النتيجة:
العنوان : اختراق مواقع حركة طالبان على الإنترنت
٢٠٠١/٩/ التاریخ : ٣١
الخبر : بعد عملية تفجير برجي التجارة العالمية بنيويورك، ورفض حركة طالبان تسليم بن لادن
للولايات المتحدة الأمريكية، قام مجهولون باختراق مواقع الحركة على الإنترنت.
عند الانتهاء من كتابة هذه الأوامر. <% ADO.close %> لا تنسى أن تضع
Code بهذا نكون قد عالجنا الإشكالية الأولى، وهي مظهر البيانات. لكن هنالك إشكالية أكبر، وهي أن ال
الذي كتبناه قام بعرض وطباعة أول حقل فقط من القاعدة (أول خبر فقط) وتجاهل الأخبار الأخرى. لذا
لحل هذه الإشكالية. Do ... Loop و If ... Then سنستخدم كل من
عرضجمیع النتائج بشكل متتالي
في الدرس السابق، تعلمنا كيف يمكننا تغيير مظهر عرض الأخبار. والإشكالية الوحيدة المتبقية الآن هي:
كيفية عرض جميع الأخبار. فما قمنا به إلى الآن هو قراءة الأخبار من القاعدة، وعرض أول خبر فقط.
وفي هذا الدرس سنتعلم كيف يمكننا عرض كل الأخبار.
فستجد التالي: HTML وافتح tech.asp. افتح صفحة
<%@ Language=VBScript CodePage = "1256"%>
<html dir=rtl>
<!--#include file="pageheader.txt" -->
<p align="center"><font face="Simplified Arabic"> إلیكم آخر
التقنیة المستجدات في الساحة </font></p>
<%
البیانات أوامر فتح قاعدة'
Dim ConnectionString
Dim ADO
ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" &
Server.MapPath("\database\project.mdb")
Set ADO=Server.CreateObject("ADODB.Connection")
ADO.ConnectionString =ConnectionString
ADO.Open
واستدعاء البیانات منه أوامر اختیار الجدول'
selectSQL="select * from tech_news"
set rs=ADO.execute(selectSQL)
البیانات أوامر استعراض'
%>
<div align="center">
<center>
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse"
bordercolor="#111111" width="90%">
<tr>
<td width="100%" dir="rtl" bgcolor="#DFDFFF"><b> العنوان : <%response.write
rs(subject)%></b></td>
</tr>
<tr>
<td width="100%" dir="rtl"><b> التاریخ : <%response.write rs(add_dat)%></b>
<p><b> الخبر : <%response.write rs(body)%></b></td>
</tr>
</table>
</center>
</div>
<hr color="#DFDFFF" width="90%">
<% ADO.close %>
<!--#include file="pagefooter.txt" -->
ليكون بالشكل التالي: HTML قم بتعديل
ملاحظة: السطور الجديدة كتبت باللون الأخصر لتسهل عملية تمييزها.
<%@ Language=VBScript CodePage = "1256"%>
<html dir=rtl>
<!--#include file="pageheader.txt" -->
<p align="center"><font face="Simplified Arabic"> إلیكم آخر
التقنیة المستجدات في الساحة </font></p>
<%
البیانات أوامر فتح قاعدة'
Dim ConnectionString
Dim ADO
ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" &
Server.MapPath("\database\project.mdb")
Set ADO=Server.CreateObject("ADODB.Connection")
ADO.ConnectionString =ConnectionString
ADO.Open
واستدعاء البیانات منه أوامر اختیار الجدول'
selectSQL="select * from tech_news"
set rs=ADO.execute(selectSQL)
البیانات أوامر استعراض'
do while not rs.eof
%>
<div align="center">
<center>
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse"
bordercolor="#111111" width="90%">
<tr>
<td width="100%" dir="rtl" bgcolor="#DFDFFF"><b> العنوان : <%response.write
rs(subject)%></b></td>
</tr>
<tr>
<td width="100%" dir="rtl"><b> التاریخ : <%response.write rs(add_dat)%></b>
<p><b> الخبر : <%response.write rs(body)%></b></td>
</tr>
</table>
</center>
</div>
<hr color="#DFDFFF" width="90%">
<%
rs.movenext
loop
ADO.close
%>
<!--#include file="pagefooter.txt" -->
وستكون النتيجة كالتالي:
العنوان : اختراق مواقع حركة طالبان على الإنترنت
٢٠٠١/٩/ التاریخ : ٣١
الخبر : بعد عملية تفجير برجي التجارة العالمية بنيويورك، ورفض حركة طالبان تسليم بن لادن
للولايات المتحدة الأمريكية، قام مجهولون باختراق مواقع الحركة على الإنترنت.
العنوان : مايكروسوفت تنجو من محاولة تفكيكها
٢٠٠١/٩/ التاریخ : ٣١
الخبر : سحبت الولايات الثمانية عشر الدعوى التي رفعتها على شركة مايكروسوفت، مطالبة
المحكمة بتفكيك الشركة لكونها محتكرة لسوق البرمجيات.
والآن سنقوم بشرط الإضافات سطرا سطرا:
: (Do) يعني do while not rs.eof فالسطر Do (something) Loop. حلقة. صيغتها (Do) ·
End Of File). اختصار ل (eof نهاية الملف rs لم تكون (not) ، ما دامت (while) ، ابدأ حلقة
ما دام هذا الشرط Loop) وتنتهي بكلمة Do إي أنه الحلقة ستستمر في التنفيذ (الحلقة تبدأ بكلمة
وسيغلق الحلقة لينفذ ما Loop و Do صحيحا، وبمجرد أن لا يتحقق الشرط لن يتم تنفيذ ما بين
Loop). بعدها (أي ما بعد
ثم وضعنا أوامر عرض النتائج . ·
تعني انتقل للنتيجة التالية . rs.movenext ·
تعني Do وينفذها ما دامت صحيحة. حيث كانت Do تكرار الحلقة. أي سيعود إلى جملة (Loop) ·
نهاية الملف سيتوقف عن rs نهاية الملف. فإن كانت rs أنه يستمر في تنفيذ الحلقة حتى تصبح
نهاية الملف فسينفذ الحلقة . rs أما إن لم تكن Loop تنفيذ الحلقة وينتقل للسطر الذي يلي
ربط الملف بقاعدة البيانات: Code ل SSI نختم هذا الدرس، باستخدام
connection.txt. واحفظهم باسم Notpad والصقهم في tech.asp قم بقص الأسطر التالية من ملف
<%
البیانات أوامر فتح قاعدة'
Dim ConnectionString
Dim ADO
ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" &
Server.MapPath("\database\project.mdb")
Set ADO=Server.CreateObject("ADODB.Connection")
ADO.ConnectionString =ConnectionString
ADO.Open
%>
ضع سطر (إدراج الملف) التالي: tech.asp مكان الأسطر السابقة في
<!--#include file="connection.txt" -->
وسيكون شكل الصفحة كالتالي:
<%@ Language=VBScript CodePage = "1256"%>
<html dir=rtl>
<!--#include file="pageheader.txt" -->
<p align="center"><font face="Simplified Arabic"> إلیكم آخر
التقنیة المستجدات في الساحة </font></p>
<!--#include file="connection.txt" -->
<%
واستدعاء البیانات منه أوامر اختیار الجدول'
selectSQL="select * from tech_news"
set rs=ADO.execute(selectSQL)
البیانات أوامر استعراض'
do while not rs.eof
%>
<div align="center">
<center>
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse"
bordercolor="#111111" width="90%">
<tr>
<td width="100%" dir="rtl" bgcolor="#DFDFFF"><b> العنوان : <%response.write
rs(subject)%></b></td>
</tr>
<tr>
<td width="100%" dir="rtl"><b> التاریخ : <%response.write rs(add_dat)%></b>
<p><b> الخبر : <%response.write rs(body)%></b></td>
</tr>
</table>
</center>
</div>
<hr color="#DFDFFF" width="90%">
<%
rs.movenext
loop
ADO.close
%>
<!--#include file="pagefooter.txt" -->
تمنى أن يكون هذا الدرس واضحا. وسيتم تطوير هذا الملف في مرحلة متقدمة إن شاء الله. ويمكنك الآن
الانتقال للدرس التالي
(QueryString) وضع روابط لمواضیع في قاعدة البیانات استخدام
لتظهر النتائج بالشكل التالي: tech.asp في الدرس السابق، صممنا صفحة
العنوان : اختراق مواقع حركة طالبان على الإنترنت
٢٠٠١/٩/ التاریخ : ٣١
الخبر : بعد عملية تفجير برجي التجارة العالمية بنيويورك، ورفض حركة طالبان تسليم بن لادن
للولايات المتحدة الأمريكية، قام مجهولون باختراق مواقع الحركة على الإنترنت.
العنوان : مايكروسوفت تنجو من محاولة تفكيكها
٢٠٠١/٩/ التاریخ : ٣١
الخبر : سحبت الولايات الثمانية عشر الدعوى التي رفعتها على شركة مايكروسوفت، مطالبة
المحكمة بتفكيك الشركة لكونها محتكرة لسوق البرمجيات.
هذا الشكل مقبول إن كانت الأخبار عبارة عن أسكر طويلة. أما إن كان المطلوب عرض مقالات، أو أخبار
طويلة، فلن يكون هذا الشكل مناسبا. والأفضل هو عرض العنوان فقط، وهذا العنوان يكون على شكل
(رابط) تفتح به صفحة جديدة تحتوي على الموضوع. وهذا هو موضوع درسنا الحالي.
teach.asp افتح الملف
<%@ Language=VBScript CodePage = "1256"%>
<html dir=rtl>
<!--#include file="pageheader.txt" -->
<p align="center"><font face="Simplified Arabic"> إلیكم آخر
التقنیة المستجدات في الساحة </font></p>
<!--#include file="connection.txt" -->
<%
واستدعاء البیانات منه أوامر اختیار الجدول'
selectSQL="select * from tech_news"
set rs=ADO.execute(selectSQL)
البیانات أوامر استعراض'
do while not rs.eof
%>
<div align="center">
<center>
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse"
bordercolor="#111111" width="90%">
<tr>
<td width="100%" dir="rtl" bgcolor="#DFDFFF"><b><span lang="ar-sa"> : العنوان
<%response.write rs(subject)%></span></b></td>
</tr>
<tr>
<td width="100%" dir="rtl"><b><span lang="ar-sa"> التاریخ : <%response.write
rs(add_dat)%></span></b>
<p><b><span lang="ar-sa"> الخبر : <%response.write rs(body)%></span></b></td>
</tr>
</table>
</center>
</div>
<hr color="#DFDFFF" width="90%">
<%
rs.movenext
loop
ADO.close
%>
<!--#include file="pagefooter.txt" -->
سنقوم بحذف السطور المكتوبة باللون الأخضر في الأعلى، وهي الأسطر التي تقوم بعرض تاريخ الخبر
وعنوانه ونصه. وسنضع مكانها السطر التالي:
<b><a href="body.asp?field=tech_news&id=<%=rs("id")%>"><%response.write
rs("subject")%></a></b>
هذا السطر سيقوم بعرض عناوين الأخبار فقط، وستكون هذه العناوين على شكل روابط. هذه الروابط تتميز
بإرسالها (قيمة) للصفحة التالي. سنشرح معنى هذا الأمر في الدرس التالي.
(QueryString) استدعاء بیانات من القاعدة من خلال روابط استخدام
وكان الرابط على الشكل التالي : body.asp وضعنا في الدرس السابق رابط لصفحة
body.asp?field=tech_news&id=<%=rs("id")%>
وشرح معنى كل كلمة في الرابط. body.asp والآن سنقوم بتصميم صفحة
لنجري عليها التغييرات المطلوبة .سأقوم body.asp وقم بإعادة حفظها باسم teach.asp قم بفتح صفحة
بجميع التغييرات مرة واحدة، ثم سأقوم بشرحها بعد ذلك ..فلنجري هذه التعديلات معا:
<%@ Language=VBScript CodePage = "1256"%>
<html dir=rtl>
<!--#include file="pageheader.txt" -->
<!--#include file="connection.txt" -->
<%
field=request.querystring("field")
id=request.querystring("id")
selectSQL="select * from "&field&" where id="&id
set rs=ADO.execute(selectSQL)
%>
<p align="center"><b><font face="Simplified Arabic" size="5"
color="#C11111"><%response.write rs("subject")%></font></b><p align="center">
<p align="left"><font face="Simplified Arabic" size="3"><%response.write
rs("add_dat")%></font></p>
<p><b><font face="Simplified Arabic" size="3"><%response.write
rs("body")%></font></b></p>
<%ADO.close%>
<!--#include file="pagefooter.txt" -->
والآن، لنتعلم معاني الأوامر الجديدة في هذه الصفحة. السطر التالي :
يعني: field=request.querystring("field")
: field= وذلك بكتابة field ١. تحديد متغير باسم
: request.querystring ٢. قيمة هذا المتغير سيتم استقبالها عن طريق رابط وذلك بكتابة
: ("field") وذلك بكتابة field ٣. سيشار للقيمة في الرابط بكلمة
لنتذكر الآن الرابط الذي قمنا بكتابته في الدرس السابق :
body.asp?field=tech_news&id=<%=rs("id")%>
من الصفحة السابقة إلى هذه الصفحة field انظر للكلمات التي تم تحديدها باللون الأخضر. لقد أرسلنا قيمة
وللتوضيح أكثر.. لنفترض أن الرابط كالتالي : tech_news . من خلال رابط. وهذه القيمة هي
body.asp?section=tech_news&id=<%=rs("id")%>
إلى field=request.querystring("field") في هذه الحالة يجب تغيير
field=request.querystring("section") .
له نفس وظيفة السطر الأول، مع الفارق في المتغير id=request.querystring("id") السطر الثاني
يتضح أن قيمة body.asp?field=tech_news&id=<%=rs("id")%> وقيمته. وبالنظر للرابط السابق
selectSQL ستتغير بتغير الموضوع. وذلك لأن القيمة تأخذ من قاعدة البيانات عن طريق أمر id المتغير
في الصفحة السابقة.
حيث تم استبدال اسم selectSQL . من الأمور الجديدة في هذا الدرس أيضا هو التطوير الذي حدث لأمر
وهذا يعطي مرونة أكبر. حيث أن Field) باسم متغير (في حالتنا هذه From) الجدول) بعد كلمة
أي أنه يمكننا استخدام هذه الصفحة لعرض جميع أقسام الأخبار Field .. ستتغير بتغير قيمة SelectSQL
في الموقع وليس فقط للأخبار التقنية.
وبإمكاننا وضع الشرط الذي يناسبنا.. وفي درسنا الحالي SelectSQL ل Where أيضا تم إضافة شرط
id في الجدول المطلوب في القاعدة تساوي قيمة المتغير id أي: عندما تكون قيمة : id="&id كان الشرط
في هذه الصفحة.
قمنا بشرحة في الدروس السابقة. Code بقية الnews.
asp الدرس العاشر :تصمیم صفحة
تعلمنا الكثير من الأمور في الدروس السابقة. لذا لن أحاول شرح المزيد من الأوامر في هذا الدرس، حتى
لذا سنقوم بالخطوات التالية tech.asp وشابه جدا ل news.asp يكون خفيفا وسهلا. فتصميم صفحة
لإنشاء الصفحة:
. tech_news بنفس مواصفات جدول general_news ١- افتح قاعدة البيانات وصمم جدولا باسم
ملاحظة: بإمكانك بدلا من تصميم الجدول من جديد. نسخ الجدول الحالي، وذلك بعمل الخطوات التالية.
تظليل الجدول. ·
ضع مؤشر الفأرة على اسم الجدول واضغط بزر الفأرة الأيمن. ·
من القائمة التي ستظهر. Copy اختيار ·
.Past في المساحة البيضاء الفارغة اضغط مرة أخرى زر الفأرة الأيمن واختر منه ·
سيظهر لك صندوق حوار يسألك فيه عن اسم الجدول، فاكتب في الخانة البيضاء المخصصة لاسم ·
Structure : وتحت هذه الخانة البيضاء ستجد ثلاثة خيارات هي .general_news الجدول
اختر الخيار .Append Data to Exiting Table و Structure and Data و Only
.Structure Only الأول
.ok واضغط على ·
احفظ قاعدة البيانات. ·
وأجر التعديلات التالية عليها. news.asp واحفظها باسم tech.asp ٢- افتح صفحة
غير الجملة الترحيبية (التي كانت ليكم آخر المستجدات على الساحة التقنية) لتتناسب مع الصفحة ·
الجديدة. أفضل استبدال كلمة (التقنية) بكلمة (العالمية) فقط.
إلى tech_news غير اسم الجدول "selectSQL="select * from tech_news في عبارة ·
general_news
وهو : body.asp في الرابط لصفحة المقال ·
إلى tech_news غير <%("rs("id=%>=id&body.asp?field=tech_news
general_news
وفي الدرس التالي سنصمم صفحة البحث .news.asp بهذه الخطوات البسيطة نكون قد انتهينا من صفحة
search.asp تصمیم صفحة
وقم بحفظها باسم tech.asp لن يأخذ الكثير من الوقت. افتح صفحة search.asp تصميم صفحة
ثم امسح الأوامر التي بداخلها. أي اسمح من الصفحة التالي: search.asp.
<%@ Language=VBScript CodePage = "1256"%>
<html dir=rtl>
<!--#include file="pageheader.txt" -->
<p align="center"><font face="Simplified Arabic"> إلیكم آخر
التقنیة المستجدات في الساحة </font></p>
<!--#include file="connection.txt" -->
<%
منه أوامر اختیار الجدول واستدعاء البیانات'
selectSQL="select * from tech_news order by add_dat desc"
set rs=ADO.execute(selectSQL)
أوامر استعراضالبیانات'
if not rs.eof then
do while not rs.eof
%>
<div align="center">
<b><a href="body.asp?field=tech_news&id=<%=rs("id")%>"><%response.write
rs("subject")%></a></b>
</div>
<hr color="#DFDFFF" width="90%">
<%
rs.movenext
loop
else
end if
ADO.close
%>
وقم بعمل التالي: (Normal). ثم ارجع لنمط التصميم العادي في الفرونت بيج
Textbox. ومنها Form ومنها Insert اختر قائمة
سيظهر لك التالي:
Reset Submit
امسح زر Reset بالضغط عليه فنحن لسنا بحاجة له وبإمكانك وضع المربع في منتصف الصفحة. وذلك
واختيار (توسيط) من شريط الأدوات في الفرونت بيج. ثم اتبع الخطوات التالية:
فتسطر لك : Form Properties اضغط على مربع النص بزر الفأرة الأيمن، ستظهر لك قائمة اختر منها
الشاشة التالية:
Options: ثم اضغط على زر Sent to other اختر منها
ستظهر لك الشاشة التالية:
في مثالنا هذا، Form . اكتب اسم الصفحة التي سترسل إليها القيمة المدخلة في هذا ال Action في خانة
search_result.asp وسنرسل القيم إلى صفحة بعنوان Form كنوع من أنواع ال Textbox استخدمنا
سيتم فيها البحث عن هذه القيم وعرضالنتائج .وهذه هي الصفحة التي سنقوم بتصميمها في الدرس التالي.
POST : و GET الفرق بين
الاختلاف بينهما ببساطة هو: Get. واجعله Post فقم بتغيير الاختيار Method أما في خانة
سيخفي القيم المرسلة. إي إن كنت تود إرسال قيم سرية من صفحة لأخر (ككلمة المرور Post : ·
Post. مثلا (فبإمكانك اختيار
ستظهر القيمة المرسلة للصفحة الثانية في شريط العنوان. وهذا مفيد في حالة البحث، Get : ·
حيث سيشاهد الباحث الكلمة التي بحث عنها في شريط العنوان فسيتأكد إن كان قد كتبها بشكل
صحيح أم لا .
Ok. ومرة أخرى Ok اضغط زر
Form Field Properties مرة أخرى اضغط بزر الفأرة الأيمن على مربع النص. واختر هذه المرة
فستظهر لك الشاشة التالية:
Ok. اكتب اسم الحل. ثم اضغط Name في خانة
فستظهر لك Form Field Properties واختر هذه المرة Submit. اضغط بزر الفأرة الأيمن على زر
الشاشة التالية:
في مثالنا هذا. سنكتب :ابحث. Submit . الكلمة التي تود أن تظهر بدلا من Value/lable اكتب في خانة
كالتالي: search.asp صفحة Code أخيرا.. سيكون
<%@ Language=VBScript CodePage = "1256"%>
<html dir=rtl>
<!--#include file="pageheader.txt" -->
<form method="GET" action="search_result.asp">
<p align="center">
<input type="text" name="keyword" size="20"></p>
<p align="center"><input type="submit" value=" ابحث " name="B1"></p>
</form>
<!--#include file="pagefooter.txt" -->
التي ستبحث عن الكلمة المطلوبة، وتعرض search_result.asp في الدرس التالي، سنصمم صفحة
النتائج.
search_result.asp تصمیم صفحة البحث وعرضالنتائج
كالتالي: Code ستجد ال .search_result.asp وقم بحفظها باسم search.asp افتح صفحة
<%@ Language=VBScript CodePage = "1256"%>
<html dir=rtl>
<!--#include file="pageheader.txt" -->
<form method=>"GET" action="search_result.asp">
<p align="center">
<input type="text" name="keyword" size="20"></p>
<p align="center"><input type="submit" value=" ابحث " name="B1"></p>
</form>
<!--#include file="pagefooter.txt" -->
والآن.. لنقم بالتغييرات المطلوبة. أولى هذه التغييرات هو إعلام البرنامج أن هنالك (متغير) يجب أخذ قيمته
والذي يحتوي على الكلمة المطلوب البحث keyword هذا المتغير هو serach.asp من الصفحة السابقة
للقيام بهذه المهمة. لذا قم Request.QueryString عنها .وكما فعلنا في الدرس التاسع، سنستخدم
بمسح هذه الأسطر :
<form method="GET" action="search_result.asp">
<p align="center">
<input type="text" name="keyword" size="20"></p>
<p align="center"><input type="submit" value=" ابحث " name="B1"></p>
</form>
واكتب بدلا منها:
<%
keyword=request.querystring("keyword")
%>
Select: والآن سنقوم بالبحث عن الكلمة في الجدول بعد استقبالها من صفحة البحث باستخدام أمر
<%@ Language=VBScript CodePage = "1256"%>
<html dir=rtl>
<!--#include file="pageheader.txt" -->
<!--#include file="connection.txt" -->
<%
keyword=request.querystring("keyword")
SelectTechSQL="select * from tech_news where subject like '%"&keyword&"%' "
set rs=ADO.execute(SelectTechSQL)
%>
<!--#include file="pagefooter.txt" -->
تغني عن علامة ( = ). ويمكن أن تعبر Like كلمة . Like هنا أننا أضفنا كلمة Select الملاحظ في أمر
عن مساواة كلية أو جزئية. ولتوضيح ذلك، لنفترض المثال التالي: إن قمنا باستخدام المساواة الكلية وبحثنا
عن "خالد" فستظهر لنا النتائج التي تحتوي على كلمة "خالد". أما إن استخدما المساواة الجزئية فستظهر لنا
النتائج التي تحتوي على: خالد، خالدا، الخالد، الخالدون، خالدون .. الخ
فنكتبه Keyword وبعدها اسم المتغير .. في مثالنا هو Like للتعبير عن المساواة الكلية نكتب ·
"&keyword&" : بالصيغة التالية
وبعدها اسم المتغير بين علامات النسبة المؤوية .. في Like للتعبير عن المساواة الجزئية نكتب ·
'%"&keyword&"%' : فنكتبه بالصيغة التالية Keyword مثالنا هو
عندما تكون القيمة في Tech في هذا المثال هو: اختر أي شي من جدول Select والمقصود في عبارة
للتوضيح لنفترض المثال التالي: . Keyword مساوية أو مشابهة للقيمة في المتغير Subject العمود
لديك في القاعدة العناوين الثلاثة التالية:
متطورة وسهلة. ASP ١. لغة
سهلة ومتطورة. PHP ٢. لغة
ممتعة. ++C ٣. البرمجة ب
عند إدخال كلمة "لغة" للبحث عنها، سيظهر لنا أول عنوانين كنتائج للبحث. حيث أن أمرنا يبحث في
العنوان.
select * from " إن كنا نود تغيير حقل البحث، فبإمكاننا تغيير اسم العمود الذي يتم البحث فيه.. كأن نكتب
في حال رغبتنا بالبحث في نص الموضوع وليس " '%"&keyword&"%' tech where body like
عنوانه. أما إن أردنا البحث في كافة الحقول، فعلينا كتابتها جميعا والربط بينها باستخدام أحد دوال الربط
: Or مرة باسخدام SelectTechSQL لنعد كتابة . Or المنطقيةوهي
SelectTechSQL="select * from tech_news where subject like '%"&keyword&"%' or body
like '%"&keyword&"%' "
في هذه الحالة سيتم عرض النتائج الذي توجد بها كلمة البحث في:
١. العنوان.
٢. المحتوى.
٣. العنوان والمحتوى.
و Tech_news ) وللبحث في كلا الجدولين Tech_news الأمر السابق سيبحث عن الكلمة في جدول
بإمكاننا كتابة أمر لكل جدول، كالتالي: ( General_news
<%@ Language=VBScript CodePage = "1256"%>
<html dir=rtl>
<!--#include file="pageheader.txt" -->
<!--#include file="connection.txt" -->
<%
keyword=request.querystring("keyword")
الأخبار التقنیة أوامر البحث في جدول '
SelectTechSQL="select * from tech_news where subject like '%"&keyword&"%' or body
like '%"&keyword&"%' "
set rsTech=ADO.execute(SelectTechSQL)
أوامر البحث في جدول الأخبار العامة '
SelectGeneralSQL="select * from tech_news where subject like '%"&keyword&"%' or body
like '%"&keyword&"%' "
set rsGeneral=ADO.execute(SelectGeneralSQL)
%>
<!--#include file="pagefooter.txt" -->
لا تنسى أن تضع ملف الربط بقاعدة البيانات، وذلك لأننا سنحتاج لقراءة بعض البيانات منها. بعد كتابة
علينا كتابة أوامر عرض النتائج. وهي بسيطة قمنا بكتابتها سابقا في الدرسين السابع Select أوامر
. SelectGeneralSQL وأخرى ل SelectTechSQL والثامن. سنكتب واحدة ل
<%@ Language=VBScript CodePage
إنها سهلة جدا وليست معقدة. وسنتعلمها بإذن الله بكل سهولة ويسر.. وسأستخدم مشروعا صغيرا خلال
الرحلة لتطبيق ما نتعلمه من اللغة على المشروع بذلك سننتهي معا بموقع جاهز يعمل بهذه اللغة صممناه
السهلة والرائعة. ASP بأنفسنا، مستعدون ؟ ..( : إذا هيا نتوكل على الله ونبدأ رحلتنا التعليمية للغة
؟ ASP ما الحاجة لاستخدام
أو أحد برامج التصميم التي تمكنك من عمل ما تشاء HTML يمكنك تصميم صفحات رائعة باستخدام لغة
لشركة Dreamwaver أو Microsoft FrontPage كبرنامج HTML (تقريبا (ثم تحويل عملك للغة
ASP?!! إذن لماذا أضيع وقتي بتعلم Macromedia.
تكون ثابتة بمعنى أنك ما تكتبه في الصفحة سيظهر لك عند HTML المعلومات الظاهرة في صفحات
العرض .. مثل برنامج الوورد .. الذي تكتبه تراه .. ولكن ماذا إذا كانت عندك سجلات كبيرة من البيانات
وتريد أن تعرضها في الصفحة.. مثل ملاحظات سجل الزوار.. أو أسماء المشتركين في منتداك أو معلومات
أخرى مخزنة في قواعد بيانات مثل ميكروسوفت اكسس.
عرض هذه البيانات في الشاشة باستخراجها مباشرة من قواعد البيانات ASP تستطيع باستخدام صفحة
عن ASP وتتميز صفحات HTML . المخزنة فيها البيانات بدلا من تخزين هذه البيانات على صفحات
بكونها صفحات غير ثابتة المعلومات.. فالمعلومات بها مؤخذة من قواعد البيانات وتتغير في HTML
الصفحة بتغير المعلومات في قواعد البيانات وسأطلق هذه الميزة كلمة صفحات تفاعلية أي أنا تتفاعل
وتتأثر في الصفحة بتأثر وتغير المعلومات في قواعد البيانات. ومن الأمثلة على هذه الصفحات.. غرف
قوائم المشتركين.. ، Guest Book سجل الزوار ، Discussion Board المنتديات ، Chat الحوار
وغيرها من الصفحات التي تتطلب استقبال وإرسال المعلومات.
ASP : متطلبات العمل على لغة
Internet Information Server أو Personal Web Server أولا : تركيب
وغيرها، لا تعمل مباشرة على الأجهزة CGI و PHP و ASP اللغات المتقدمة لبرمجة المواقع أمثال
حتى تعمل. بإمكانك حجز مساحة (مجانية أو باشتراك شهري) في أحد Server الشخصية. فهي تحتاج ل
أنصح بالاشتراك Servers ( فأجهزتهم عبارة عن Hosting Providers مواقع الاستضافة في الإنترنت
وقواعد بيانات ASP فهو يقدم مساحة مكانية تدعم لغة [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] في موقع
لكن ذلك ليس نهاية المطاف، فتكلفة الاتصال بالإنترنت مكلفة في بعض البلدان، وتصميم MS Access).
الموقع أثناء الاتصال، قد يكلف الكثير من الأموال. لذا، بإمكانك تركيب بعض البرامج التي تجعل من حاسبك
Server. الشخصي
لمستخدمي ويندوز ٩٨ أو ويندوز ملينيوم : ·
وتركيبه في غاية البساطة.. كل ما عليك هو فتح Personal Web Server (PWS) قم بتركيب برنامج
سيتم setup.exe ( ومنه شغل الملف pws ومنه add-one 98 واختر المجلد Win98 CD قرص ويندوز
شرح هذا الأمر بالتفصيل في الدرس التالي.(
asp. في قرص الويندوز ٩٨ فابحث عن مجلد باسم pws ملاحظة: إن لم تجد مجلد باسم
إن لم لكن لديك قرص ويندوز ٩٨ يمكنك سحب البرنامج من هذا الرابط:
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]
NT : لمستخدمي ويندوز 2000 أو ·
للويندوز وستجده كخدمة متوفرة مع سيدي تركيب Internet Information Server قم بتركيب خدمة
ثم اختيار إضافة وإزالة مكونات ويندوز Control Panel الويندوز، وذلك بالذهاب لي لوحة التحكم
منه. Internet Information Server واختيار Add/Remove Windows Components
ASP : ثانيا : إختيار برنامج لكتابة نصوص
لا تحتاج بالضرورة لاستخدام برنامج خاص لذلك. سأستخدم خلال الشرح برنامج ASP لكتابة نصوص
لأنه متوفر عند الأغلبية ونستطيع باستخدامه تصميم شكل الصفحات ، وإن أردتم استخدام Front Page
الذي يأتي مع NotePad برامج أخرى تستطيعون أيضا متابعة الدروس معنا. إن كنت تريد استخدام برنامج
لأنه لن يساعدك في تصميم Note Pad الويندوز يمكنه القيام بالواجب. إلا أنني لا أنصحك حاليا باستخدام
أو Microsoft Front Page شكل الصفحة. كذلك تستطيع استخدام أي برامج تصميم صفحات الويب مثل
ASP المتخصص في إنشاء صفحات Microsoft Interdev أو ،Macromedia DreamWeaver
ولغات غيرها .
إن كنت لا تملك برنامجا أخر للتصميم ، Front Page إذا قم بتركيب
ثالثا: برنامج قواعد البيانات:
أو غيرها من برامج قواعد البيانات.. لكنني سأعتمد على Microsoft Access أو SQL يمكننا استخدام
وذلك لتوفره عند الأغلبية. Microsoft Access 2000
بذلك نكون قد تجهزنا للبدء في كتابة النصوص : ).. وأتمنى منكم المتابعة للتعلم.
لنبدأ معنا
إنني مؤمن بأن أفضل طريقة لتعلم هذه اللغة هو القيام بأمثلة عملية.. لذا لن أتحدث عن المتغيرات أو
الأوامر أو القيم إلا عندما نحتاجها لتصميم إحدى الصفحات.
ولنتأكد من تطبيقنا السليم للغة.. سنبدأ بمشروع من الصفر، خطوة بخطوة.. وعند نهاية هذه الدروس
ستكون قادرا على تصميم مشروعا مشابها، ومن ثم تطويره إن شاء الله.
مشروعنا سيكون، تصميم موقع إخباري بسيط.
أولا: المحتوى:
١. أخبار تقنية .
٢. أخبار منوعة .
ثانيا: الخدمات:
١. محرك بحث في محتويات الموقع .
٢. سجل زوار .
ثانيا:الإدارة:
١. تسجيل المسؤولين عن الموقع (أسماء وكلمات مرور خاصة بهم .(
٢. إضافة، تعديل، حذف الأخبار من خلال الموقع .
تنفيذ هذا الموقع الإخباري، يتطلب منا تعلم مجموعة من أهم أوامر هذه اللغة.. وهذا هو الغرض من هذه
الدروس .فهل أنت مستعد ومتحمس ؟! إذا أرجو منك المتابعة وسنصل إلى موقع رائع في النهاية.
إذا خذ قسطا من الراحة.. وابدأ بتجهيز البرامج التي أخبرتك عنها في الأعلى.. ثم تابع الدروس التالية..
وأنا في انتظارك هناك.
Personal Web Server - PWS تركيب
وستجد هنا خطوات مدعمة بالصور لتسهيل عملية تركيب ASP ضروري لتشغيل صفحات PWS إن تركيب
40 MB 20 و – 30 MB RAM 90 و MHz يتطلب البرنامج على الأقل معالج بينتيوم بسرعة PWS.
فارغة في القرص الصلب.
في مشغل الأقراص . Windows ١. أدخل قرص 98
Run واختر تشغيل Start ٢. اضغط على قائمة ابدأ
x:\add-ons\pws\setup.exe ٣. اكتب
بحرف مشغل الأقراص بجهازك . X ٤. أبدل حرف
ستظهر لك الشاشة التالية:
Custom ثم من الشاشة التالية اضغط على Next اضغط على
"Show ثم اضغط على "Personal Web Server (PWS)" من الشاشة التالية اختر
Subcomponents…"
"Show Subcomponents…" ثم اضغط على "Documentation” من الشاشة التالية اختر
Next ثم Ok ثم مرة أخرى Ok ثم اضغط على "Active Server Pages” من الشاشة التالية اختر
للانتقال لخطوة التالية من عملية التثبيت.
ستظهر لك الشاشة التالية.. أفضل إبقاء كل شي على ما هو عليه، إلا أن هذا الأمر راجع إليك.
ستبدأ عملية التثبيت.
بعد الانتهاء منها سيطلب منك إعادة تشغيل الجهاز. عندما تفعل ذلك ستلاحظ أن هنالك شيئا جديدا أضيف
هذا يعني أن التركيب قد تم بنجاح. تهانينا. Taskbar. بجانب الساعة في شريط المهام
طريقة سريعة لاختبار ذلك، اذهب للعنوان التالي (يفضل الاحتفاظ بهذا العنوان في قائمة المواقع المفضل
وستظهر لك الشاشة التالية : Favorites) [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]
!
ملاحظات:
إن لم لكن لديك قرص ويندوز ٩٨ يمكنك سحب البرنامج من هذا الرابط: ·
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]
إن لم ترغب بتخزين هذا البرنامج على جهازك. فبإمكانك حجز مساحة مجانية من هذا الموقع ·
لكن ذلك سيتطلب تجربة الصفحات التي سنصممها، على . [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]
الإنترنت مباشرة، ولن يمكن تشغيل الصفحات على الكمبيوتر.
default.asp الصفحة الأولى
في الموقع لتشغیلها Index أو Default عن صفحة تحمل اسم (Browser) دائما ما یبحث برنامج التصفح
: Default . تلقائیا. لذا عادة ما تكون الصفحة الرئیسیة في الموقع بهذا الاسم. وفي مشروعنا سنستخدم اسم
قم بتصمیم ما یعجبك.. مع مراعاة وضع عنوان الصفحة بشكل بارز، ورابط لكل من Frontpage باستخدام
وآخر ،(guest.asp) ورابط لسجل الزوار ،(news.asp) والأخبار المنوعة ، (tech.asp) الأخبار التقنیة
ولا تنسى أن تكتب فقرة (admin.asp). وأخیرا رابط لقسم إدارة الموقع ،(search.asp) لمحرك البحث
C:\Inetpub\wwwroot\news ترحیبیة بالزوار .وخزن جمیع هذه الملفات في
ملاحظة: هذه بعضالمواقع التي تشرح لك كیفیة التصمیم بالفرونت بیج :المصمم لك ، أجنادین.
ثم قم أنت بإنشاء المجلد C:\Inetpub\wwwroot سیتم إنشاء هذه المجلدات PWS ملاحظة: عند تركیب
لتخزین ملفات مشروعنا هذا فیه. news
التصمیم المقترح:
عالم الیوم
للتصمیم المقترح. (استخدام هذا النصسیسهل علیك متابعة الدروس.( HTML هذا هو نص
<html dir=rtl>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=windows-1256">
<meta http-equiv="Content-Language" content="ar-qa">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title> الیوم عالم </title>
</head>
<body>
<p align="center"><img border="0" src="thetitel.gif"></p>
<hr>
<p align="center"><font face="Simplified Arabic"
size="3"><b><a href="tech.asp"> أخبار
تقنیة </a>| <a href="news.asp"> أخبار منوعة </a>| <a
href="search.asp"> بحث </a>
| <a href="guest.asp"> سجل الزوار </a>| <a href="admin.asp"> إدارة
الموقع </a></b></font></p>
<hr>
<p align="center"><font face="Simplified Arabic" size=" مرحبا <" 3
بكم في
موقعنا الإخباري المتمیز </font></p>
<p align="center"><font face="Simplified Arabic" size=" نتمنى <" 3
لكم
المتعة والفائدة معنا </font></p>
<p align="center"><font face="Simplified Arabic" size=" مع <" 3
تحیات </font></p>
<p align="center"><font face="Simplified Arabic" size="3"
color="#AD إدارة<" 1212
الموقع </font></p>
<hr>
<p align="center"><font face="Simplified Arabic"
size="3"><b><a href="tech.asp"> أخبار
تقنیة </a>| <a href="news.asp"> أخبار منوعة </a>| <a
href="search.asp"> بحث </a>
| <a href="guest.asp"> سجل الزوار </a>| <a href="admin.asp"> إدارة
الموقع </a></b></font></p>
<p align="center"><b><font face="Simplified Arabic"
size=" جمیع<" 2
الحقوق محفوظة ٢٠٠١ </font></b></p>
</body>
</html>
SSI استخدام
للاستغناء عن تكرار تصمیم الأجزاء المتشابهة في كل صفحة.. مثل الجزء العلوي من الصفحة.. أو مؤخرة
لوضع الجزء المراد تكراره في ملف SSI الصفحة والتي تحتوي على حقوق الحفظ .. نستطیع استخدام میزة
واحد فقط.. وإضافة اسم الملف في الملفات المراد تكرار الجزء فیها.
على سبیل المثال: سنعتمد تصمیما واحدا لجمیع الصفحات.. ففي رأس الصفحة عنوان الموقع، وتحته روابط
للأقسام المختلفة.. وفي نهایة الصفحة الروابط من جدید.
ببساطة، یمكنك نسخ نفس النصلجمیع الصفحات.. الرأس:
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=windows-1256">
<meta http-equiv="Content-Language" content="ar-qa">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title> عالم الیوم </title>
</head>
<body>
<p align="center"><img border="0" src="thetitel.gif"></p>
<hr>
<p align="center"><font face="Simplified Arabic"
size="3"><b><a href="tech.asp"> أخبار
تقنیة </a>| <a href="news.asp"> أخبار منوعة </a>| <a
href="search.asp"> بحث </a>
| <a href="guest.asp"> سجل الزوار </a>| <a href="admin.asp"> إدارة
الموقع </a></b></font></p>
<hr>
نهایة الصفحة:
<hr>
<p align="center"><font face="Simplified Arabic"
size="3"><b><a href="tech.asp"> أخبار
تقنیة </a>| <a href="news.asp"> أخبار منوعة </a>| <a
href="search.asp"> بحث </a>
| <a href="guest.asp"> سجل الزوار </a>| <a href="admin.asp"> إدارة
الموقع </a></b></font></p>
<p align="center"><b><font face="Simplified Arabic"
size=" جمیع<" 2
الحقوق محفوظة ٢٠٠١ </font></b></p>
</body>
</html>
ثم كتابة ما تریده ما بین هاتین الفقرتین.
للتوضیح أكثر، سأضح النصكاملا مرة أخرى، الجزء العلي سأضعه باللون الأخضر، والسفلي باللون الأرق،
والجزء الرئیسي سیكون باللون الأسود. هذا هو النص:
<html dir=rtl>
الجزء العلوي '
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=windows-1256">
<meta http-equiv="Content-Language" content="ar-qa">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title> عالم الیوم </title>
</head>
<body>
<p align="center"><img border="0" src="thetitel.gif"></p>
<hr>
<p align="center"><font face="Simplified Arabic"
size="3"><b><a href="tech.asp"> أخبار
تقنیة </a>| <a href="news.asp"> أخبار منوعة </a>| <a
href="search.asp"> بحث </a>
| <a href="guest.asp"> سجل الزوار </a>| <a href="admin.asp"> إدارة
الموقع </a></b></font></p>
<hr>
الجزء الرئیسي '
<p align="center"><font face="Simplified Arabic" size=" مرحبا <" 3
بكم في
موقعنا الإخباري المتمیز </font></p>
<p align="center"><font face="Simplified Arabic" size=" نتمنى <" 3
لكم
المتعة والفائدة معنا </font></p>
<p align="center"><font face="Simplified Arabic" size=" مع<" 3
تحیات </font></p>
<p align="center"><font face="Simplified Arabic" size="3"
color="#AD إدارة<" 1212
الموقع </font></p>
الجزء السفلي '
<hr>
<p align="center"><font face="Simplified Arabic"
size="3"><b><a href="tech.asp"> أخبار
تقنیة </a>| <a href="news.asp"> منوعة أخبار </a>| <a
href="search.asp"> بحث </a>
| <a href="guest.asp"> الزوار سجل </a>| <a href="admin.asp"> إدارة
الموقع </a></b></font></p>
<p align="center"><b><font face="Simplified Arabic"
size=" جمیع<" 2
الحقوق محفوظة ٢٠٠١ </font></b></p>
</body>
</html>
الأمر سهل للغایة ألیس كذلك؟! إنه سهل هذه المرة لأن عدد الصفحات لدینا بسیط.. الصفحة الرئیسیة، الأخبار
التقنیة، الأخبار المنوعة، بحث، سجل الزوار.. أي خمس صفحات.. لكن تخیل أن عندنا ١٠٠ صفحة.. هل
ستقوم بعملیة النسخ واللصق لكل هذه الصفحات!! وإن قمت بذلك.. تخیل أنك ترید إجراء تعدیل معین في
تصمیم رأس الصفحة أو نهایتها، هل ستفتح ال ١٠٠ صفحة وتقوم بتعدیلها واحدة واحدة!! ألن یكون الأمر
شاقا علیك!! إلیك الحل.
pagefooter.txt والجزء الأسفل باسم pageheader.txt قم بحفظ الجز الأعلى في ملف اسمه
لتكون الشفرة فیه كالتالي: default.asp أجرِ تعدیلا التالیة على ملف
<html dir=rtl>
<!--#include file="pageheader.txt" -->
<p align="center"><font face="Simplified Arabic" size=" مرحبا <" 3
بكم في
موقعنا الإخباري المتمیز </font></p>
<p align="center"><font face="Simplified Arabic" size=" نتمنى <" 3
لكم
المتعة والفائدة معنا </font></p>
<p align="center"><font face="Simplified Arabic" size=" مع <" 3
تحیات </font></p>
<p align="center"><font face="Simplified Arabic" size="3"
color="#AD إدارة<" 1212
الموقع </font></p>
<!--#include file="pagefooter.txt" -->
شغل الصفحة.. وستراها بنفس التصمیم الأول.. والآن.. یمكن إدراج الرأس والنهایة لكل الصفحات الأخرى
(التي سنصممها قریبا) من دون الحاجة لنسخ الشفرة في كل مرة.. وإن أردنا إجراء أي تغییر في المستقبل،
كل ما علینا هو إجراء التغییر على أحد هذین الملفین.. والتغییر سیطبق تلقائیا على جمیع الصفحات.
project.mdb تصميم قاعدة البيانات للمشروع
إن لم Microsoft Access كما ذكرت في الفصل الأول، سنصمم قاعدة البيانات باستخدام برنامج . 2000
تكن لديك خبرة سابقة في التعامل مع هذا البرنامج فلا تخشى شيئا، فسأكون معك خطوة بخطوة.
١- شكل ٤
سيطلب منك حفظ قاعدة البيانات، اختر لها اسما واحفظها Ok. واضغط Blank Access database اختر
أو المجلد الفرعي الذي خصصته لهذه الصفحة بداخل هذا المجلد. C:\Inetpub\wwwroot في
سيتم إكمال الدروس news ( بداخل المجلد الفرعي database ويفضل أن تحفظ بداخل مجلد فرعي باسم
اعتمادا على هذا الافتراض.(
!Error
4-1- شكل 1
project.mdb وسنسمي القاعدة هنا
!Error
4-2- شكل 2
ستظهر لك الشاشة التالیة: Create بعد الضغط على زر
٢- شكل ٤
وصمم الجدول التالي Create table in Design view اختر
٣- شكل ٤
– Text, Memo, AutoNumber) وهذا الجزء يتغير بتغير نوع الحقل Field Properties ( في قسم
وعادة ما يكون الرقم الموجود ٥٠ . هذا الجزء هو الذي يحدد عدد Text إن كان الحقل Field Size ستجد
الحروف التي بإمكانك إدخالها في هذا الحقل، لذا أنصح بتغييرها ل ٢٥٥ وهو الحد الأقصى.
أي لا يمكن ترك هذا الحقل فارغ. بإمكانك No وعادة يكون أمامها Allow Zero Length أيضا ستجد
أي يمكن ترك هذا الحقل فارغ من البيانات. Yes وضع
سيسألك عن اسم الجدول، بإمكانك اختيار أي اسم يعجبك. في مشروعنا الحالي سنسميه Save اضغط على
No ثم ستظهر لك الرسالة التالية اختر منها tech_news.
!Error
٤- شكل ٤
٢). اضغط على اسمه مرتين لفتحه. سيظهر لك الشكل - أغلق الجدول، وسترى اسمه موجود في (شكل ٣
التالي
4- شكل 5
سيتم ترقيمها تلقائيا( id أدخل البيانات التالية في الجدول (خانة
30/9/2001 1 مايكروسوفت
تنجو من
محاولة
تفكيكها
سحبت الولايات الثمانية عشر الدعوى التي
رفعتها على شركة مايكروسوفت، مطالبة
المحكمة بتفكيك الشركة لكونها محتكرة
لسوق البرمجيات.
31/9/2001 2 اختراق مواقع
حركة طالبان
على الإنترنت
بعد عملية تفجير برجي التجارة العالمية
بنيويورك، ورفض حركة طالبان تسليم بن
لادن للولايات المتحدة الأمريكية، قام
مجهولون باختراق مواقع الحركة على
الإنترنت.
أغلق الجدول، واحفظ القاعدة.. واستعد للدرس القادم الذي سأبين فيه كيفية استعراض محتويات القاعدة
عن طريق الموقع.
في المرة التالية، ستظهر لك الشاشة التالية: Ms Access ملاحظة: عند فتح برنامج
يمكنك اختيار القاعدة التي أنشاءناها في هذا الدرس من خلال هذه الشاشة مباشرة.
بقاعدة البیانات ASP ربط صفحات
وفي هذا الدرس، Microsoft Access صممنا في الدرس السابق قاعدة بيانات باستخدام برنامج . 2000
واستعراض محتوياتها. ASP سنتعلم كيفية ربط القاعدة بصفحات
(tech.asp). لإجراء بعض التعديلات عليها. لذا قم بحفظها باسم (default.asp) قم بفتح الصفحة الأولى
tech.asp فكل التغييرات التي سنقوم بهذا ستكون على ملف
في الصفحة الأولى كنا قد كتبنا جملة ترحيبية لزوار الموقع. أما في هذه الصفحة فسنستبدلها بجملة أخرى
تبين ماهية الصفحة. فسنكتب:
إليكم آخر المستجدات على الساحة التقنية
ASP . والآن.. سنبدأ بالجزء الأهم.. وهو كتابة نصوص
واكتب الجملة HTML تكتب دائما بين هاتين العلامتين. <% %> لذا، افتح نصوص ASP نصوص
التالية في أول سطر:
<%@ Language=VBScript CodePage = "1256"%>
في هذه الصفحة. وسطر (تحديد اللغة) يجب أن يكون VBScript هذا السطر يشير إلى أننا سنستخدم لغة
دائما في بداية الصفحة.
واكتب التالي تحت الجملة الترحيبية:
<%
Dim ConnectionString
Dim ADO
ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" &
Server.MapPath("\database\project.mdb")
Set ADO=Server.CreateObject("ADODB.Connection")
ADO.ConnectionString =ConnectionString
ADO.Open
%>
يتم فيها تحديد المتغيرات، وسنتحدث عن المتغيرات أكثر في (Dim): السطران الأول والثاني ·
المستقبل.
يحدد طريقة فتح قاعدة البيانات، واسم القاعدة والمسار (ConnectionString): السطر الثالث ·
إليها. يمكنك تغيير اسم القاعدة ومسارها بما يتناسب مع ما قمت به على جهازك. لقد قمت
وما قبل الاسم هو مسار الوصول إليها. project.mdb بتسمية القاعدة
ADO يحدد اسم المتغير الذي سيقوم بالربط.. وهو في مثالنا (Set ADO): السطر الرابع ·
ويمكنك تغييره بما يناسبك، إلا أن عليك استخدامه كثيرا، لذا لا أفضل تغييره حتى لا يسبب لك
بعض الصعوبة في متابعة الدروس.
السطران الخامس والسادس: يقومان بفتح القاعدة. ·
ما قمنا به حتى هذه الخطوة، هو الوصول للقاعدة فقط. والخطوة التالية هي الوصول للبيانات التي
مباشرة: ADO.open بالقاعدة. ولعمل ذلك قم بكتابة التالي تحت عبارة
selectSQL="select * from tech_news"
set rs=ADO.execute(selectSQL)
وفيها يثم اختيار البيانات من القاعدة Select تحدد أمر الاختيار (selectSQL): السطر الأول ·
حسب شروط يتم تحديدها. في حالتنا هذه طلبنا اختيار:
١. جميع البينات) ويمثلها رمز , (* ويمكن استبدالها باسم عمود او خانة معية من الجدول.
tech_news ٢. من جدول
أي أن هذان هما الشرطان الواجب القيام بهما.
تنفيذ الأمر. (set rs): السطر الثاني ·
ما قمنا به حتى الآن هو فتح القاعدة، واستدعاء البيانات منها. وما سنقوم به الآن هو طباعة هذه
مباشرة: set rs=ADO.execute(selectSQL) المعلومات. قم بكتابة التالي تحت عبارة
response.write " العنوان : " & rs("subject")
response.write " التاریخ : " & rs("add_dat")
response.write " الخبر : " & rs("body")
تمثل النتائج. حيث يكتب اسم الجدول المراد عرض ، rs(*) ، تقوم بطباعة النتائج response.write
بياناته بين علامات التنصيص " "
وفي شريط العنوان Explorer Internet وذلك بفتح المتصفح tech.asp قم بتشغيل الصفحة
اكتب العنوان الموقع، وذلك بكتابة اسم جهازك ومن ثم المجلد الذي يحتوي الموقع: Address Bar
default.asp/news/http://asp
في العنوان تمثل اسم الجهاز، وهذا الاسم يختلف من جهاز لآخر. لمعرفة اسم جهازك، ASP : ملاحظة
لترى: Identification واختر Network ومنها افتح الشبكة Panel Control افتح لوحة التحكم
Computer Name
أي أن العنوان سيصبح كالتالي: localhost يمكنك الاستعاضة عن اسم الجهاز بكلمة
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]
ستظهر صفحة عالم اليوم بالشكل التالي:
عالم اليوم
فاضغط على رابط :أخبار تقنية. لترى النتيجة:
إليكم آخر المستجدات في الساحة التقنية
٢٠٠١ الخبر : بعد عملية /٩/ العنوان : اختراق مواقع حركة طالبان على الإنترنتالتاريخ : ٣١
تفجير برجي التجارة العالمية بنيويورك، ورفض حركة طالبان تسليم بن لادن للولايات المتحدة
الأمريكية، قام مجهولون باختراق مواقع الحركة على الإنترنت.
الذي كتبته بقراءة محتويات القاعدة وعرضها .بالطبع توجد إشكاليات بسيطة Code مبروك. لقد قام ال
في البيانات المعروضة، وسنشرح طريقة التغلب عليها في الدروس القادمة. لكن المهم في هذا الدرس، هو
فهمه جيدا لأن معظم الدروس التالية تعتمد على هذا الدرس.
: " & rs("body") الخبر response.write " أخيرا، يفضل إغلاق ربط القاعدة بهذا السطر تحت عبارة
مباشرة:
ADO.close
تحسین مظهر عرضالبیانات
فإن كنا نود عرض النتائج كل جملة في سطر HTML تحسين مظهر عرض البيانات يعتمد على أوامر لغة
أي أن أوامر العرض ستكتب بالطريقة التالية: <p></p> فسنضع الجملة بين
بوضع هذه العلامة%> قبل السطور التالية. ASP ملاحظة: لا تنسى أن تغلق نصوص
<p><%response.write " العنوان : " & rs(subject)%></p>
<p><%response.write " التاریخ : " & rs(add_dat)%></p>
<p><%response.write " الخبر : " & rs(body)%></p>
يجب ملاحظة التالي:
بالعلامة التالية: <% ASP علينا إغلاق نصوص HTML قبل البدء بكتابة أوامر ·
علينا عدم نسيان وضع هذه العلامات: <% %> . HTML في أسطر ASP عند كتابة نصوص ·
<p/><%(rs( العنوان : " & 2 " response.write%><p> : مثال
شغل صفحة أخبار تقنية. لترى النتيجة:
إليكم آخر المستجدات في الساحة التقنية
العنوان : اختراق مواقع حركة طالبان على الإنترنت
٢٠٠١/٩/ التاريخ : ٣١
الخبر : بعد عملية تفجير برجي التجارة العالمية بنيويورك، ورفض حركة طالبان تسليم بن لادن
للولايات المتحدة الأمريكية، قام مجهولون باختراق مواقع الحركة على الإنترنت.
أظن أن شكل النتائج أصبح أجمل بهذه الطريقة. وغن كنت تريد تجميله أكثر، عليك باستخدام الجداول.ز كما
في المثال التالي:
<div align="center">
<center>
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse"
bordercolor="#111111" width="90%">
<tr>
<td width="100%" dir="rtl" bgcolor="#DFDFFF"><b><span lang="ar-sa"> : العنوان
<%response.write rs(subject)%></span></b></td>
</tr>
<tr>
<td width="100%" dir="rtl"><b><span lang="ar-sa"> التاریخ : <%response.write
rs(add_dat)%></span></b>
<p><b><span lang="ar-sa"> الخبر : <%response.write rs(body)%></span></b></td>
</tr>
</table>
</center>
</div>
<hr color="#DFDFFF" width="90%">
وستكون النتيجة:
العنوان : اختراق مواقع حركة طالبان على الإنترنت
٢٠٠١/٩/ التاریخ : ٣١
الخبر : بعد عملية تفجير برجي التجارة العالمية بنيويورك، ورفض حركة طالبان تسليم بن لادن
للولايات المتحدة الأمريكية، قام مجهولون باختراق مواقع الحركة على الإنترنت.
عند الانتهاء من كتابة هذه الأوامر. <% ADO.close %> لا تنسى أن تضع
Code بهذا نكون قد عالجنا الإشكالية الأولى، وهي مظهر البيانات. لكن هنالك إشكالية أكبر، وهي أن ال
الذي كتبناه قام بعرض وطباعة أول حقل فقط من القاعدة (أول خبر فقط) وتجاهل الأخبار الأخرى. لذا
لحل هذه الإشكالية. Do ... Loop و If ... Then سنستخدم كل من
عرضجمیع النتائج بشكل متتالي
في الدرس السابق، تعلمنا كيف يمكننا تغيير مظهر عرض الأخبار. والإشكالية الوحيدة المتبقية الآن هي:
كيفية عرض جميع الأخبار. فما قمنا به إلى الآن هو قراءة الأخبار من القاعدة، وعرض أول خبر فقط.
وفي هذا الدرس سنتعلم كيف يمكننا عرض كل الأخبار.
فستجد التالي: HTML وافتح tech.asp. افتح صفحة
<%@ Language=VBScript CodePage = "1256"%>
<html dir=rtl>
<!--#include file="pageheader.txt" -->
<p align="center"><font face="Simplified Arabic"> إلیكم آخر
التقنیة المستجدات في الساحة </font></p>
<%
البیانات أوامر فتح قاعدة'
Dim ConnectionString
Dim ADO
ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" &
Server.MapPath("\database\project.mdb")
Set ADO=Server.CreateObject("ADODB.Connection")
ADO.ConnectionString =ConnectionString
ADO.Open
واستدعاء البیانات منه أوامر اختیار الجدول'
selectSQL="select * from tech_news"
set rs=ADO.execute(selectSQL)
البیانات أوامر استعراض'
%>
<div align="center">
<center>
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse"
bordercolor="#111111" width="90%">
<tr>
<td width="100%" dir="rtl" bgcolor="#DFDFFF"><b> العنوان : <%response.write
rs(subject)%></b></td>
</tr>
<tr>
<td width="100%" dir="rtl"><b> التاریخ : <%response.write rs(add_dat)%></b>
<p><b> الخبر : <%response.write rs(body)%></b></td>
</tr>
</table>
</center>
</div>
<hr color="#DFDFFF" width="90%">
<% ADO.close %>
<!--#include file="pagefooter.txt" -->
ليكون بالشكل التالي: HTML قم بتعديل
ملاحظة: السطور الجديدة كتبت باللون الأخصر لتسهل عملية تمييزها.
<%@ Language=VBScript CodePage = "1256"%>
<html dir=rtl>
<!--#include file="pageheader.txt" -->
<p align="center"><font face="Simplified Arabic"> إلیكم آخر
التقنیة المستجدات في الساحة </font></p>
<%
البیانات أوامر فتح قاعدة'
Dim ConnectionString
Dim ADO
ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" &
Server.MapPath("\database\project.mdb")
Set ADO=Server.CreateObject("ADODB.Connection")
ADO.ConnectionString =ConnectionString
ADO.Open
واستدعاء البیانات منه أوامر اختیار الجدول'
selectSQL="select * from tech_news"
set rs=ADO.execute(selectSQL)
البیانات أوامر استعراض'
do while not rs.eof
%>
<div align="center">
<center>
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse"
bordercolor="#111111" width="90%">
<tr>
<td width="100%" dir="rtl" bgcolor="#DFDFFF"><b> العنوان : <%response.write
rs(subject)%></b></td>
</tr>
<tr>
<td width="100%" dir="rtl"><b> التاریخ : <%response.write rs(add_dat)%></b>
<p><b> الخبر : <%response.write rs(body)%></b></td>
</tr>
</table>
</center>
</div>
<hr color="#DFDFFF" width="90%">
<%
rs.movenext
loop
ADO.close
%>
<!--#include file="pagefooter.txt" -->
وستكون النتيجة كالتالي:
العنوان : اختراق مواقع حركة طالبان على الإنترنت
٢٠٠١/٩/ التاریخ : ٣١
الخبر : بعد عملية تفجير برجي التجارة العالمية بنيويورك، ورفض حركة طالبان تسليم بن لادن
للولايات المتحدة الأمريكية، قام مجهولون باختراق مواقع الحركة على الإنترنت.
العنوان : مايكروسوفت تنجو من محاولة تفكيكها
٢٠٠١/٩/ التاریخ : ٣١
الخبر : سحبت الولايات الثمانية عشر الدعوى التي رفعتها على شركة مايكروسوفت، مطالبة
المحكمة بتفكيك الشركة لكونها محتكرة لسوق البرمجيات.
والآن سنقوم بشرط الإضافات سطرا سطرا:
: (Do) يعني do while not rs.eof فالسطر Do (something) Loop. حلقة. صيغتها (Do) ·
End Of File). اختصار ل (eof نهاية الملف rs لم تكون (not) ، ما دامت (while) ، ابدأ حلقة
ما دام هذا الشرط Loop) وتنتهي بكلمة Do إي أنه الحلقة ستستمر في التنفيذ (الحلقة تبدأ بكلمة
وسيغلق الحلقة لينفذ ما Loop و Do صحيحا، وبمجرد أن لا يتحقق الشرط لن يتم تنفيذ ما بين
Loop). بعدها (أي ما بعد
ثم وضعنا أوامر عرض النتائج . ·
تعني انتقل للنتيجة التالية . rs.movenext ·
تعني Do وينفذها ما دامت صحيحة. حيث كانت Do تكرار الحلقة. أي سيعود إلى جملة (Loop) ·
نهاية الملف سيتوقف عن rs نهاية الملف. فإن كانت rs أنه يستمر في تنفيذ الحلقة حتى تصبح
نهاية الملف فسينفذ الحلقة . rs أما إن لم تكن Loop تنفيذ الحلقة وينتقل للسطر الذي يلي
ربط الملف بقاعدة البيانات: Code ل SSI نختم هذا الدرس، باستخدام
connection.txt. واحفظهم باسم Notpad والصقهم في tech.asp قم بقص الأسطر التالية من ملف
<%
البیانات أوامر فتح قاعدة'
Dim ConnectionString
Dim ADO
ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" &
Server.MapPath("\database\project.mdb")
Set ADO=Server.CreateObject("ADODB.Connection")
ADO.ConnectionString =ConnectionString
ADO.Open
%>
ضع سطر (إدراج الملف) التالي: tech.asp مكان الأسطر السابقة في
<!--#include file="connection.txt" -->
وسيكون شكل الصفحة كالتالي:
<%@ Language=VBScript CodePage = "1256"%>
<html dir=rtl>
<!--#include file="pageheader.txt" -->
<p align="center"><font face="Simplified Arabic"> إلیكم آخر
التقنیة المستجدات في الساحة </font></p>
<!--#include file="connection.txt" -->
<%
واستدعاء البیانات منه أوامر اختیار الجدول'
selectSQL="select * from tech_news"
set rs=ADO.execute(selectSQL)
البیانات أوامر استعراض'
do while not rs.eof
%>
<div align="center">
<center>
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse"
bordercolor="#111111" width="90%">
<tr>
<td width="100%" dir="rtl" bgcolor="#DFDFFF"><b> العنوان : <%response.write
rs(subject)%></b></td>
</tr>
<tr>
<td width="100%" dir="rtl"><b> التاریخ : <%response.write rs(add_dat)%></b>
<p><b> الخبر : <%response.write rs(body)%></b></td>
</tr>
</table>
</center>
</div>
<hr color="#DFDFFF" width="90%">
<%
rs.movenext
loop
ADO.close
%>
<!--#include file="pagefooter.txt" -->
تمنى أن يكون هذا الدرس واضحا. وسيتم تطوير هذا الملف في مرحلة متقدمة إن شاء الله. ويمكنك الآن
الانتقال للدرس التالي
(QueryString) وضع روابط لمواضیع في قاعدة البیانات استخدام
لتظهر النتائج بالشكل التالي: tech.asp في الدرس السابق، صممنا صفحة
العنوان : اختراق مواقع حركة طالبان على الإنترنت
٢٠٠١/٩/ التاریخ : ٣١
الخبر : بعد عملية تفجير برجي التجارة العالمية بنيويورك، ورفض حركة طالبان تسليم بن لادن
للولايات المتحدة الأمريكية، قام مجهولون باختراق مواقع الحركة على الإنترنت.
العنوان : مايكروسوفت تنجو من محاولة تفكيكها
٢٠٠١/٩/ التاریخ : ٣١
الخبر : سحبت الولايات الثمانية عشر الدعوى التي رفعتها على شركة مايكروسوفت، مطالبة
المحكمة بتفكيك الشركة لكونها محتكرة لسوق البرمجيات.
هذا الشكل مقبول إن كانت الأخبار عبارة عن أسكر طويلة. أما إن كان المطلوب عرض مقالات، أو أخبار
طويلة، فلن يكون هذا الشكل مناسبا. والأفضل هو عرض العنوان فقط، وهذا العنوان يكون على شكل
(رابط) تفتح به صفحة جديدة تحتوي على الموضوع. وهذا هو موضوع درسنا الحالي.
teach.asp افتح الملف
<%@ Language=VBScript CodePage = "1256"%>
<html dir=rtl>
<!--#include file="pageheader.txt" -->
<p align="center"><font face="Simplified Arabic"> إلیكم آخر
التقنیة المستجدات في الساحة </font></p>
<!--#include file="connection.txt" -->
<%
واستدعاء البیانات منه أوامر اختیار الجدول'
selectSQL="select * from tech_news"
set rs=ADO.execute(selectSQL)
البیانات أوامر استعراض'
do while not rs.eof
%>
<div align="center">
<center>
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse"
bordercolor="#111111" width="90%">
<tr>
<td width="100%" dir="rtl" bgcolor="#DFDFFF"><b><span lang="ar-sa"> : العنوان
<%response.write rs(subject)%></span></b></td>
</tr>
<tr>
<td width="100%" dir="rtl"><b><span lang="ar-sa"> التاریخ : <%response.write
rs(add_dat)%></span></b>
<p><b><span lang="ar-sa"> الخبر : <%response.write rs(body)%></span></b></td>
</tr>
</table>
</center>
</div>
<hr color="#DFDFFF" width="90%">
<%
rs.movenext
loop
ADO.close
%>
<!--#include file="pagefooter.txt" -->
سنقوم بحذف السطور المكتوبة باللون الأخضر في الأعلى، وهي الأسطر التي تقوم بعرض تاريخ الخبر
وعنوانه ونصه. وسنضع مكانها السطر التالي:
<b><a href="body.asp?field=tech_news&id=<%=rs("id")%>"><%response.write
rs("subject")%></a></b>
هذا السطر سيقوم بعرض عناوين الأخبار فقط، وستكون هذه العناوين على شكل روابط. هذه الروابط تتميز
بإرسالها (قيمة) للصفحة التالي. سنشرح معنى هذا الأمر في الدرس التالي.
(QueryString) استدعاء بیانات من القاعدة من خلال روابط استخدام
وكان الرابط على الشكل التالي : body.asp وضعنا في الدرس السابق رابط لصفحة
body.asp?field=tech_news&id=<%=rs("id")%>
وشرح معنى كل كلمة في الرابط. body.asp والآن سنقوم بتصميم صفحة
لنجري عليها التغييرات المطلوبة .سأقوم body.asp وقم بإعادة حفظها باسم teach.asp قم بفتح صفحة
بجميع التغييرات مرة واحدة، ثم سأقوم بشرحها بعد ذلك ..فلنجري هذه التعديلات معا:
<%@ Language=VBScript CodePage = "1256"%>
<html dir=rtl>
<!--#include file="pageheader.txt" -->
<!--#include file="connection.txt" -->
<%
field=request.querystring("field")
id=request.querystring("id")
selectSQL="select * from "&field&" where id="&id
set rs=ADO.execute(selectSQL)
%>
<p align="center"><b><font face="Simplified Arabic" size="5"
color="#C11111"><%response.write rs("subject")%></font></b><p align="center">
<p align="left"><font face="Simplified Arabic" size="3"><%response.write
rs("add_dat")%></font></p>
<p><b><font face="Simplified Arabic" size="3"><%response.write
rs("body")%></font></b></p>
<%ADO.close%>
<!--#include file="pagefooter.txt" -->
والآن، لنتعلم معاني الأوامر الجديدة في هذه الصفحة. السطر التالي :
يعني: field=request.querystring("field")
: field= وذلك بكتابة field ١. تحديد متغير باسم
: request.querystring ٢. قيمة هذا المتغير سيتم استقبالها عن طريق رابط وذلك بكتابة
: ("field") وذلك بكتابة field ٣. سيشار للقيمة في الرابط بكلمة
لنتذكر الآن الرابط الذي قمنا بكتابته في الدرس السابق :
body.asp?field=tech_news&id=<%=rs("id")%>
من الصفحة السابقة إلى هذه الصفحة field انظر للكلمات التي تم تحديدها باللون الأخضر. لقد أرسلنا قيمة
وللتوضيح أكثر.. لنفترض أن الرابط كالتالي : tech_news . من خلال رابط. وهذه القيمة هي
body.asp?section=tech_news&id=<%=rs("id")%>
إلى field=request.querystring("field") في هذه الحالة يجب تغيير
field=request.querystring("section") .
له نفس وظيفة السطر الأول، مع الفارق في المتغير id=request.querystring("id") السطر الثاني
يتضح أن قيمة body.asp?field=tech_news&id=<%=rs("id")%> وقيمته. وبالنظر للرابط السابق
selectSQL ستتغير بتغير الموضوع. وذلك لأن القيمة تأخذ من قاعدة البيانات عن طريق أمر id المتغير
في الصفحة السابقة.
حيث تم استبدال اسم selectSQL . من الأمور الجديدة في هذا الدرس أيضا هو التطوير الذي حدث لأمر
وهذا يعطي مرونة أكبر. حيث أن Field) باسم متغير (في حالتنا هذه From) الجدول) بعد كلمة
أي أنه يمكننا استخدام هذه الصفحة لعرض جميع أقسام الأخبار Field .. ستتغير بتغير قيمة SelectSQL
في الموقع وليس فقط للأخبار التقنية.
وبإمكاننا وضع الشرط الذي يناسبنا.. وفي درسنا الحالي SelectSQL ل Where أيضا تم إضافة شرط
id في الجدول المطلوب في القاعدة تساوي قيمة المتغير id أي: عندما تكون قيمة : id="&id كان الشرط
في هذه الصفحة.
قمنا بشرحة في الدروس السابقة. Code بقية الnews.
asp الدرس العاشر :تصمیم صفحة
تعلمنا الكثير من الأمور في الدروس السابقة. لذا لن أحاول شرح المزيد من الأوامر في هذا الدرس، حتى
لذا سنقوم بالخطوات التالية tech.asp وشابه جدا ل news.asp يكون خفيفا وسهلا. فتصميم صفحة
لإنشاء الصفحة:
. tech_news بنفس مواصفات جدول general_news ١- افتح قاعدة البيانات وصمم جدولا باسم
ملاحظة: بإمكانك بدلا من تصميم الجدول من جديد. نسخ الجدول الحالي، وذلك بعمل الخطوات التالية.
تظليل الجدول. ·
ضع مؤشر الفأرة على اسم الجدول واضغط بزر الفأرة الأيمن. ·
من القائمة التي ستظهر. Copy اختيار ·
.Past في المساحة البيضاء الفارغة اضغط مرة أخرى زر الفأرة الأيمن واختر منه ·
سيظهر لك صندوق حوار يسألك فيه عن اسم الجدول، فاكتب في الخانة البيضاء المخصصة لاسم ·
Structure : وتحت هذه الخانة البيضاء ستجد ثلاثة خيارات هي .general_news الجدول
اختر الخيار .Append Data to Exiting Table و Structure and Data و Only
.Structure Only الأول
.ok واضغط على ·
احفظ قاعدة البيانات. ·
وأجر التعديلات التالية عليها. news.asp واحفظها باسم tech.asp ٢- افتح صفحة
غير الجملة الترحيبية (التي كانت ليكم آخر المستجدات على الساحة التقنية) لتتناسب مع الصفحة ·
الجديدة. أفضل استبدال كلمة (التقنية) بكلمة (العالمية) فقط.
إلى tech_news غير اسم الجدول "selectSQL="select * from tech_news في عبارة ·
general_news
وهو : body.asp في الرابط لصفحة المقال ·
إلى tech_news غير <%("rs("id=%>=id&body.asp?field=tech_news
general_news
وفي الدرس التالي سنصمم صفحة البحث .news.asp بهذه الخطوات البسيطة نكون قد انتهينا من صفحة
search.asp تصمیم صفحة
وقم بحفظها باسم tech.asp لن يأخذ الكثير من الوقت. افتح صفحة search.asp تصميم صفحة
ثم امسح الأوامر التي بداخلها. أي اسمح من الصفحة التالي: search.asp.
<%@ Language=VBScript CodePage = "1256"%>
<html dir=rtl>
<!--#include file="pageheader.txt" -->
<p align="center"><font face="Simplified Arabic"> إلیكم آخر
التقنیة المستجدات في الساحة </font></p>
<!--#include file="connection.txt" -->
<%
منه أوامر اختیار الجدول واستدعاء البیانات'
selectSQL="select * from tech_news order by add_dat desc"
set rs=ADO.execute(selectSQL)
أوامر استعراضالبیانات'
if not rs.eof then
do while not rs.eof
%>
<div align="center">
<b><a href="body.asp?field=tech_news&id=<%=rs("id")%>"><%response.write
rs("subject")%></a></b>
</div>
<hr color="#DFDFFF" width="90%">
<%
rs.movenext
loop
else
end if
ADO.close
%>
وقم بعمل التالي: (Normal). ثم ارجع لنمط التصميم العادي في الفرونت بيج
Textbox. ومنها Form ومنها Insert اختر قائمة
سيظهر لك التالي:
Reset Submit
امسح زر Reset بالضغط عليه فنحن لسنا بحاجة له وبإمكانك وضع المربع في منتصف الصفحة. وذلك
واختيار (توسيط) من شريط الأدوات في الفرونت بيج. ثم اتبع الخطوات التالية:
فتسطر لك : Form Properties اضغط على مربع النص بزر الفأرة الأيمن، ستظهر لك قائمة اختر منها
الشاشة التالية:
Options: ثم اضغط على زر Sent to other اختر منها
ستظهر لك الشاشة التالية:
في مثالنا هذا، Form . اكتب اسم الصفحة التي سترسل إليها القيمة المدخلة في هذا ال Action في خانة
search_result.asp وسنرسل القيم إلى صفحة بعنوان Form كنوع من أنواع ال Textbox استخدمنا
سيتم فيها البحث عن هذه القيم وعرضالنتائج .وهذه هي الصفحة التي سنقوم بتصميمها في الدرس التالي.
POST : و GET الفرق بين
الاختلاف بينهما ببساطة هو: Get. واجعله Post فقم بتغيير الاختيار Method أما في خانة
سيخفي القيم المرسلة. إي إن كنت تود إرسال قيم سرية من صفحة لأخر (ككلمة المرور Post : ·
Post. مثلا (فبإمكانك اختيار
ستظهر القيمة المرسلة للصفحة الثانية في شريط العنوان. وهذا مفيد في حالة البحث، Get : ·
حيث سيشاهد الباحث الكلمة التي بحث عنها في شريط العنوان فسيتأكد إن كان قد كتبها بشكل
صحيح أم لا .
Ok. ومرة أخرى Ok اضغط زر
Form Field Properties مرة أخرى اضغط بزر الفأرة الأيمن على مربع النص. واختر هذه المرة
فستظهر لك الشاشة التالية:
Ok. اكتب اسم الحل. ثم اضغط Name في خانة
فستظهر لك Form Field Properties واختر هذه المرة Submit. اضغط بزر الفأرة الأيمن على زر
الشاشة التالية:
في مثالنا هذا. سنكتب :ابحث. Submit . الكلمة التي تود أن تظهر بدلا من Value/lable اكتب في خانة
كالتالي: search.asp صفحة Code أخيرا.. سيكون
<%@ Language=VBScript CodePage = "1256"%>
<html dir=rtl>
<!--#include file="pageheader.txt" -->
<form method="GET" action="search_result.asp">
<p align="center">
<input type="text" name="keyword" size="20"></p>
<p align="center"><input type="submit" value=" ابحث " name="B1"></p>
</form>
<!--#include file="pagefooter.txt" -->
التي ستبحث عن الكلمة المطلوبة، وتعرض search_result.asp في الدرس التالي، سنصمم صفحة
النتائج.
search_result.asp تصمیم صفحة البحث وعرضالنتائج
كالتالي: Code ستجد ال .search_result.asp وقم بحفظها باسم search.asp افتح صفحة
<%@ Language=VBScript CodePage = "1256"%>
<html dir=rtl>
<!--#include file="pageheader.txt" -->
<form method=>"GET" action="search_result.asp">
<p align="center">
<input type="text" name="keyword" size="20"></p>
<p align="center"><input type="submit" value=" ابحث " name="B1"></p>
</form>
<!--#include file="pagefooter.txt" -->
والآن.. لنقم بالتغييرات المطلوبة. أولى هذه التغييرات هو إعلام البرنامج أن هنالك (متغير) يجب أخذ قيمته
والذي يحتوي على الكلمة المطلوب البحث keyword هذا المتغير هو serach.asp من الصفحة السابقة
للقيام بهذه المهمة. لذا قم Request.QueryString عنها .وكما فعلنا في الدرس التاسع، سنستخدم
بمسح هذه الأسطر :
<form method="GET" action="search_result.asp">
<p align="center">
<input type="text" name="keyword" size="20"></p>
<p align="center"><input type="submit" value=" ابحث " name="B1"></p>
</form>
واكتب بدلا منها:
<%
keyword=request.querystring("keyword")
%>
Select: والآن سنقوم بالبحث عن الكلمة في الجدول بعد استقبالها من صفحة البحث باستخدام أمر
<%@ Language=VBScript CodePage = "1256"%>
<html dir=rtl>
<!--#include file="pageheader.txt" -->
<!--#include file="connection.txt" -->
<%
keyword=request.querystring("keyword")
SelectTechSQL="select * from tech_news where subject like '%"&keyword&"%' "
set rs=ADO.execute(SelectTechSQL)
%>
<!--#include file="pagefooter.txt" -->
تغني عن علامة ( = ). ويمكن أن تعبر Like كلمة . Like هنا أننا أضفنا كلمة Select الملاحظ في أمر
عن مساواة كلية أو جزئية. ولتوضيح ذلك، لنفترض المثال التالي: إن قمنا باستخدام المساواة الكلية وبحثنا
عن "خالد" فستظهر لنا النتائج التي تحتوي على كلمة "خالد". أما إن استخدما المساواة الجزئية فستظهر لنا
النتائج التي تحتوي على: خالد، خالدا، الخالد، الخالدون، خالدون .. الخ
فنكتبه Keyword وبعدها اسم المتغير .. في مثالنا هو Like للتعبير عن المساواة الكلية نكتب ·
"&keyword&" : بالصيغة التالية
وبعدها اسم المتغير بين علامات النسبة المؤوية .. في Like للتعبير عن المساواة الجزئية نكتب ·
'%"&keyword&"%' : فنكتبه بالصيغة التالية Keyword مثالنا هو
عندما تكون القيمة في Tech في هذا المثال هو: اختر أي شي من جدول Select والمقصود في عبارة
للتوضيح لنفترض المثال التالي: . Keyword مساوية أو مشابهة للقيمة في المتغير Subject العمود
لديك في القاعدة العناوين الثلاثة التالية:
متطورة وسهلة. ASP ١. لغة
سهلة ومتطورة. PHP ٢. لغة
ممتعة. ++C ٣. البرمجة ب
عند إدخال كلمة "لغة" للبحث عنها، سيظهر لنا أول عنوانين كنتائج للبحث. حيث أن أمرنا يبحث في
العنوان.
select * from " إن كنا نود تغيير حقل البحث، فبإمكاننا تغيير اسم العمود الذي يتم البحث فيه.. كأن نكتب
في حال رغبتنا بالبحث في نص الموضوع وليس " '%"&keyword&"%' tech where body like
عنوانه. أما إن أردنا البحث في كافة الحقول، فعلينا كتابتها جميعا والربط بينها باستخدام أحد دوال الربط
: Or مرة باسخدام SelectTechSQL لنعد كتابة . Or المنطقيةوهي
SelectTechSQL="select * from tech_news where subject like '%"&keyword&"%' or body
like '%"&keyword&"%' "
في هذه الحالة سيتم عرض النتائج الذي توجد بها كلمة البحث في:
١. العنوان.
٢. المحتوى.
٣. العنوان والمحتوى.
و Tech_news ) وللبحث في كلا الجدولين Tech_news الأمر السابق سيبحث عن الكلمة في جدول
بإمكاننا كتابة أمر لكل جدول، كالتالي: ( General_news
<%@ Language=VBScript CodePage = "1256"%>
<html dir=rtl>
<!--#include file="pageheader.txt" -->
<!--#include file="connection.txt" -->
<%
keyword=request.querystring("keyword")
الأخبار التقنیة أوامر البحث في جدول '
SelectTechSQL="select * from tech_news where subject like '%"&keyword&"%' or body
like '%"&keyword&"%' "
set rsTech=ADO.execute(SelectTechSQL)
أوامر البحث في جدول الأخبار العامة '
SelectGeneralSQL="select * from tech_news where subject like '%"&keyword&"%' or body
like '%"&keyword&"%' "
set rsGeneral=ADO.execute(SelectGeneralSQL)
%>
<!--#include file="pagefooter.txt" -->
لا تنسى أن تضع ملف الربط بقاعدة البيانات، وذلك لأننا سنحتاج لقراءة بعض البيانات منها. بعد كتابة
علينا كتابة أوامر عرض النتائج. وهي بسيطة قمنا بكتابتها سابقا في الدرسين السابع Select أوامر
. SelectGeneralSQL وأخرى ل SelectTechSQL والثامن. سنكتب واحدة ل
<%@ Language=VBScript CodePage