Asp


IRANCITY

مدیر بازنشسته
2007-04-03
488
85
مقدمه

مقدمه و معرفي

در اين دوره ي آموزشي ، فرض ما بر اين است كه شما دوستان با html و تا حدي هم اسكريپت نويسي (vbs و js) آشنا هستيد و احتمالا صفحات وبي را هم طراحي نموده ايد . قصد ما اين است كه شما را با تكنولوژي asp كه كاربرد فراواني در طراحي سايتها و صفحات حرفه اي تر دارد آشنا كنيم .
پس از مطالعه ي اين دوره شما ميدانيد ASP چيست چه كاربردي دارد و چگونه مي توانيد يك برنامه ي كاربردي (يك سايت) بنويسيد كه از اين تكنولوژي استفاده مي كند .

صفحات سرويس دهنده فعال(Active Srerver Pages) يك تكنولوژي در زمينه برنامه نويسي در سرويس دهنده ها مي باشد كه توسط شركت مايكروسافت براي ايجاد صفحات HTLM پويا در اينترنت وشبكه هاي داخلي (interanet)طراحي شده است .

ASP چيست ؟
بر خلاف HTML ، ASP يك زبان نيست ، يك برنامهُ كاربردي مثل FrontPage يا Word* هم نيست ؛ بلكه ASP يك تكنولوژي براي ساخت صفحات وب پويا است .
ASP بر اين اساس بنا شده است كه با HTML براي ايجاد صفحات وب پويا استفاده شود. در حقيقت ASP* كدهاي HTML را ايجاد مي نمايد.
به طور كلی يك صفحهُ ASP* از سه قسمت زير تشكيل ميشود : (SomePage.asp)
1) متون ساده ای كه به طور مستقيم در صفحة نمايش نشان داده مي شوند .
2) كد های HTML كه براي مرورگرچگونگی نمايش متن را تعيين می كنند. اين كدها بين دو علامت < > قرار می گيرند و در سمت سرويس گيرنده اجرا می شوند و به آنها تگ گفته مي شود .
3) معمولاً قسمتی هم كد ASP . اين كدها بين دو علامت قرار می گيرند و در سمت سرويس دهنده اجرا می شوند .
ويژگي هاي منحصر به فرد ASP كه در يك HTML ساده نمي توان به آن دست يافت عبارتند از :
· مي توانيد كدهايي بنويسيد كه در سرويس دهنده ي وب اجرا شود .
· اشيائي دارد كه با استفاده از آنها كارهاي زيادي مي توانيد انجام دهيد مثل Request ، Response و غيره كه در قسمتهاي بعدي آنها را شرح مي دهيم .
· مي توان با استفاده از اشياء اكتيوايكس قابليتهاي ASP را گسترش داد .
· با استفاده از ASP مي توانيد اطلاعات مورد نظر خود را با پايگاه داده هاي مختلف (مثل Access يا SQL Server و ... رد و بدل كنيد)
به طور كلي مي توان گفت محدوديتي در اين كه چه كاري با ASP مي توانيد انجام بدهيد نداريد و تقريبا هر سايت وبي كه امروزه در اينترنت وجود دارد با ASP قابل انجام است .

كارهايي كه ASP مي تواند انجام دهد ولي HTML نمي تواند :
1. با بروز درآوردن (update) يك فايل متني يا محتويات يك پايگاه داده مي توان صفحات وب رابدون نوشتن كد HTML ي ويرايش كرد .
2. ساختن صفحات وب در جهت علاقه كاربرد
3. اطلاعات را از فرمها دريافت و در يک پايگاه داده ذخيره نمايد .
4. ساختن صفحات تبليغاتی با استفاده از يك مجموعه اشكال گرافيكي مختلف .
5. يک شمارنده صفحه ايجاد نمايد .
6. گرفتن ورودي از كاربر ، و برگرداندن اطلاعات به همان كاربر با توجه به اطلاعات دريافتي
7. و ....


تفاوت اصلي HTML محض با ASP در اينست كه HTML روي مرورگر تفسير يا ترجمه مي شود و روي سرويس دهنده اجرا نمي شود ، در حاليكه ASP روي سرويس دهنده اجرا مي شود و حسن آن در اينجاست كه با نوشتن كدي كه روي سرويس دهندهُ وب اجرا مي شود ، به امكانات بيشتري دست خواهيد يافت .
در درس بعد با سرويس دهنده ي وب آشنا مي شويد .
 

IRANCITY

مدیر بازنشسته
2007-04-03
488
85
سرويس دهنده ي وب چيست

سرويس دهنده ي وب چيست

تا به حال به اين مساله فكر كرده ايد كه وقتي آدرسي را در مرورگر خود مي نويسيد(ie,netscape,…) چه اتفاقاتي مي افتد كه منجر به نمايش يك سري متون و تصاوير مي شود (و يا گاهي اوقات ممكن است به دلايل خاصي به شما اجازه ي ديدن آن صفحات را ندهد).
زماني كه يك صفحهُ HTML درخواست مي شود :
· ابتدا اين تقاضا به يك كامپيوتري كه سرويس دهنده ي وب (WebServer) نام دارد ارسال مي شود . ( مهمتزين هدف هر سرويس دهنده ی وبی , سرويس دادن به صفحات html است . )
· سرويس دهنده ي وب تقاضايي كه از مرورگر آمده رامي خواند و سپس ،
· صفحه مربوطه رادرسرويس دهنده پيدامي كند .
· صفحه ي وب يافته شده را از طريق شبكه به مرورگر درخواست كننده مي فرستد.

asp_l2_image001.gif
در مورد صفحات ASP نيز روال كار به همين منوال است ، با اين تفاوت كه در مرحله ي سوم پس از اين كه سرويس دهنده ي وب ، صفحه ي وب را پيدا كرد (در صورتي كه پسوند asp داشته باشد) ابتدا قسمتهايي از صفحه كه حاوي كدهاي ASP* است را ترجمه كرده ، اجرا مي كند و كدهاي HTML ي را به عنوان خروجي اجراي كدهاي ASP توليد مي كند . سپس صفحه HTML آماده شده را براي مرورگر مي فرستد . به همين دليل اگر شما در مرورگر خود View Source كنيد هيچ اثري از كد ASP مشاهده نخواهيد كرد .
asp_l2_image002.gif

خوب بنابراين , برای اين كه كار خود را برای يادگيری ASP شروع كنيم اول بايد يك سرويس دهنده ی وب مناسب انتخاب كرده و آن را روی سيستم خود نصب كنيم .
سرويس دهنده هايي كه ASP را پشتيباني مي كنند :

ما يكروسافت دو سرويس دهنده ی وب كه قابليت اجرای كدهای ASP را دارد معرفی نموده است :
· ( IIS ) سرويس دهندهُ اطلاعات اينترنت كه روی Win2000 , WinXP نصب می شود . اين برنامه همراه ويندوزهای ذكر شده ارائه شده است و با استفاده از يك Add Windows Component ساده می توانيد آن را روی سيستم خود نصب كنيد .

asp_l2_image003.gif

· يك محصول توليدي ديگري بنامChili ASP كه می توانيد آن را از سايت Chilisoft تهيه كنيد .
Chili ASP وقتي يكبارInstall شد شما را قادر ميسازد تا ASP را روي سرويس دهنده هاي ديگري كه روي ويندوز95/NT اجرا مي شوند، اجراكنيد .بعلاوهChili ASP بزودي براي سرويس دهنده هايUNIX نيزقابل دستيابي خواهد بود.

· (PWS ) سرويس دهنده وب شخصي.
اين سرويس دهنده به عنوان يكی از سرويس پك های WinNT (WindowsNTOptionPack4) ارائه شده است و می توانيد آن را از آدرس http://www.microsoft.com/windows/ie/pws/default.htm?RLD=23 دانلود كنيد .
بعد از اينكه PWS يا IIS را نصب كرديم، خواهيم ديد در درايوی كه ويندوز روی آن نصب است, دايركتوريInetpub ايجاد شده است و دايركتوری های ديگری نيز تحت آن نصب شده است .كه عبارتند از :
IISSamples
homepage : كه شامل مثالهايي ازصفحاتASP مي باشد .
Scripts : اين زيردايركتوري خالي است كه يك مكان پيش فرض براي اسكريپتهايASP مي باشد كه ايجاد مي كنيم.
WebPub : اين زيردايركتوري خالي است كه يك دايركتوري مجازي مخصوص است كه براي فايلهاي منتشر شده از طريق ويزاردPublish است .
wwwroot كه ريشهُ مسير سايت وب شما مي باشد . كه خود شامل زير دايركتوريهاي زيادي است ، و مكاني است كه دايركتوريهاي فيزيكي سايت وب خود را بايد در آنجا ايجاد كنيد . براي قابل استفاده كردن سرويسهاي وب و اينكه مطمئن باشيم تمام صفحاتي كه ايجاد مي كنيم براي هر شخصي روي اينترنت يا شبكه محلي قابل دسترس است . بايد روي دكمه start button در پنجره PWS كليك كنيم . با اين كار سرويسهاي وب شروع به بالا آمدن مي كند و تمام صفحات اختصاصي را تحت پرونده يwwwroot براي دنياي بيرون قابل دستيابي مي كند . با نوشتن يك برنامه ساده اين مساله برايتان روشن تر می شود .
asp_l2_image004.gif

باتوجه به شكل در می يابيم كه PWS ، در واقع به كامپيوتر مايك آدرس URL داده است كه اگر روی آن كليك كنيم ما را به HomePage خودمان خواهد برد و اين HomePage يك فايل با نام default.htm يا default.asp می باشد كه در دايركتوری ريشه وب يعنی c:\Inetpub\wwwroot قرار دارد . بنابراين آدرس http://jet600 در مثال بالا معادل با آدرس فيزيكی d:\inetpub\wwwroot است .
همانطور كه احتمالا خودتان نيز متوجه شده ايد , نوشتن و تست كردن يك برنامه و يا سايت ASP نيازی به اتصال به اينترنت ندارد و شما می توانيد روی كامپيوتر خودتان نيز يك سرويس دهنده ی وب داشته باشيد و همزمان مرورگری را باز كنيد كه نقش سرويس گيرنده ی وب و يا درخواست دهنده ی صفحات را بازی می كند , و بدينوسيله برنامه ی خود را تست و اجرا كنيد . كافی است برنامه های ASP خود را نوشته (در فايلهايي با فرمت html و با پسوند asp) و آنها را در مرورگر خود ببينيد البته توجه داشته باشيد كه فايل ASP شما بايد در مسير ريشة وب (C:\Inetpub\wwwroot) قرار داشته باشد در غير اينصورت بايد مسير آن را برای سرويس دهنده وب خود بشناسانيد تا همه بتوانند با استفاده از URL به آن دسترسی داشته باشند.
برای اين منظور مبحث دايركتوريهای مجازی مطرح می شود كه در درس بعدی به آن می پردازيم .

 

IRANCITY

مدیر بازنشسته
2007-04-03
488
85
دايركتوريهای مجازی

دايركتوريهای مجازی

خوب دوستان از اين جا به بعد وارد عمل مي شويم و براي فهم مطالب نياز داريم که قبلا کارهايي را انجام داده و مواردي را مشاهده کنيم .

در صورتي که با ويندوز XP کار مي کنيد , حتما IIS را روي سيستم خود نصب کرده ايد (اگر اين کار را نکرده ايد سريعا اقدام کنيد ) . با استفاده از منوي Start وارد Control Planel شده يکي از گزينه هاي Switch to Classic View يا Performance and Maintenance را کليک کنيد و سپس گزينه ي Administrative Tools را انتخاب نماييد , در صفحه ي Administrative Tools مورد Internet Information Services را دوبار کليک کنيد .با استفاده از اين ابزار , مي توانيد کامپيوتر خود را به عنوان يک سرويس دهنده ي وب تنظيم و پيکربندي نماييد .
شما تحت Internet Information Services , نام کامپيوتر خودتان را مشاهده خواهيد کرد . طبق شکل زير گزينه ها را يکي يکي باز کنيد تا به گزينه ي Default Web Site برسيد . روي اين گزينه کليک راست کرده و New/Virtual Directory را انتخاب نماييد .
asp_l3_image04.jpg
ويزاردي به شما امکان اضافه کردن يک دايرکتوري مجازي به سرويس دهنده ي وب تان را مي دهد . کليد Next را کليک کنيد . در صفحه ي نمايش داده شده از شما درخواست شده است نامي را تايپ کنيد . اين نام در واقع نام سايت شما است که از طريق آن مي توانيد به محتويات سايت دسترسي داشته باشيد .
asp_l3_image03.jpg
پس از اينکه نام مورد نظر خود را تايپ کرديد Next را کليک کنيد در مرحله ي بعد شما بايد يک مسير فيزيکي را روي سيستم خود مشخص کنيد .(مي توانيد از دکمه ي Browse براي ساده شدن اين کار استفاده نماييد )

asp_l3_image05.jpg
همانطور که مي بينيد من مسير F:\My Documents\LearningASP را براي اين منظور انتخاب کرده ام . بنابراين هر برنامه اي که براي سايت Test نوشتم بايد در مسير F:\My Documents\LearningASP قرار بگيرد .
در مرحله ي بعد به شما اين امکان داده مي شود که اختيارات لازم را به کاربرانتان بدهيد . اين قسمت را با گزينه هاي پيش فرض رها کرده و با کليک Next ويزارد را تکميل مي کنيم .
حال فايل زير را در NotePad تايپ کنيد :







Hello The Time Is Exactly In Web Server Land



و با نام Default.asp در مسيری که اخيرا انتخاب کرديد (F:\My Documents\LearningASP) ذخيره نماييد . در IIS طبق شکل زير فايلتان را انتخاب کرده , کليک راست کنيد و Browse را کليک کنيد .

asp_l3_image06.jpg
اگر مرورگر پيش فرضتان IE با شد , صفحه ي زير را مشاهده خواهيد نمود . در واقع برنامه ي شما که در مسير F:\My Documents\LearningASP (يا هر مسيری که در سيستم خود انتخاب کرده ايد) قراردارد از طريق آدرس سايتي که ساخته ايد اجرا شده و نتيجه ي آن به شما نمايش داده شده است .
براي اجراي اين برنامه لزومي ندارد که از IIS استفاده کنيد . راه ديگر اجراي برنامه اين است که IE را باز کرده و آدرس سايت خود را در قسمت آدرس آن بنويسيد (براي اين مثال http://localhost/Test)

asp_l3_image02.jpg

اين برنامه در حال حاضر ساعت سيستم شما را نشان مي دهد چون سرويس دهنده , همان سيستم خودتان است , ولي اگر فضايي را در اينترنت اجاره کنيد ويا از سايتهايي مثل Brinkster فضاي مجاني دريافت کنيد و برنامه ي خود را به آنجا Upload نماييد برنامه ساعت سيستمي را نشان مي دهد که سرويس دهنده ي وب در آنجا قرار دارد . بد نيست امتحان کنيد ! به شما تبريک مي گويم . اولين برنامه ي ASP خود را نوشته و اجرا کرديد , بدون اينکه ASP بلد باشيد . فکر مي کنم حالا زمان مناسبي است که براي شما دايرکتوري مجازي را تعريف کنم :
مسير(دايرکتوري)مجازي , يك دايركتوری روی سرويس دهنده ي وب است (اين مسير واقعا روي هيچ رسانه اي ايجاد نمي شود)، اين دايركتوريها سايت وب شما را از ساختار دايركتوري روي هاردديسك مستقل مي گرداند. بنابراين طرح سايت شما را از طرح فيزيكي سيستم فايل کاملا جدا مي شود , کافي است مسير URL را با مسير واقعي مقايسه نماييد .
براي تمرين درس اين جلسه به شما توصيه مي کنم IIS را اجرا کنيد و با کليک راست روي آيتم هاي سمت چپ , و انتخاب Properties از منوي ظاهر شده , ويژگي هاي مختلف سايت وب خود را مشاهده نماييد و به امکاناتي که اين ابزار براي پيکربندي سرويس دهنده ي وب در اختيار شما قرار داده است دقت کنيد . اگر گزينه ها کمي برايتان مبهم است می توانيد راهنماي کاملي را از خود اين ابزار دريافت کنيد , براي اين منظور کافي است آدرس http://localhost/iishelp/iis/misc/default.asp را در مرورگر خود تايپ کنيد و يا در همان IIS روي گزينه ي Default Web Site کليک راست کرده گزينه ي Browse را از منوي ظاهر شده انتخاب کنيد .

asp_l3_image01.jpg
خوب دوستان خسته نباشيد . نگران هم نباشيد که هنوز چيزي از ASP ياد نگرفته ايد , اين مقدمات براي شروع کار لازم بود از جلسات بعد بيشتر وارد برنامه نويسي خواهيم شد .
 

IRANCITY

مدیر بازنشسته
2007-04-03
488
85
اسكريپت نويسي

اسكريپت نويسي
  • زبان هاي اسكريپتي
مطمئنا تا به حال , اگر اسکريپتي ننوشته باشيد , نام آن را شنيده ايد . مي دانيد اسکريپت چيست ؟
می توانيم همراه کدهای HTML دستوراتی را به کار ببريم که به زبان HTML تعلق ندارند و خاصيت اجرايي دارند . به اين دستورات خارجي که به همراه زبان HTML به کار برده می شوند اسکريپت می گويند .
وقتي صفحه اي توسط مرورگر نمايش داده مي شود ، اسكريپتها به ميزبان اسكريپت فرستاده مي شوند و توسط موتور اسكريپت تفسير مي شود. (ميزبان اسكريپت برنامه اي است كه مي تواند برنامه اي به زبان ديگر را اجرا كند ).
هر زبان اسكريپتی به مفسر خاص خود احتياج دارد بنابراين يک برنامه به زبان VBScript بايد به مفسر VBScript فرستاده شود و يک برنامه به زبان JScript بايد به مفسر JScript فرستاده شود. Internet explorer 4 و ويرايشهاي بالاتر آن هر دو مفسر VBScript و JScript را دارد ، در حاليكه Netscape Navigator 4 فقط مفسر Javascript را دارد ، اما صفحات سرويس دهنده فعال ( ASP ) هر دو مفسر VBScript و JScript را در اختيار دارد .
  • انواع اسکريپت
وقتی که يک مرورگر به تگ های اسکريپتی برخورد می کند ، موتور اسکريپت مناسب را برای تفسير و اجرای تگهای اسکريپت فراخوانی می کند. اين موتور اسکريپت در واقع يک مفسر و يا مترجم کدهاي اسکريپتي است , آنها را مي فهمد و اجرا مي کند .
نکته ای که در اينجا مطرح می شود اين است : لزومي ندارد که موتور اسکريپت حتما در سمت کاربر (مرورگر يا سرويس گيرنده) قرار داشته باشد. بلکه می تواند در سمت سرويس دهنده نيز مقيم شود .
  • اسكريپتي كه توسط مرورگر تفسير مي شود اسكريپت سمت سرويس گيرنده ( Client Side Script ) نام دارد ، اين اسكريپت مجموعه دستورالعمل هايي است كه توسط سرويس گيرنده ( client ) پردازش مي شودبدون اينكه با نيآزي به برقراري ارتباط با سرويس دهنده داشته باشد .
  • اسكريپتي كه توسط سرويس دهنده ی وب تفسير مي شود ، اسكريپت سمت سرويس دهنده (Server Side Script) ناميده مي شود . اين اسكريپت مجموعه دستورالعمل هايي است كه توسط سرويس دهنده پردازش مي شود ، و نتايج حاصل از آن (به شکل HTML محض)به سرويس گيرنده ارسال مي شود .
دو درس بعد به بررسی هر يک از اين اسکريپت ها و نحوه ي استفاده از آنها مي پردازد .
 

IRANCITY

مدیر بازنشسته
2007-04-03
488
85
اسکريپتهاي سمت سرويس گيرنده

  1. اسکريپتهاي سمت سرويس گيرنده
همانطور که در درس قبلی هم اشاره کرديم اسكريپت هاي سمت سرويس گيرنده ، اسكريپتهايي هستند كه توسط مرورگر و در سمت کاربر اجرا می شوند. ضعف اصلي اين اسكريپت ها در اين است كه اولا : وابسته به نوع مرورگر مي باشند و ثانيا : كد آنها به سادگی توسط كاربر ديده مي شود ، يعني كاربر مي تواند با استفاده از انتخاب view/source درIE4 (و ويرايشهاي بعد) , يا view/page sourceدر Netscape Navigator كد برنامه را ببيند .
اضافه كردن اسكريپت هاي سرويس گيرنده به صفحات HTML
همان طور كه مي دانيم مرورگر، خودش HTML را تفسير مي كند ، پس اگر هر كدي غير ازHTML ببيند آن را براي تفسير به ميزبان اسكريپت مي فرستد ، اما مرورگر بايد بتواند زبان اسكريپتي را تشخيص دهد براي اين كار از تگ باز < SCRIPT> براي شروع اسکريپت و تگ بسته<Script/> براي پايان اسكريپت استفاده مي شود .به مثال زير توجه كنيد :
…کدها و نشانه هاي HTML در اين قسمت هستند ..........​
<SCRIPT LANGUAGE = VBSCRIPT>
…کدهای VBScript در اين محل قرار گرفته اند ..........​
…کدها و نشانه هاي HTML در اين قسمت هستند ..........
و اما اگر بخواهيم از کدهاي JavaScript استفاده کنيم کافي است به جاي VBSCRIPT (در ضمن به جاي VBScript مي توانيم بنويسيم VBS)در قسمت Language بنويسيم : JavaScript​
در يک صفحه ي HTML مي توانيد هم از زبان VBScript استفاده کنيد و هم از JavaScript البته همانطور که متوجه شديد هر يك تگ مخصوص به خود را دارند , بنابراين کافي است براي نوشتن کد اسکريپت به تگي که به کار مي بريد دقت کنيد.
اين کدها هر جاي صفحه که نوشته شوند در همان نقطه اجرا می شوند به جز مواردی که به صورت تابع (Function) یا زيربرنامه (Procedure که به آن روال برنامه نويسی هم مي گويند) و يا رويداد نوشته شده باشند . در اين صورت هنگام فراخواني آن تابع يا روال و يا رخ دادن آن رويداد خاص , اسکريپت مربوطه اجرا خواهد شد . به مثال زير توجه کنيد :
< SCRIPT LANGUAGE = VBSCRIPT >
sub mouse_onclick()
… Vbscript code goes here
End sub

اين كد فقط هنگامي كه روي ماوس كليك شود اجرا مي گردد .
نكته مهمي كه در در اسكريپت هاي سمت سرويس گيرنده وجود دارد اين است كه اين برنامه ها با پسوند htm. و html. ذخيره مي شوند و براي اجرا شدن نياز به پسوند خاصی ندارند . بر خلاف اسکريپتهاي سرويس دهنده , که در درس بعدي بررسی خواهند شد .
 

IRANCITY

مدیر بازنشسته
2007-04-03
488
85
اسکريپتهاي سمت سرويس دهنده

  1. اسکريپتهاي سمت سرويس دهنده
خوب دوستان به جايي رسيديم که مي توانيم ASP را شروع کنيم .
همانطور که از مطالب قبلی دريافتيد , زماني که يک فايل HTML از سرويس دهنده ي وب درخواست مي شود , سرويس دهنده بدون توجه به اين که داخل آن فايل چه اسکريپتهايي وجود دارد آن را به سمت مرورگر ارسال مي کند و بقيه ي کارها را به مرورگر واگذار مي نمايد . و لي در مورد اسکريپتهاي سمت سرويس دهنده گفتيم که اين اسکريپتها توسط سرويس دهنده ی وب اجرا مي شود , پس برخلافت صفحات HTML , سرويس دهنده بايد صفحاتي را که حاوي کدهاي سمت سرور هستند , بخواند . براي اين سرويس دهنده بتواند بين صفحات HTML ساده و صفحاتي که حاوي کدهاي سرويس دهنده هستند تمايز قائل شود , از پسوند asp. استفاده مي نماييم . بنابراين , هر وقت وب سرور , درخواستي با پسوند asp. دريافت نمود , بعد از يافتن صفحه , اول خودش محتويات آن را پردازش مي کند و سپس خروجی را به مرورگر ارسال مي نمايد .
ساختار يک صفحه با پسوند asp عموما به شکل زير است :

...... کدهای HTML در اين قسمت قرار مي گيرند.....


...... کدهاي سمت سرويس گيرنده در اين قسمت قرار مي گيرند .......


< SCRIPT LANGUAGE=VBSCRIPT RUNAT=SERVER>
.....اسکريپتهای سمت سرويس دهنده (ASP) در اين قسمت قرار مي گيرند .......
با توجه به اين ساختار در مي يابيم که :
<BLOCKQUOTE><BLOCKQUOTE><OL>با استفاده از دستور و يا مي توان زبان کدهاي سمت سرويس دهنده را تعيين نمود . اگر هيچ يک از اين دستورها را استفاده نکنيم به طور پيش فرض VBScript در نظر گرفته مي شود .
برای نوشتن کد سمت سرويس گيرنده (ويا همان کد ASP) از تگ هاي %> (نشانه ي شروع کد سرويس دهنده ) و <SPAN lang=en-us><B>
 

IRANCITY

مدیر بازنشسته
2007-04-03
488
85
اشياء Asp

اشياء ASP
در اين جلسه مي خواهيم کليد قدرت
ASP را به دستتان بدهيم . بله , ابزاري که تکنولوژي ASP با استفاده از آن می تواند کارهاي بسياري انجام دهد , بهتر است بگويم همه ي کارهاي خود را به وسيله ي آنها انجام مي دهد . اين ابزار چيزي نيستند جز 5 شئ اصلي که در ادامه توضيح مختصر و در درسهاي بعدي شرح کامل آن را خواهيم آورد . البته همانطور که قبلا هم متذکر شديم , علاوه بر اين اشياء که همگي به طور ذاتي براي ASP تعريف شده اند , اشياء , عناصر و اکتيوايکس هاي مورد نيازتان را نيز مي توانيد به صفحات ASP تان اضافه کرده و از قدرت آنها استفاده نماييد . اما بهتر است اول با اشياء داخلي و اصلي ASP آشنا شويد و نحوه ي استفاده و همچنين موارد استفاده ي آنها را ياد بگيريد , سپس در حين دروس چگونگي کاربرد اشياء ActiveX هم مطرح خواهد شد .
اولين موضوعي که بايد با آن آشنا شويد , مفهوم شئ است . با مفهوم شئ در دنياي واقعي آشنا هستيد : يک صندلي , يک کتاب و يک کامپيوتر همگي شئ هستند . هر شئ خواصي (Properties) دارد مثل : رنگ , جنس , نوع , اندازه و از اين قبيل . هر شئ کار خاصي نيز انجام مي دهد : تلفن زنگ مي زند و.... , در اصطلاح شئ گرا به اين کارها , متد (method) گفته مي شود .
هر شئ با خواص و متدهايش شناخته مي شود .
اشياء در برنامه نويسي نيز مفهوم مشابهي دارند , يعني براي خود , خواص و متدهايي دارند .
اولين مساله اي که در يک برنامه ي وب با آن سروکار داريم ارتباط بين سرويس گيرنده و سرويس دهنده است . ما بايد با استفاده از اطلاعاتي که از سرويس گيرنده مي گيريم , نوع درخواست او را مشخص کنيم و جزئيات اين درخواست را به سرويس دهنده بفرستيم , تا سرويس دهنده با توجه به درخواستي که از او شده , پاسخ مناسب را براي سرويس گيرنده بفرستد . {اين سناريو را هميشه در ذهن داشته باشيد} , براي اين منظور در ASP شئ Request به معني درخواست و شئ Response به معني پاسخ تعريف مي شوند . شئ Request خواص و متدهايي دارد که به ما امکان دريافت اطلاعات از کاربر را مي دهد و شئ Response داراي خواص و متدهايي است که امکان تهيه ي يک پاسخ مناسب براي کاربر و ارسال آن را مي دهد . با هر يک از اين اشياء در درس خود به طور کامل آشنا خواهيد شد . ما براي منظور خود , عموما چندين صفحه تعريف مي کنيم و آنها را به عنوان سايت خود معرفي مي کنيم . اين مجموعه صفحات با استفاده از شئ Application (برنامه ي کاربردي)به يکديگر پيوسته مي شوند . شئ ديگري که در asp از آن استفاده مي شود , شئ Session ( به معني جلسه )است . اين شئ به ما اين امکان را مي دهد که به تنظيمات هر کاربري به طور جداگانه دسترسي داشته باشيم و آنها را بررسي کنيم .
شي Server يک سري متدهاي کلي را براي ما فراهم می کند . به عنوان مثال متد ايجاد اشياء جديد ، تنظيم ويژگی TimeOut اسكريپتها و تبديل متن به HTML يا URL ها و از اين قبيل . با مرور و با نوشتن چند برنامه با اين شئ و کاربرد آن بيشتر آشنا مي شويد .
شيي ObjectContext به همراه
MTS ( سرويس دهندهّ تراكنشي مايكروسافت ) استفاده ميشود که شرح آن از حوصلة اين بحث خارج است .
اگر ابهامات زيادی در اين توضيحات برايتان بوجود آمده اصلاً نگران نباشيد !! کمی صبر ، و با دقت خواندن قسمتهاي بعدی همة اين ابهامات را برطرف خواهد کرد.
 

IRANCITY

مدیر بازنشسته
2007-04-03
488
85
معرفی شئ Request در ASP

قسمت اعظم کاری که با ASP انجام می شود گرفتن داده از کاربر و ايجاد پاسخ مناسب به آن است . به مثال زير توجه کنيد :
  • <LI dir=rtl>سند HTML از کاربر ميخواهد اطلاعاتی را وارد کند ، مانند يک کلمه کليدی برای جستجو
    <LI dir=rtl>بعد از وارد کردن اطلاعات مورد نظر ، کاربر کليدی را کليک کرده و داده ها را به ميزبان مي فرستد
    <LI dir=rtl>اين داده ها به يک اسکريپت ASP در کامپيوتر ميزبان می رسد .
  • صفحه ASP يک HTML توليد مي کند – که در اينجا نتايج جستجو را در بر خواهد داشت – و آن را به کاربر برمی گرداند .
اما کاربر چگونه داده ها را به ميزبان مي فرستد ؟ ارسال داده ها فرآيندی خودکار است و هيچ نيازی به دخالت شما ندارد. شئ Request عمليات لازم جهت اتصال مرورگر به Server را انجام مي دهد ، با استفاده ازاين شئ مي توان اطلاعاتي كه كاربر از طريق فرم ارسال می کند را دريافت كرده وبا استفاده از شئ ديگري به نام Response اطلاعات لازم را به كاربر برگرداند .

Request چيست ؟ زماني كه يك مرورگر وب يا ديگر برنامه هاي سرويس گيرنده از يك سرويس دهنده وب درخواست صفحه ای را مي كنند ، مي گوييم كاربر ( سرويس گيرنده ) يك Request ساخته است . جهت ساختن يك Request كاربر بايد صفحه خاصي را بااستفاده ازيك آدرس (معمولاURL) در مرورگر خود بارگذاری کند و با استفاده از آن ، اطلاعات خود را به server بفرستد . شئ Request مسئول جمع بندي اين اطلاعات مي باشد .
اين شئ امکان دسترسي به همه ي اطلاعاتي که در يک درخواست يا Request , از مرورگر به سرويس دهنده , ارسال شده است , را به ما مي دهد . اين اطلاعات داخل پنج نوع مختلف مجموعه ي Request ذخيره مي گردد . به زبان ساده تر مي شود گفت : اطلاعاتي كه توسط Client فرستاده مي شوند در گروههايي طبقه بندي مي شوند كه مجموعه يا Collection نام دارند. درCollection هر داده اي بصورت جفتهاي نام ومقدار ذخيره مي گردد , بنابراين Collection مجموعه اي از اين نام مقدار (name\valve)هاست كه مربوط به يک شئ Request هستند .
کلکسيون يا مجموعه در واقع يک آرايه است , با اين تفاوت که به جاي انديس عددي از انديس هاي بر مبناي کلمات استفاده مي کند .به همين دليل غالباٌ به مجموعه , ديکشنري نيز مي گويند .اين ويژگي کلکسيون کار برنامه نويسي را تا حد زيادي ساده مي کند. در اين درس يک نمونه مشاهده خواهيد کرد .

مسأ لة مهم ديگر نحوة ارسال اطلاعات می باشد . داده ها می توانند به دو روش Get و Post ارسال گردند ، تفاوت اصلی اين دو روش در اين است که در روش Get مقدار داده ها به 255 کاراکتر محدود می باشد ، در حاليکه در روش Post اين محدوديت وجود ندارد. تفاوت ديگري که بين اين دو روش وجود دارد اين است که در روش Get اطلاعات ارسال شده در قسمت آدرس مشاهده مي شوند و در واقع به URL ضميمه مي گردند ولي در روش Post , اطلاعات از ديد کاربر محفوظ مي ماند . در ضمن اين دو روش از مجموعه هاي متفاوتي براي دريافت اطلاعات استفاده مي کنند . در روش Get از مجموعه ي QueryString و در روش Post از مجموعه ي Form استفاده مي شود .
همانطور که تا به حال بارها گفتيم Request يک شئ ASP است . بنابراين براي استفاده از آن در درجه ي اول بايد با ويژگي ها و متدهاي آن آشنا شويم .
ويژگي هاي شئ Request :
TotalBytes
اين ويژگي , مجموع بايتهايي را كه توسط كاربر فرستاده شده است ، در خود نگهداري مي كند .

ويژگي هاي مجموعه اي شئ Request
QueryString
مقادير متغيرهايي که توسط URL و بعد از علامت ؟ ارسال مي شود .
Form
حاوي مقادير عناصري است که از طريق <FORM> و با متد POST ارسال شده است.
ServerVariables
اين مجموعه حاوي اطلاعات مربوط به Server مي باشد كه در HTTPheader قرار دارد . از آنجايي كه در برنامه هاي كاربردي نيازي به استفاده از اين مجموعه نداريم به توضيح بيشتر نمي پردازيم .
Cookies
حاوي مقاديري است که کاربر آنها را با عنوان کوکي به سرور مي فرستد .
Client Certificate
اطلاعات اين مجموعه بوسيله مرورگر فرستاده مي شود و جهت كارهاي اينترنتي است كه روند تنظيم آن از حوصله اين بحث خارج است.
توابع شئ Request
BinaryRead (Count)
اين متد , داده هايي که از طريق مرورگر به سرويس دهنده , با متد POST فرستاده شده است را بازيابي مي کند و تعداد بايتهايي را که خوانده شده را برمي گرداند .
در درسهاي بعدي راجع به مجموعه هاي QueryString , Form , Cookies توضيحات بيشتري را همراه مثال ارئه مي دهيم.
 

IRANCITY

مدیر بازنشسته
2007-04-03
488
85
مجموعه QueryString

يك QueryString اطلاعاتی كه به Server فرستاده مي شود رابصورت جفتهاي name\value دارد و آنها را به همان شکل و بوسيله علامت ؟ به انتهاي URL مي چسباند . اگر اين نوع درخواست بيش از يك جفت نام/مقدار ايجادكند آنكاه آنها بوسيله علامت & از هم جدامي شوند .

محتواي مجموعه ي QueryString درموارد زير پر مي شود : 1- زماني كه اطلاعات فرم با متد GET به Server فرستاده مي شود :
<FORM Name=Logging Action= "RequestQuery.asp" Method=GET >
FirstName : <INPUT Type=TEXT Name="FIRST"><BR>
LastName : <INPUT Type=TEXT Name="LAST" ><BR>
<INPUT TYPE = "Submit">
</FORM>

با نوشتن اين کدها در يک صفحه ي html موجب نمايش يک فرم در صفحه خواهيد شد که دو جعبه متني براي ورود نام و نام خانوادگي شما دارد به علاوه ي يک دکمه , که با فشردن آن درخواست شما به سمت سرور خواهد رفت . از آن جايي که فرم نمايشي با متد Get تعريف شده است , درخواست شما به صورت QueryString ارسال مي شود و محتواي آن از اين قرار است : (با ورود مجيد , علوي زاده , به ترتيب در جعبه هاي متني) :
HTTP://"ServerName"/RequestQuery.asp?First=مجيد&Last=علوي زاده
نكته مهم در اينجاست : زماني كه فرمي با متد POST فرستاده مي شود اجازه بازيابي از طريق QuaryString را نداريم. 2- كليك كردن روي تگ a ای كه يك Querystring درخود دارد :
<A HREF=somepage.asp?name=value>querystring example </A>
زماني كه روي اين anchortag كليك شود يك متغير QueryString با نام name و مقدار value ايجاد مي شود.
3- به سادگي تمام با نوشتن كامل http در محل آدرس: مثال :
Http://"HomePage"/LearnASP/RequestQuery.asp?First=مجيد&Last=علوي زاده
وقتي كليدEnter فشرده شد QueryString ايجاد مي شود .
حال بايد ببينيم اطلاعاتي كه از طريق QueryString ارسال مي شود را چگونه مي توان بازيابي نمود .
  • <LI dir=rtl type=square>
    ساده ترين روش براي بازيابي اطلاعات QueryString بصورت زير است :
    <%= Request.QueryString %>
    با اين روش همه جفتهاي نام / مقدار باز گردانده مي شود بنابراين اگر جفتهاي name/value به ترتيب روبرو باشد
    . براي امتحان کردن اين موضوع برنامه ي زير را اجرا کنيد .
  • روش ديگر كه براي بازيابي Querystring معمول است بصورت زير مي باشد :
    <%Request.QueryString (property_name )%>
    با اين روش يك جفت نام/ مقدار خاص برگردانده مي شود كه بوسيلهproperty-name مشخص مي گردد بنابراين براي بدست آوردن مقدار
    First در مثال بالا بصورت زير عمل مي كنيم :
    <%=Request.QueryString ("First")%>
    اين دستور مقدار مجيد ( در مثال بالا ) را برمي گرداند .
برای درک کامل مفهوم QuaryString به مثال زير توجه کنيد. کد زير را در ويرايشگر دلخواه خود نوشته و آن را در دايرکتوری مجازي اي که ساخته ايد ذخيره نماييد(نام فايل را RequestQuery.asp انتخاب کنيد) :
<%
'
--------------------------------
'RequestQuery.asp

'
--------------------------------
%>

<%@ Language=VBScript %>
<HTML> <HEAD> <TITLE> Request QueryString </TITLE>
<BODY bgColor=LemonChiffon>
<PRE>
<FORM Name = Q1 Action = "RequestQuery.asp" Method = GET >
Type Your First Name:
<INPUT Type = "Text" Name = "name" ><BR>
Type Your Last Name :
<INPUT TYPE = "Text" Name = "name" ><BR>
Type Your Password :
<INPUT TYPE = "Text" Name = "pass" ><BR>
<INPUT Type = "Submit" Value = "Login">
</FORM> <BR><HR><P>
The information received from the QueryString object was :<P>
Name =
<%=Request.QueryString("name")%><BR>
Password =
<%=Request.QueryString("pass")%><BR>
The 'name' propety's count is :
<%=Request.QueryString("name").Count %><BR>
<% If not IsEmpty(Request.QueryString("name")) Then %>
First Name =  <%=Request.QueryString("name")(1)%> <BR>
Last Name =  <%=Request.QueryString("name")(2)%> <BR>
<%End If%> <P>
<%=Request.QueryString%> <BR>
<%Request.ServerVariables("QueryString")%> <BR>
<PRE>
</BODY> </HTML>

با اجرای اين برنامه در مرورگر خود فرم زير را مشاهده خواهيد کرد : و با کليک بر دکمه Login اطلاعات شما توسط QueryString ارسال می گردد . اگر به قسمت آدرس در مرور گر خود نگاه کنيد نحوه ارسال QueryString راخواهيد ديد . توصيه مي کنيم روشهاي مختلف بالا را براي ايجاد QueryString امتحان کنيد .
 

IRANCITY

مدیر بازنشسته
2007-04-03
488
85
منتظر ادامه مقلات باشید
در ضمن از بچه ها می خوام تو این بخش منو یاری بدن.
با تشکر Ak47((irancity((
 
بالا