# زبان های اسکریپتی > Classic ASP >  آموزش کامل ASP

## aryaei2000

بخش اول
يك فايل ASP مى تواند حاوى متون، Tagهاى HTML و اسكريپت ها باشد. اسكريپت ها در يك فايل ASP بر روى سرور اجرا مى شوند.به عنوان پيش نياز چه چيزى را بايد بدانيد؟
قبل از شروع، بايد با مسائل زير را تا حدودى آشنا باشيد
WWW و HTML و مسائل اوليه ساخت صفحات Web 
يك زبان اسكريپت نويسى همچون JavaScript يا VBScript 
_ASP چيست؟_ 
ASP حروف اختصارى Active Server Pages است. 
ASP برنامه اى است كه درون IIS اجرا مى شود. 
IIS حروف اختصارى Internet Information Services است. 
IIS به عنوان يك مولفه رايگان با ويندوز 2000 عرضه مى شود. 
IIS همچنين به عنوان جزئى از Windows NT 4.0 Option Pack است. 
Option Pack مى تواند از سايت مايكروسافت داون لود شود. 
PWS نسخه كوچكتر - ولى كاملا عمل كننده - از IIS است. 
PWS را مى توانيد در سى دى ويندوز 95 يا 98 خود پيدا كنيد. 
_سازگارى ASP_ 
ASP تكنولوژى مايكروسافت است. 
براى اجراى IIS بايد ويندوز NT نسخه 4.0 يا بالاتر را داشته باشيد. 
براى اجراى PWS بايد ويندوز 95 يا بالاتر را داشته باشيد. 
ChiliASP تكنولوژى است كه ASP را بدون نياز سيستم عامل ويندوز اجرا مى كند. 
InstantASP تكنولوژى ديگرى است كه ASP را بدون نياز به سيستم عامل ويندوز اجرا مى كند. 
يك فايل ASP چيست؟ 
يك فايل ASP تقريبا شبيه به يك فايل HTML است. 
يك فايل ASP مى تواند حاوى متن، XML، HTML، و اسكريپت باشد. 
اسكريپت هاى درون يك فايل ASP بر روى Server اجرا مى شود. 
يك فايل ASP پسوند "asp." دارد.

----------


## aryaei2000

بخش دوم
_فرق ASP با HTML چيست؟_ 
وقتى كه Browser (كاوشگر اينترنت) درخواست يك فايل HTML را بكند، Server آن فايل را بر مى گرداند. وقتى كه Browser درخواست يك فايل ASP را بكند، IIS درخواست مربوطه را به موتور (هسته‌اى كه وظيفه اصلى را بازى مى كند) ASP ارجاع مى دهد. موتور ASP فايل ASP را خط به خط مى خواند، و اسكريپت هاى درون فايل را اجرا مى كند. در نهايت فايل ASP به عنوان يك فايل HTML ساده به Browser برگردانده مى شود. 
_ASP چه كارى مى تواند براى شما انجام دهد؟_ 
به طور ديناميكى محتويات يك Web page را ويرايش يا اضافه كند. به درخواست هاى كاربر كه از فرم هاى HTML ارسال شده اند پاسخ دهد. به هر گونه اطلاعات با بانك اطلاعاتى دسترسى پيدا كرده و نتايج را به Browser برگرداند. سفارشى نمودن (Customize) يك Web page تا براى كاربران مختلف مفيدتر باشد. مزاياى استفاده از ASP به جاى CGI و Perl سرعت و سادگى است. فراهم كردن امنيت بيشتر به گونه اى كه كد ASP شما از طريق Browser قابل مشاهده نيست. از آن جايى كه فايلهاى ASP به شكل HTML برگردانده مى شوند، ميتوانند بوسيله هر Browserى مشاهده گردند. برنامه نويسى درست ASP مى تواند ترافيك شبكه را به حداقل برساند. شما مي توانيد ASP را بدون نياز به يک سرور خارجي اجرا کنيد. براي انجام اين کار شما بايد Microsoft's Personal Web Server (PWS) يا (Internet Information Server (IIS را در رايانه خود نصب کنيد.

----------


## aryaei2000

_بخش سوم_
_چگونه ASP را در رايانه خود اجرا کنيد؟_
شما مي توانيد ASP را بدون سرور خارجي در رايانه شخصي خود اجرا کنيد. براي انجام اين کار بايد Microsoft's (Personal Web Server (PWS يا (Internet Information Server (IIS را در رايانه خود نصب کنيد.اگر در مورد اجراي ASP جدي هستيد، بايد حداقل ويندوز 98، نسخه دوم (Second Edition) داشته باشيد.اگر در مورد اجراي ASP بسيار جدي هستيد، بايد از ويندوز 2000 استفاده کنيد. 
_چگونه PWS را در ويندوز 95 نصب کنيد و ASP اجرا کنيد؟_
(Personal Web Server (PWS همراه ويندوز 95 نيست!
براي اجراي ASP بر روي ويندوز 95، شما بايد "Windows NT 4.0 Option Pack" را از مايکروسافت داون لود کنيد.
داون لود "Windows NT 4.0 Option Pack"
چگونه PWS را در ويندوز NT نصب کنيد و ASP اجرا کنيد؟
(Personal Web Server (PWS همراه ويندوز NT نيست!
براي اجراي ASP بر روي ويندوز 95، شما بايد "Windows NT 4.0 Option Pack" را از مايکروسافت داون لود کنيد.
داون لود "Windows NT 4.0 Option Pack"
چگونه PWS را در ويندوز 98 نصب کنيد و ASP اجرا کنيد؟
1.شاخه Add-ons را در سي دي ويندوز 98 خود باز کنيد، شاخه PWS را پيدا کرده و فايل setup.exe را اجرا کنيد. 
2.يک شاخه Inetpub در هارد شما ايجاد خواهد شد. آن را باز کنيد و شاخه wwwroot را پيدا کنيد. 
3.يک شاخه جديد درست کنيد و نام آن را چيزي شبيه به "MyWeb" بگذاريد. 
4.از يک ويرايشگر متن استفاده کنيد و کدهاي ASPي را بنويسيد، فايل را به نام "test1.asp" را در شاخه "MyWeb" ضبط کنيد. 
5. مطمئن شويد که وب سرور شما اجرا است - برنامه نصب يک آيکن جديد در Task Bar شما اضافه کرده است (اين نشانه PWS است). بر روي آن کليک کنيد و دکمه Start را در پنجره اي که آمده بزنيد. 
6.Browser خود را باز کنيد و تايپ کنيد "http://localhost/MyWeb/test1.asp"، تا اولين صفحه ASP خود را ببينيد.

----------


## aryaei2000

بخش چهارم
_چگونه PWS را در ويندوز Me نصب کنيد و ASP اجرا کنيد؟_
(Personal Web Server (PWS در ويندوز Me وجود ندارد !
چگونه IIS را در ويندوز 2000 نصب کنيد و ASP اجرا کنيد؟
1.از دکمه Start به Settings و سپس Control Panel برويد. 
2.در پنجره Control Panel آيکن Add/Remove Programs را انتخاب کنيد. 
3.در پنجره Add/Remove Programs گزينه Add/Removes Windows Components را انتخاب کنيد.
4.در پنجره جديد گزينه Internet Information Services را انتخاب کرده، OK را بزنيد. 
5.يک شاخه Inetpub در هارد شما ايجاد خواهد شد. آن را باز کنيد و شاخه wwwroot را پيدا کنيد. 
6.يک شاخه جديد درست کنيد و نام آن را چيزي شبيه به "MyWeb" بگذاريد. 
7.از يک ويرايشگر متن استفاده کنيد و کدهاي ASPي را بنويسيد، فايل را به نام "test1.asp" را در شاخه "MyWeb" ضبط کنيد. 
8.مطمئن شويد که وب سرور شما اجرا است - برنامه نصب يک آيکن جديد در Task Bar شما اضافه کرده است (اين نشانه IIS است). بر روي آن کليک کنيد و دکمه Start را در پنجره اي که آمده بزنيد. 
9.Browser خود را باز کنيد و تايپ کنيد "http://localhost/MyWeb/test1.asp"، تا اولين صفحه ASP خود را ببينيد.

----------


## aryaei2000

_بخش پنجم_
_چگونه IIS را در ويندوز XP نصب کنيد و ASP اجرا کنيد؟_
نکته: شما نمي توانيد ASP را روي ويندوز XP نسخه خانگي (Home Edition) اجرا کنيد. 
1.از دکمه Start به Settings و سپس Control Panel برويد. 
2.در پنجره Control Panel آيکن Add/Remove Programs را انتخاب کنيد. 
3.در پنجره Add/Remove Programs گزينه Add/Removes Windows Components را انتخاب کنيد. 
4. در پنجره جديد گزينه Internet Information Services را انتخاب کرده، OK را بزنيد. 
5. يک شاخه Inetpub در هارد شما ايجاد خواهد شد. آن را باز کنيد و شاخه wwwroot را پيدا کنيد. 
6. يک شاخه جديد درست کنيد و نام آن را چيزي شبيه به "MyWeb" بگذاريد. 
7.از يک ويرايشگر متن استفاده کنيد و کدهاي ASPي را بنويسيد، فايل را به نام "test1.asp" را در شاخه "MyWeb" ضبط کنيد. 
8. مطمئن شويد که وب سرور شما اجرا است - برنامه نصب يک آيکن جديد در Task Bar شما اضافه کرده است (اين نشانه IIS است). بر روي آن کليک کنيد و دکمه Start را در پنجره اي که آمده بزنيد. 
9. Browser خود را باز کنيد و تايپ کنيد "http://localhost/MyWeb/test1.asp"، تا اولين صفحه ASP خود را ببينيد.

----------


## aryaei2000

شما نمي توانيد سورس کد هاي ASP را بوسيله انتخاب گزينه View Source در Browser مشاهده کنيد، شما فقط خروجي فايل ASP را مشاهده مى‌کنيد که HTML ساده است. زيرا که اسکريپت ها قبل از اين که نتايج به Browser فرستاده شود بر روي سرور اجرا مى‌گردد. قواعد اساسي نحو يک فايل ASP به طور عادي دقيقا همانند HTML حاوي Tagهاي HTML است. اگر چه، يک فايل ASP مي تواند همچنين حاوي Scriptها نيز باشد. اين اسکريپت ها به وسيله علامت هاي %> و <% احاطه شده اند. اسکريپت هاي سرور بر روي سرور اجرا مي شود و مي تواند حاوي هر گونه expressions، دستورات (Statements)، توابع، يا عملگرهايي باشد. 
_آبجکت Response_
متد Write مربوط به آبجکت Response براي فرستادن محتويات به Browser استفاده مي شود. به عنوان مثال، دستورات زير براي فرستادن متن "سلام دنيا!" به Browser استفاده مى‌شود. 


<%
response.write("سلام دنيا!")
%>

----------


## aryaei2000

JavaScript
براي اين که JavaScript را به عنوان زبان پيش فرض براي يک صفحه خاص مشخص کنيد مي بايست از راهنماهاي زباني در ابتداي صفحه خود استفاده کنيد: 

<%@ language="javascript"%>
<html>
<body>
<%
Response.Write("Hello World!")
%>
</body>
</html>
نکته: JavaScript برعکس VBScript به بزرگ يا کوچک بودن حروف حساس است. شما مجبور خواهيد بود که وقتي زبان احتياج دارد، کد ASP خود را با حروف بزرگ يا کوچک بنويسيد. 
_ساير زبان هاي اسکريپ نويسي_
ASP همراه با VBScript و JScript (پياده سازي مايکروسافت از JavaScript) عرضه مي شود. اگر شما مي خواهيد که با زبان ديگري همچون PERL - REXX يا Phyton کد بنويسيد، مجبور خواهيد بود که موتور Script مربوط به آنها را نصب کنيد.
مهم: به خاطر اين که اسکريپت ها بر روي سرور اجرا مي شوند، به هيچ وجه لازم نيست Browserي که فايل ASP را نشان مي دهد از Scripting پشتيباني کند!
يك Cookie اغلب براى شناسائى كاربر استفاده مى‌شود. 
مثالها
Cookie خوش‌آمدگويى
چگونه يك Cookie خوش‌آمدگويى درست كنيم.

----------


## aryaei2000

_يك Cookie چيست؟_
يك Cookie اغلب براى شناسندن كاربر استفاده مى‌شود. يك Cookie يك فايل كوچك است كه سرور آن را در كامپيوتر كاربر جاسازى مى‌كند. هر بار كه همان كامپيوتر يك صفحه را درخواست مى‌كند، Cookie نيز فرستاده مى‌شود. با ASP شما مى‌توانيد هم مقادير Cookie را بسازيد و هم آنها را استخراج نماييد.
*چگونه يك Cookie بسازيد؟*
Response.Cookie براى ساختن Cookie استفاده مى‌شود.
توجه: Response.Cookie بايد قبل از تگ درج شود.
در مثال زير، ما يك Cookie درست خواهيد كردم و اسم آن را "firstname" مى‌گذاريم و مقدار "Alex" را به آن مى‌دهيم:
همچنين امكان دارد كه خصوصياتى را مثل تاريخ انقضاى cookie را به آن بدهيد: 
چگونه مقدار cookieها را استخراج كنيم
دستور "Request.Cookies" براى استخراج اطلاعات از cookieها استفاده مى‌شود.
در مثال زير، ما مقدار cookieى با نام "firstname" را استخراج كرده و در صفحه نشان داديم: 
خروجى:
Firstname=Alex 
_يك Cookie با كليد_
اگر يك cookie حاوى مجموعه‌اى از مقادير باشد، مى‌گوييم آن cookie دارى كليدهايى است.
در مثال زير، ما يك مجموعه cookie با نام "user" درست مى‌كنيم. cookie به نام "user" داراى كليدهايى است كه حاوى اطلاعاتى راجع به كاربر است.

<%
Response.Cookies("user")("firstname")="John"
Response.Cookies("user")("lastname")="Smith"
Response.Cookies("user")("country")="Norway"
Response.Cookies("user")("age")="25"
%>
خواندن همه Cookieهابه كد زير نگاه كنيد:
<%
Response.Cookies("firstname")="Alex"
Response.Cookies("user")("firstname")="John"
Response.Cookies("user")("lastname")="Smith"
Response.Cookies("user")("country")="Norway"
Response.Cookies("user")("age")="25"
%>

----------


## aryaei2000

فرض كنيم كه سرور شما همه cookieهاى بالا را به كاربر فرستاده است. حالا ما مى‌خواهيم تمام cookieها را كه به كاربر فرستاده شده است را بخوانيم. مثال زير نشان مى‌دهد كه چگونه اين كار را انجام دهيم (توجه داشته باشيد كه در مثال پايين با استفاده از HasKeys چك مى‌كند كه آيا cookie كليد دارد يا نه؟

 

<html>
<body>
<%
dim x,y
for each x in Request.Cookies
response.write("<p>")
if Request.Cookies(x).HasKeys then
for each y in Request.Cookies(x)
response.write(x & ":" & y & "=" & Request.Cookies(x)(y))
response.write("<br />")
next
else
Response.Write(x & "=" & Request.Cookies(x) & "<br />")
end if
response.write "</p>"
next
%>
</body>
</html>
خروجى: 
firstname=Alex user:firstname=John user:lastname=Smith user: country=Norway user: age=25 _اگر Browser داراى پشتيبانى Cookie نباشد چه اتفاقي مى‌افتد؟_
اگر برنامه شما با Browserى سر و كار داشته باشد كه cookie را پشتيبانى نمى‌كند، بايد از روش‌هاى ديگرى براى انتقال اطلاعات از يك صفحه به صفحات ديگر در برنامه خود استفاده كنيد. دو راه براى انجام اين كار هست:

1. اضافه كردن پارامترها به URL
شما مى‌توانيد پارامترها را به URL اضافه كنيد:

 

<a href="welcome.asp?fname=John&lname=Smith">
Go to Welcome Page</a>
و مقادير موجود در "welcome.asp" را همچون مثال زير استخراج كنيد:

2. استفاده از form
شما مى‌توانيد از فرم‌ها استفاده كنيد. وقتى كه كاربر روى دكمه Submit كليك كند فرم ورودى‌هاى كاربر را به "welcome.asp" رد مى‌كند:

 

<form method="post" action="welcome.asp">
First Name: <input type="text" name="fname" value="">
Last Name: <input type="text" name="lname" value="">
<input type="submit" value="Submit">
</form>
مقادير موجود در "welcome.asp" را همچون اين مثال استخراج كنيد:


<%
fname=Request.form("fname")
lname=Request.form("lname")
response.write("<p>Hello " & fname & " " & lname & "!</p>")
response.write("<p>Welcome to my Web site!</p>")
%> 


مثالها
يك فرم با متد "get"
چگونه با استفاده از دستور Request.QueryString به كاربر عكس‌العمل نشان دهيد.
يك فرم با متد "post"
چگونه با استفاده از دستور Request.Form به كاربر عكس‌العمل نشان دهيد.
يك فرم با Radio Buttonها
چگونه با استفاده از دستور Request.Form و از طريق Radio Buttonها به كاربر عكس‌العمل نشان دهيد.

----------


## aryaei2000

_ورودى كاربر_
آبجكت Request مى‌تواند براى گرفتن اطلاعات از كاربر از فرم‌ها استفاده گردد.


<form method="get" action="simpleform.asp">
First Name: <input type="text" name="fname">
<br />
Last Name: <input type="text" name="lname">
<br /><br />
<input type="submit" value="Submit">
</form>


ورودى‌هاى كاربر مى‌توانند از دو طريق استفاده گردد: با Request.QueryString يا Request.Form

_Request.QueryString_
دستور Request.QueryString براى جمع كردن مقادير موجود در يك فرم با متد "get" استفاده مي شود. اطلاعات فرستاده شده از فرمى با متد "get" براي هر كسى قابل مشاده است (اين اطلاعات در قسمت آدرس Browser نشان داده مي شود) و در مورد مقدار اطلاعات محدوديت دارد.
اگر كاربر در فرمى با متد "get" مقدار "Bill" و "Gates" را وارد كنيد، URLى كه به سرور فرستاده مى‌شود شبيه به اين خواهد بود:


http://www.irandevelopers.com/simpleform.asp?fname=Bill&lname=Gates فرض كنيد فايل "simpleform.asp" حاوى اسكريپت زير است:

<body>
Welcome
<%
response.write(request.querystring("fname"))
response.write(" " & request.querystring("lname"))
%>
</body>

Browser خط زير در قسمت Body سند نشان خواهد داد:
Welcome Bill Gates
Request.Form 
دستور Request.Form براي جمع كردن اطلاعات از يك فرم با متد "post" استفاده مى‌شود. اطلاعات فرستاده شده از فرمى با متد POST براي بقيه غيرقابل مشاهده است و هيچ محدوديتى در مقدار اطلاعات فرستاده شده ندارد. اگر كاربر در فرمى با متد "post" كلمه "Bill" و "Gates" را تايپ كند، URLى كه به سرور فرستاده مى‌شود شبيه به اين خواهد بود:
http://www.w3schools.com/simpleform.asp 
فرض كنيد كه فايل "simpleform.asp" حاوى اسكريپت زير باشد:

<body>
Welcome
<%
response.write(request.form("fname"))
response.write(" " & request.form("lname"))
%>
</body> 
Browser خط زير در قسمت Body سند نشان خواهد داد:
Welcome Bill Gates

----------


## aryaei2000

_تصديق فرم يا تست معتبر بودن (درست بودن) مقادير ورودى_
ورودى كاربر بايد در Browser در هر جايى كه امكان داشت (با استفاده از اسكريپتهاى client) تصديق گردد. تصديق Browserى سريعتر است و زمان load شدن سرور را نيز كاهش مى‌دهد. در صورتى كه مقادير ورودى كاربر وارد Database مى‌شود لازم است كه معتبرسازى يا تصديق ورودى‌هاى كاربر بر روى سرور انجام شود. يك راه خوب براى تصديق ورودى‌هاى كاربر، به جاى فرستادن اطلاعات به يك صفحه ديگر، پست كردن آنها به خود فايل است. در آن صورت كاربر مى‌تواند خطاها را در خود صفحه‌اى كه فرم در آن قرار دارد مشاهده نمايد. اين پيدا كردن خطا را براى وى ساده‌تر مى‌كند.

----------


## aryaei2000

*برنامه کاربردي تحت وب چيست ؟* 
يك برنامه كاربردي تحت وب بايك وب سايت تفاوت دارد . يك وب سايت شامل اطلاعات ثابتي است كه از پيش آماده شده و به صورت فايل هاي HTML ذخيره شده اند .در اين حالت جهت حركت اطلاعات از سرويس دهنده به  سرويس گيرنده مي باشد . در واقع وب سايت اطلاعات را به كاربر ارائه مي دهد .  بين درخواست ها ، سرويس دهنده از عملكرد سرويس گيرنده اطلاعي ندارد . سرويس گيرنده مي تواند از يك محل به محل ديگر بپرد و اين كار روي وب سايت اوليه هيچ تاثيري ندارد ، چون هر يك از صفحات به صورت يك واحد كاملا جدا مي باشند . در واقع وب سايت شامل گروهي از فايل هاي HTML از هم جدا مي باشد . 
در مقابل ، يك برنامه كاربردي تحت وب ، اطلاعات را براي يك كاربر يا گروهي از كاربران به شكلي خاص فرمت كرده و ارائه مي دهد . در اين حالت ، جهت حركت اطلاعات دو طرفه مي باشد ؛ محتوياتي كه توسط مرور گر نمايش داده مي شوند ، بر حسب اطلاعات ورودي كاربر يا هويت وي تعيين مي گردند . 
بنابر اين يك برناها كاربردي تحت وب ، اطلاعات را به صورت ديناميكي ارائه مي دهد نه به صورت فايل هاي HTML ثابت . در واقع وظيفه برنامه ، فراهم كردن اطلاعات بر حسب شرايط است كه اين اطلاعات معمولا از پايگاه داده ( Database ) بدست مي آيد . برنامه كاربردي نه تنها اطلاعات مي دهد ، بلكه مي تواند از كاربر اطلاعات بگيرد و بكارهاي مختلف پاسخ مناسب دهد . به عبارت ديگر ، يك برنامه كاربردي ، عملكرد كاربر را از يك در خواست به درخواست ديگر رديابي مي كند . بنابراين كاربر مي تواند آن گونه كه در يك وب سايت به جستجو و گردش مي پردازد ، به شكل دلخواه تمام صفحات يك برنامه كاربردي را برسي و مشاهده كند . بلكه اين برنامه كاربردي است كه صفحات مناسب را در شرايط مقتضي به طور ديناميكي توليد كرده و به كاربر ارائه مي دهد .
براي نوشتن برنامه هاي كاربردي تحت وب از زبان هاي مختلفي مي توان استفاده كرد ، مثل : Perl , Python , Java , C , C ++ , Visual Basic حتي Quick Basic يا Script هاي Unix .  در هر صورت مواردي كه در زير به آنها اشاره مي شود جزء ضروريات يك برنامه كاربردي هستند : 
- ارتباط با يك پايگاه داده 
- سرعت
- كار با رشته ها 
- امنيت ( Security )
- تراكنش ها ( Tranaactions )

----------


## aryaei2000

*تراكنش چيست ؟* 
يك برنامه كاربردي تحت وب اغلب بايد كارهاي مختلفي انجام دهد كه هر يك از آنها براي تداوم اعتبار اطلاعات بايد به طور كامل انجام شوند . هنگام كار با يك پايگاه داده ، معمولا اين كار ها را بصورت يك تراكنش در نظر مي گيريم . يك تراكنش قرار دادي است كه موفقيت يا عدم موفقيت مجموعه اي از عمليات را تضمين مي كند كه در صورت عدم موفقيت ، اطلاعات بايد دست نخورده باقي بمانند . به عنوان يك نمونه كلاسيك ، مي توانيم يك حساب چك ( Checking Account ) را در نظر بگيريم . 
هنگامي كه يك چك را به حساب خود مي گذاريد ، بانك مبلغ مشخص شده را از حساب مربوطه برداشته و به حساب شما واريز مي كند . كل اين عمليات در صورتي موفقيت آميز خواهد بود كه برداشت و واريز پول به طور كامل انجام شود . در اين حالت عمل دو گانه برداشت از يك حساب و واريز به يك حساب ديگر را يك تراكنش مي گوييم .

----------


## aryaei2000

*تفاوت ميان برنامه هاي IIS و DHTML* 
برنامه هاي IIS ، برنامه هايي هستند كه برروي سرويس دهنده و تحت Microsoft Internet Information Server اجرا مي شوند . در مقابل ، برنامه هاي DHTML برنامه Microsoft Internet Explorer استفاده مي كنند و به اين ترتيب به ورودي هاي كاربر پاسخ سريع مي دهند . 
اين برنامه ها براي نوشتن بازي ها و شبيه سازي محيط و گرفتن اطلاعات از كاربر مناسب هستند . متاسفانه اين نوع برنامه ها به نسخه چهارم IE يا نسخه هاي بالاتر آن نياز دارند . با توجه به اين كه در اين كتاب به تفصيل در مورد ASP و مسائل حاشيه اي آن بحث خواهيم كرد ، بد نيست كمي بيشتر در مورد برنامه هاي IIS توضيح دهيم . چون هدف از يادگيري ASP ، نوشتن برنامه هاي IIS مي باشد كه بر روي سرويس دهنده اجرا مي شوند .
برنامه هاي IIS با چندين مرورگر مختلف و نسخه هاي متفاوت آنها سازگاري دارند . همچنين در محيط هاي مختلف Mak يا Unix نيز اجراء مي شوند . بنابر اين اين نوع برنامه ها براي نوشتن برنامه هاي تجاري كه مخاطبين زيادي دارند مناسب هستند ؛ چون دليلي ندارد همه كاربران از ويندوز استفاده كرده و يا نسخه IE را در اختيار داشته باشند. 
با توجه به اين كه برنامه هاي IIS برروي سرويس دهنده اجرا مي شوند ، براي به روز در آوردن آنها تنها كافي است كد موجود برروي سرويس دهنده را تغيير داد. اين نوع برنامه ها از هر محلي قابل دسترسي مي باشند . هنگامي كه يك برنامه IIS برروي سرويس دهنده نصب شده و به اجرا در آمد ، هر كامپيوتري كه بتواند به آن سرويس دهنده متصل شود مي تواند از آن برنامه استفاده كند . 
شما مي توانيد براي شناسايي كاربران ، به آنها نام و كلمه عبور اختصاص دهيد و هنگام برقراري ارتباط با برنامه كاربردي ، نام و كلمه عبور را در خواست كنيد . با توجه به اين كه تمام اطلاعات بر روي يك كامپيوتر ذخيره مي شوند ، هنگامي كه كاربر برنامه كاربردي را ترك كند ، هيچ نوع اطلاعاتي را از دست نمي دهد . 
در قسمت بعد ، در مورد چگونگي كاركرد برنامه هاي IIS بحث خواهيم كرد .

----------


## aryaei2000

_چگونگي در خواست فايل ها توسط مرورگر :_ 
هنگامي كه شما يك آدرس URL در فيلد آدرس مرورگر خود تايپ مي كنيد ، چند چيز اتفاق مي افتد . مرورگر ، آدرس وارد شده را تحليل كرده و پيغامي به سرويس دهنده نام ( Name Server ) مي فرستد تا نام مشخص شده (به عنوان مثال ، Microsoft . com ) را به يك آدرس IP ( Internet Protocol ) – (به عنوان مثال ، 207.84.25.32 ) ترجمه كند . سپس مرورگر با استفاده از آن آدرس IP به سرويس دهنده مربوطه متصل شده و فايل را درخواست مي كند . سرويس دهنده فايل را مي خواند و محتويات آن را به مرورگر بر مي گرداند . در اين مرحله مرورگر ، دستورات HTML آن فايل را تحليل و فرمت فايل راتعيين مي كند . بيشتر فايل هاي HTML درون خود به تصاوير گرافيكي اشاره مي كنند. اين اشاره ها به صورت رفرنس (Reference ) بوده كه هريك از آنها نيز بايك آدرس URL مشخص مي شوند . 
بنابراين كل اين عمليات براي تك تك تصاوير و يا فايل هاي ديگري كه با رفرنس به آنها اشاره شده است تكرار مي شود. به اين ترتيب پروسه نمايش يك فايل HTML شامل تعدادي تراكنش كوچك بين سرويس گيرنده ( يعني مرورگر ) و سرويس دهنده وب مي باشد .

----------


## aryaei2000

برنامه هاي IIS نيز تقريبا به همين صورت عمل مي كنند. ابتدا يك مرورگر يك صفحه را از سرويس دهنده درخواست مي كند . اين درخواست هميشه براي يك فايل خاص مي باشد . پاسخ سرويس دهنده به نوع فايل درخواستي بستگي دارد. اگر فايل مورد نظر از نوع HTML (با پسوند .htm يا .html ) باشد ، سرويس دهنده به سادگي محتويات فايل را مي خواند و محتويات آنرا به صورت يك رشته در آورده و براساس قوانين URL كد گذاري مي كند و سپس رشته حاصله را به مرورگر برمي گرداند . كل اين پروسه ، از درخواست تا پاسخ ، يك تراكنش مابين سرويس گيرنده و سرويس دهنده تلقي مي شود . سرويس گيرنده همواره تراكنش را شروع مي كند و سپس تا زمان رسيدن پاسخ از سوي سرويس دهنده منتظر مي ماند كه در اين زمان تراكنش كامل شده و خاتمه مي يابد . 
درخواست فايل از سرويس دهنده وب مشابه هنگامي است كه در Windows Explorer روي يك فايل شبكه اي ( فايلي كه برروي كامپيوتر سرويس دهنده قرار دارد ) دوبار – كليك مي كنيد ؛ البته با دو تفاوت : 
- سرويس دهنده وب هيچگاه اجازه نمي دهد كه برنامه محلي شما (يعني مرورگر ) فايل درخواستي را باز كرده يا درآن چيزي بنويسيد ؛ در عوض خودش فايل را باز مي كند و محتويات آن را برميگرداند .
- ارتباط مابين سرويس گيرنده و سرويس دهنده گذرا ( Transient ) است . براي برقراري ارتباط با سرويس دهنده وب نيازي به مشخص كردن نام درايوي كه فايل بر روي آن قرار دارد نيست . پس از اين كه سرويس دهنده وب به درخواست شما پاسخ داد، ارتباط را قطع مي كند. 
هنگامي كه تراكنش كامل شد ، سرويس دهنده وب ، سرويس گيرنده را به طور كلي از ياد مي برد . اگر بلا فاصله كليد Refresh ( موجود برروي نوار ابزار IE ) را كليك كنيد . سرويس دهنده وب ، آن تراكنش را تكرار مي كند و اصلا به خاطر نمي آورد كه 5 ثانيه قبل اين فايل توسط شما درخواست شده است .
اگر ارتباط براساس پروتكل استاندارد HTTP برقرارشود ، بيشتر فايل ها به چندين تراكنش نياز دارند ، يكي براي فايل Html اصلي و بقيه براي يكايك فايل هاي گرافيكي كه در فايل اصلي به آنها اشاره شده است . بنابراين براي نمايش يك فايل كه شامل 5 تصوير گرافيكي است ، مرورگر درخواست جداگانه به سرويس دهنده وب مي فرستد .

----------


## aryaei2000

*شي RESPONSE و استفاده از فايل هاي include* 
براي پاسخ گويي به مرورگر ، از متدهاي شيء Response استفاده مي شود . در واقع شيء Response راهي براي برقراري ارتباط با سرويس گيرنده است .
شيء Scripting Context :
اين شيء امكان دسترسي اشياء ActiveX خارجي به اشياء دروني ASP را فراهم مي كند. البته بهتر است به جاي اين شيء از شيء Object Context استفاده كنيد . براي گرفتن شيء Object Context نيز بايد متد Object Context() را فراخواني كنيد . 
شيء Scripting Context ، تمام اشياء ASP را درون خود جمع مي كند . هنگامي كه يك صفحه ASPكه شامل رفرنس هايي به اشياء ActiveX مي باشد اجراء ميشود ، ابتدا موتور ASP متد On Start Page هر يك از آن اشياء ActiveX را فراخواني كرده و شيء Scripting Context را به عنوان پارامتر به آن مي فرستد. اشياء ActiveX با استفاده از اين پارامتر مي توانند اشاره گر هايي به اشياء Server ، Application ، Request و Response به دست آورند. در اين جا ليستي از ويژگي هاي شيء Scripting Context را ملاحظه مي كنيد : 
• Server 
• Application
• Session
• Request
• Response

----------


## aryaei2000

هر يك از اين 5 ويژگي يك اشاره گر ( Pointer ) به يكي از اشياء دروني ASP بر مي گردانند . 
• توجه : Microsoft توصيه مي كند كه به جاي استفاده از شيء Scripting Context از متد get Object Context اگر چه امكان استفاده از شيء Scripting Context كماكان وجود دارد، ولي بايد بدانيد كه اين شيء از رده خارج شده و در برنامه هاي جديد خود نبايد از آن استفاده كنيد .

----------


## aryaei2000

_شيء Object Context :_
شيء Object Context به عنوان پل ارتباطي با MTS ( Microsoft Transaction Server ) تلقي مي شود. با MTS شما مي توانيد كاري كنيد كه اشياء ActiveX در تراكنش هايي كه صفحه ASP آغاز شده اند شركت كنند. همچنين با استفاده از شيء Object Context در هنگام نوشتن اشياء ActiveX مي توانيد به اشياء دروني ASP دسترسي پيدا كنيد . 
_
_

----------


## aryaei2000

*آشنايي با ساختار يك برنامه ASP* 
از نظر موتور ASP ، يك برنامه كاربردي عبارت است از مجموعه اي از تمام فايل و زير دايركتوري هاي ( Subdirectory ) موجود در يك دايركتوري كه شامل فايل Global . asa باشد . بيشتر برنامه هاي كاربردي ASP شامل فايل هاي ASP و فايل هاي Include ( با پسوند .inc ) هستند كه هر دوي آنها مي توانند تركيبي از HTML ، كد و فايل هاي گرافيكي باشند. البته شما مي توانيد فايل هاي ASP را با فايل هاي HTML يا هر فايل ديگري كه براي سرويس دهنده قابل شناسايي باشد تركيب كنيد . بالاترين دايركتوري در اين ساختار شامل فايل Global . asa است . اين فايل دايركتوري ريشه ( Root Directory ) برنامه كاربردي را مشخص مي كند . 
اولين باري كه يك كاربر يكي از فايل هاي ASP موجود در يكي از دايركتوري هاي برنامه را درخواست مي كند ، موتور ASP ساختار درختي درختي دايركتوري ها را به سمت بالا طي ميكند تا فايل Global . asa را پيدا كند و يا به ريشه وب ( Root Web Directory ) برسد . اين نكته از اهميت زيادي برخوردار است ، چون اگر شما چند برنامه كاربردي را درون هم قرار دهيد ( كه به آنها برنامه هاي كاربردي تودرتو – Nested Applications - مي گويند ) ، فايل Global . asa كه براي هر درخواست كاربر اجرا مي شود بستگي دارد به اين كه كاربر ابتدا كدام فايل را درخواست نمايد . چون نمي توان اولين درخواست كاربر را كنترل نمود ، بهتر است برنامه هاي ASP را درون هم قرار ندهيد ؛ مگر اين كه دليل موجهي براي اين كار داشته باشيد . ساختن يك برنامه كاربردي وب تحت IIS 4.0 به يك مرحله ديگر نيز دارد : شما بايد به IIS بگوييد كه دايركتوري مجازي ( Virtual Directory ) در برگيرنده فايل Global . asa ، دايركتوري ريشه برنامه كاربردي است .

----------


## aryaei2000

صرف نظر از اين كه كدام فايل درخواست شود، فايل Global . asa همواره اولين فايلي خواهد بود كه اجرا ميشود. بنابراين اگر در نظر داريد كاربر برنامه كاربردي شما را با صفحه خاصي كه مورد نظر شماست آغاز كند ، اين فايل بهترين جايي است كه ميتوانيد مرورگر را به آن صفحه هدايت كنيد .
برنامه كاربردي كه درشكل قبل ملاحظه فرموديد ، شامل چندين فايل ASP و دو زيردايركتوري به نام هاي images و include مي باشد. البته از نظر تعيين ساختار دايركتوري هاي يك برنامه كاربردي هيچ محدوديتي وجود ندارد ؛ شما مي توانيد همه فايل ها را درون يك دايركتوري قرار دهيد . ولي در عمل ، بهتر است كه فايل ها را بر اساس كارايي آنها دسته بندي كنيد چون اين كار ساختن و نگهداري برنامه را بسيار آسان تر مي كند . 
توجه : دايركتوري ريشه وب و دايركتوري ريشه برنامه ASP لزوما نبايد يكسان باشند. به عنوان مثال ، مي توانيد براي چندبرنامه كاربردي ASP ازيك فايل Global . asa استفاده كنيد. در اين شرايط مي توانيد فايل Global . asa را درون يك دايركتوري قرار داده و سپس هر يك از زير دايركتوري هاي درون آن را به عنوان يك دايركتوري مجازي تعريف كنيد كه بر اساس برنامه كاربردي مربوطه نامگذاري شده اند . ساختار دايركتوري موجود در شكل زير ، شامل 4 برنامه كاربردي است : 401k ، Paycheck ، Retirement ، Timesheet .
بالاترين دايركتوري ، كه HR Applications نام دارد، شامل فايل Global . asa است . هر زمان كه يك كاربر به يكي از 4 برنامه كاربردي موجود متصل شود ، موتور ASP ساختار درختي دايركتوري هارا بالا مي رود تا به دايركتوري  HR Applications كه در بر گيرنده فايل كه Global . asa است برسد . يكي از دلايلي كه مي توان براي مرتب كردن برنامه ها به اين شكل در نظر گرفت ، اين است كه ممكن است هر چهار برنامه از يك روش امنيتي استفاده كنند و يا ممكن است تمام برنامه ها از يك نوع روش براي برقراي ارتباط با پايگاه داده و يا از يك پايگاه داده مشترك استفاده كنند و شما بخواهيد اطلاعات اوليه را در فايل Global . asa تنظيم كنيد .

----------


## aryaei2000

*استفاده از فايل هاي Include :*
براي جلوگيري از تكرار كد يا دستورات HTML در صفحات ASP ، مي توانيد از فايل هاي خارجي استفاده كرده و آنها را در صفحات ASP خود بگنجانيد . يك فايل Include در يك فايل ASP از دستور INCLUDE استفاده مي شود . دستور INCLUDE مشابه اين است كه محتويات فايل include مورد نظر را درون يك صفحه ديگر قرار دهيد.در اين جا مثالي از يك دستور INCLUDE را مشاهده مي كنيد : 
<!--# INCLUDE = “C:\ include \my Include .inc” -- > اين دستور سبب مي شود كه سرويس دهنده آن را با محتويات فايل مشخص شده جايگزين كند. دو نوع دستور INCLUDE موجود است : يكي # INCLUDE FILE و ديگري # INCLUDE VIRTUAL . نوع اول براي مشخص كردن فايل به يك آدرس فيزيكي نياز دارد در حالي كه نوع دوم به آدرس مجازي به فايل اشاره مي كند . به هر حال از هر روشي كه استفاده كنيد، موتور ASP قبل از شروع پردازش دستورات ، آن را با محتويات فايل مورد نظر جايگزين مي كند . بنابر اين براي گنجانيدن يك فايل نمي توانيد از دستورات شرطي استفاده كنيد . به عنوان مثال ، كد زير به گونهاي كه انتظار مي رود عمل نخواهد كرد ؛ موتور ASP هر دو فايل را خواهد گنجاند :


< %
if my Var = True than
% >
< ! -- # INCLUDE FILE = “ C: \ include \ my Include . inc” -- >
< %
else
%>
< ! -- # INCLUDE FILE = “ C: \ include \ your Include . inc” -- >
< %
end if
% >

----------


## aryaei2000

هنگامي كه موتور ASP اين فايل را تحليل مي كند ، دو دستور INCLUDE را با فايل هاي نامبرده جايگزين مي كند و اين كار را قبل از اجراي دستور if…end if انجام مي دهد . پس باز هم تاكيد مي كنم : شما با استفاده از كد نمي توانيد براي موتور ASP تعيين كنيد كه كدام فايل را بگنجاند و يا اين كه اصلا يك فايل را بگنجاند يا خير.
_ارسال ايميل در ASP ساده و کار آمد_ 
با اين کد ساده می توان صفحه‌ای برای ارسال ايميل ايجاد کرد . اين کُد را يک هندی به نام مستعار Prince Joseph نوشته است و آنطور که گفته ملزومات سيستمی آن برای اجرا عبارتند از : يک ويندوز نسخه سرويس دهنده و SMTP Service بر روی IIS . اين دو صفحه با استفاده از کامپوننت يا ابزار CDO که توسط شرکت مايکروسافت ارائه شده کار می کنند .


<html><body>
<form id=frmMail method=post action=mailSend.asp>
TO:<input type=text name=txtTo size=30><br>
FROM:<input type=text name=txtFrom size=30><br>
SUBJECT:<input type=text name=txtSubject size=30><br>
BODY:<textarea rows="5" name=txtBody cols="28">
</textarea><br>
<input type=submit value="Send the Mail">
</form>
</body></html> 
mailSend.asp : 
<%@ Language=VBScript %>
<%
Dim objMail
Set objMail = CreateObject("CDONTS.NewMail")
objMail.From = Request.Form("txtFrom")
objMail.To= Request.Form("txtTo")
objMail.Subject= Request.Form("txtSubject")
objMail.Body= Request.Form("txtBody")
objMail.Send
Set objMail = Nothing
Response.Write "Mail should have been sent"
%>

----------


## aryaei2000

_يک شمارنده ساده_ 
اين برنامه يک مثال خوب از نحوه باز کردن ، خواندن و نوشتن داخل يک فايل است که نياز به هيچ نوع بانک اطلاعاتی هم ندارد . اين فايل را با اسم counter.asp ذخيره کنيد و در کنارش يک فايل متنی ساده به کمک NotePad و به نام database.inc ايجاد کنيد و در سطر اولش هم عدد صفر يا هر عدد ديگری را که مايليد پيش‌فرض شمارنده شما باشد بنويسيد. فراموش نکنيد که سطح دسترسی لازم برای نوشتن را نيز به اين فايل بدهيد . با کمی ابتکار می توان اين شمارنده را به نوع گرافيکی تبديل کرد. حتی می توانيد به تعداد صفحات سايت ، فايل ايجاد کنيد تا تعداد مشاهده هر صفحه را به تنهايی رديابی کنيد.


<%
Dim objFSO , objFile
set objFSO = createobject("scripting.filesystemobject")
set objFile = objFSO.opentextfile(server.mappath("database.inc")  )
'get the current count and store in counter
counter = clng(objFile.readline)
'add one to the current count
counter = counter + 1
'close file object
objFile.close
'write a new text object with the same name and new count
Set objFile = objFSO.CreateTextFile(server.mappath("database.inc  "), true)
objFile.writeline(counter)
'close file object
objFile.close
'
counter_length = len(counter)
'loop through the hit count and display the image
for i = 1 to counter_length
%>
<%= mid(counter,i,1) %>
<% 
next 
%>

----------


## aryaei2000

_
ورود اطلاعات فارسی با استفاده از جاوااسکريپت_ 
اگر قبلا اقدام به استفاده از زبان فارسی در كدهای خود و مخصوصا هنگام كار با Microsoft Access كرده باشيد به احتمال زياد با مشكلات موجود بر سر راه آشنا هستيد. يكی از مشكلات اساسی بر سر راه استفاده از زبان فارسی در بانكهای اطلاعاتی Microsoft Access در نحوه ورود اطلاعات می باشد. برای درك بهتر اين موضوع اينگونه عمل نماييد:
در ويندوز خود قابليت فارسی نويسی را فعال نماييد و پس از آن در Access يك Table با نام test وبا يك فيلد به نام test از نوع text ايجاد نماييد. سپس با استفاده از خود Access اطلاعاتی به زبان فارسی وارد نماييد. سپس از Access خارج شده و با استفاده از ASP به بانك اطلاعاتی Access متصل شده و اطلاعات وارد شده را خوانده و نمايش دهيد. مشاهده خواهيد نمود كه اطلاعات نمايش داده شده داخل مرورگر با اطلاعات وارد شده توسط شما در داخل Access متفاوت می باشد

----------


## aryaei2000

*برای حل اين مشكل چه بايد كرد؟*
برای حل اين مشكل بايد اطلاعات از خارج از Access و با استفاده از ASP و يك تابع Javascript كه صفحه كليد را در همه ويندوزها اعم از فارسی و انگليسی، فارسی نموده و امكان تايپ فارسی را فراهم ميكند، وارد شوند. روش كار به اين صورت است كه در يك فرم HTML و در داخل يك Input Box هنگام فشرده شدن هر كليدی از صفحه كليد، تابع Javascript فرا خوانده شده و معادل فارسی حرف وارد شده را نمايش ميدهد. 
برای نمايش حروف فارسی لازم است كه از charset=windows-1256 استفاده نماييد. فونت صفحه را نيز يكی از دو فونت Times New Roman و يا Tahoma انتخاب نماييد. اين دو فونت فونتهای استاندارد ويندوز بوده و برای ديده شدن متون فارسی نيازی به نصب فونت جديد روی سيستم کاربر نخواهد بود. Javascript استفاده شده در زير آمده است:
پس از طراحی فايل HTML نوبت به ايجاد فايل ASP می رسد. در فايل ASP بايد اطلاعات وارد شده در فرم HTML را دريافت نموده و در بانك اطلاعاتی Access توسط برنامه خود بنويسيد. نكته جالب اين است كه اگر وارد Microsoft Access شويد و اطلاعات وارد شده توسط برنامه خود را مشاهده نماييد اثری از حروف فارسی مشاهده نخواهيد کرد.
حال اگر دوباره توسط برنامه ASP اوليه به بانك اطلاعاتی متصل شويد و اطلاعات دريافت شده را داخل مرورگر نمايش دهيد اطلاعات به صورت فارسی نمايش داده ميشوند. لازم به ذكر است كه بايد از charset=windows-1256 در فايل ASP كه اطلاعات فارسی را نمايش ميدهد استفاده نماييد.

----------


## aryaei2000

_نقطه شروع کار با ASP شامل معرفی، کاربرد و مزايای ASP_ 
Active Server Pages فناوری شرکت ميکروسافت جهت توليد سايتهای پويای وب می باشد. بعبارت ديگر ASP يک روش توليد صفحات وب است که طراحان وب را قادر می سازد تا صفحات HTML را بگونه ای طراحی نمايند که اين صفحات برحسب مورد و در زمان فراخوانی بصورت خودکار ايجاد شوند. بسياری از سايتهای وب بزرگ و معروف از اين فناوری استفاده نموده اند، مانند:

• www.microsoft.com - Microsoft
• www.dell.com - Dell online
• www.bn.com - Barnes & Noble

----------


## aryaei2000

در ASP دستورالعمل ها (Script) بر روی سرور اجرا می شوند و سپس حاصل آن بصورت HTML به کامپيوتر کاربر ارسال می گردد. VBScript زبان پيش فرض دستورالعمل نويسی است، اما شما می توانيد از ديگر زبانهای دستورالعمل نويسی مانند JScript ، Perl استفاده کنيد.يک صفحه ASP مانند يک صفحه HTML است با اين تفاوت که پسوند نام فايل آن "asp." می باشد. همچنين يک صفحه ASP می تواند دستورالعملهای نزد سرور و نزد کاربر را همزمان درون خود داشته باشد. بعبارت ديگر در ASP معمولا از VBScript برای دستورالعملهای نزد سرور و از JavaScript برای دستورالعملهای نزد کاربر استفاده می گردد. دقت داشته باشيد که JScript و JavaScript دو زبان متفاوت هستند.
_قابليت های ASP_
• استقلال از مرورگر
ASP از مرورگر کاملا مستقل است زيرا تمامی دستورالعملها بر روی سرور اجرا می گردند و مرورگر تنها صفحات HTML معمولی را بعنوان حاصل اجرای دستورالعملها دريافت می کند.
• استفاده از زبان دستورالعمل نويسی
اين بدين معنی است که يک برنامه ASP براحتی قابل تغيير است چرا که زبانهای دستورالعمل نويسی نياز به کامپايل نداشته و براحتی می توان در يک ويرايشگر مانند Notepad برنامه نوشت و يا آن را تغيير داد.
• دسترسی آسان و سريع به انواع بانکهای اطلاعاتی
اعمال پيچيده مربوط به پردازش بانکهای اطلاعاتی در ASP بسيار ساده است به سرعت می توان برنامه دلخواه را نوشته يا تغيير داد. همان روش مورد استفاده در Visual Basic يا Visual C++‎ را می توانيد در ASP هم استفاده کنيد (ADO) و نياز به يادگيری مجدد روش خاصی نداريد.

----------


## aryaei2000

_بستر مورد نياز ASP (نزد سرور)_
• Windows 2000: شامل ASP 3.0 و IIS 5.0
• Windows NT: شامل ASP 2.0 و IIS 4.0
• Windows 95/98: می توان با نصب Personal Web Server (PWS) از ASP 2.0 استفاده نمود.
• ساير سيستم عامل ها: می توان با استفاده از نرم افزار Chilisoft - www.chilisoft.com تقريبا در هر سيستم عاملی از ASP استفاده نمود.
آشنائی با روش کار صفحات ASP و مقايسه آن با HTML به همراه مثال 
بهترين راه درک روش کار ASP مقايسه آن با يک صفحه HTML است. تصور کنيد که شما می خواهيد يک صفحه HTML واقع در آدرس http://www.somewhere.com/page.html را ببينيد. 
*مراحل زير را خواهيم داشت:*
۱- ابتدا آدرس فوق را در محل آدرس مرورگرتان وارد می کنيد.
۲- مرورگرتان درخواست شما را به وب سرور مربوطه می فرستد.
۳- وب سرور صفحه مورد نظر را از ديسک سخت (يا حافظه) خود خوانده و آن را به مرورگر شما می فرستد.
۴- مرورگر صفحه دريافتی را نمايش می دهد.

----------


## aryaei2000

همانگونه که مشاهده کرديد مراحل فوق اعمال ساده ای هستند و پردازش خاصی صورت نمی گيرد. حال فرض کنيد می خواهيد يک صفحه ASP به آدرس http://www.somewhere.com/page.asp را ببينيد:
۱- ابتدا آدرس فوق را در محل آدرس مرورگرتان وارد می کنيد.
۲- مرورگرتان درخواست شما را به وب سرور مربوطه می فرستد.
۳- وب سرور صفحه مورد نظر را از ديسک سخت (يا حافظه) خود می خواند.
۴- صفحه يافت شده توسط وب سرور از ابتدا تا انتها پردازش شده و هر دستورالعملی که در صفحه يافت شود اجرا می گردد و معادل آن کد HTML توليد شده و به سوی مرورگر شما ارسال می گردد.
۵- مرورگر صفحه دريافتی را نمايش می دهد.
مرحله اضافی در اينجا نسبت به حالت قبل مرحله شماره ۴ می باشد و تفاوت اساسی ميان صفحات ASP و HTML را بيان می کند. لازم به ذکر است که پردازشگر صفحات ASP در وب سرور فايل يا برنامه ASP.dll در می باشد و کليه دستورالعملهای ASP بين دو علامت <% و %> قرار می گيرند. جهت درک بهتر مطالب فوق به مثال ساده زير توجه نمائيد:


<%For I = 1 To 5%>
<Font Size="<%=I>">Hello World </Font><br>
<%Next%>

----------


## aryaei2000

*معرفی ويژگی ها و قابليت های تكنولوژی ASP* 
*معرفی برخی ويژگی های تكنولوژی ASP* 
• ASP، يك محيط مناسب بر روی سرويس دهنده را بگونه أی فراهم می كند كه امكان ايجاد صفحات وب پويا و نرم افزارهای كاربردی تحت وب بسرعت و بسادگی فراهم ميگردد .
• صفحات ASP ، فايل هائی هستند كه شامل دستورات ( تگ ها ) HTML ، متن و دستورات اسكريپت می باشند. 
• صفحات ASP می توانند اجزای ActiveX را جهت انجام عمليات خاصی نظير اتصال به يك بانك اطلاعاتی و يا محاسبات تجاری خاصی و انجام دهند. 
• با استفاده از تكنولوژی ASP ، ميتوان اقدام به طراحی و پياده سازی صفحات وب پويا نمود. 
• با استفاده از تكنولوژی ASP ، ميتوان اطلاعات متفاوتی را از طريق فرمهای موجود در صفحات وب جمع آوری و پردازش دلخواه را بر روی آنها انجام داد. 
• جهت ايجاد صفحات ASP ، می توان از زبانهای اسكريپت متعددی نظير : Vbscript، Jscript، Perl، Rexx و استفاده نمود.

----------


## aryaei2000

_مدل عملياتی ASP_ 
دستورات و اسكريپت های موجود در صفحات ASP ، زمانی اجراء ميگردنند كه مرورگر يك فايل با انشعاب .asp ، را از سرويس دهنده وب تقاضا نمايد. در ادامه سرويس دهنده وب ، ASP مربوطه را صدا زده و پس از اجرای دستورات و اسكريپت های موجود در آن ، ماحصل نتايج بصورت يك صفحه وب برای مرورگر ارسال ميگردد .
با توجه به اينكه صفحات ASP بر روی سرويس دهنده اجراء می گردنند، بنابراين تمامی عمليات مربوط به اجرای اسكريپت ها و دستورات بر روی سرويس دهنده انجام شده و وابسته به مرورگر نخواهد بود. در ضمن با توجه به اجرای صفحات ASP بر روی سرويس دهنده ، امكان مشاهده و تكثير اين نوع فايل ها وجود نداشته و صرفا" ماحصل ( نتايج ) اجرای ASP بصورت كدهای استاندارد HTML برای مرورگر ارسال ميگردد.

----------


## aryaei2000

_معرفی فناوری ASP و تاريخچه آن بهمراه قابليت و لوازم شروع آن_ 
شركت ماكروسافت در سال 1996 تكنولوژی ASP (Active Server Page) را معرفی نمود.تكنولوژی فوق اولين بار بهمراه سرويس دهنده اطلاعاتی اينترنت ( IIS :Internet Information Server ) نسخه 3.0 ارائه گرديد. با بكارگيری تكنولوژی فوق امكان طراحی و پياده سازی نرم افزارهای بزرگ و بانك های اطلاعاتی بهمراه صفحات وب فراهم می شود. هسته اوليه ASP , زبان Vbscript است . صفحات ASP بكمك كدهای نوشته شده توسط زبان فوق ايجاد می گردنند. Vbscript بعنوان زبان استاندارد برای پياده سازی صفحات ASP در نظر گرفته شده است ولی می توان از زبانهای Perl و Jscript در اين راستا نيز استفا ده نمود. ASP بر روی سرويس دهنده اجراء می گردنند. بديهی است در اين حالت عملكرد صفحات وب مستقل از توانائی های مرورگرها خواهد بود.
بنا به اظهارات شركت ماكروسافت در ماه مه سال 2000 , قريب به 800,000 هزار نفر در اين زمينه فعاليت داشته و به طراحی صفحات وب با بهره گيری از تكنولوژی فوق مشغول هستند. آمار فوق نشاندهنده رشد سريع و تصاعدی و استقبال عموم از تكنولوژی فوق در سطح جهان دارد. قريب به 500 شركت كامپيوتری در سطح جهان بصورت كاملا" تخصصی صرفا" به توليد قطعات و اجزای متفاوت بصورت كيت های آماده نرم افزاری بكمك ASP فعاليت داشته و محصولات ارائه شده توسط آنان بر روی استفاده در وب سايت های متعدد عرضه ميگردد.

----------


## aryaei2000

_ASP چه كارهائی را می تواند انجام دهد؟_ 
تقريبا" همه چيز ! . توانائی های تكنولوژی فوق نامحدود است . مثلا" : دستيابی و جتسجو در بانك های اطلاعاتی متفاوت مستقل از بانك , شخصی نمودن صفحات وب , نمايش صفحات متفاوت برای مرورگرهای متفاوت , حفاظت رمز عبور , بازيهای كامپيوتری , پردازش فرم ها و نمونه هائی از توانائی های بيشمار تكنولوژی فوق می باشند.
_برای شروع به چه چيزی نياز است ؟_ 
جهت استفاده كامل از توانائی های ASP , می بايست سيستم عامل ويندوز NT 4.0 را بهمراه IIS 4.0 استفاده نمود( نسخه IIS 4.0 در زمان نصب ويندوز NT و پس از نصب NT 4.0 Option Pack ) بر روی سيستم نصب ميگردد. از ويندوز 2000 Server بهمراه IIS 5.0 نيز ميتوان در اين زمينه استفاده نمود.
جهت استفاده از ASP بر روی كامپيوترهائی كه بر روی آنها ويندوز 98 و يا 95 نصب گرديده است ميتوان سرويس دهنده شخصی وب ( PWS: Personal Web Server ) را بر روی كامپيوتر نصب نمود . جهت نصب PWS , كافيست از CD ويندوز 98 استفاده و در شاخه Add-ons\PWS برنامه Setup را اجراء نمود.

----------


## aryaei2000

_معرفی فناوری ASP و بستر مورد نياز آن 

ASP چيست ؟_
- asp مخفف كلمات Active Server Page است .
- asp برنامه ای است كه بكمك IIS اجراء می گردد. 
- IIS مخفف كلمات Internet Information Server است .
- IIS يكی از عناصری است كه بهمراه ويندوز 2000 آورده شده است .
- IIS يكی از اجزای Windows NT 4.0 Option Pack نيز می باشد.
- PWS ( Personal Web Server ) يك نسخه خاص و كوچكتر از برنامه IIS است . 
- PWS را می توان از روی CD حاوی ويندوز 98 نصب نمود.
يك فايل ASP شامل چه چيزهائی است ؟
- يك فايل asp در اغلب موارد مشابه يك فايل HTML است .
- يك فايل asp می تواند شامل متن ، كدهای HTML ، كدهای XML و اسكريپت ها باشد.
- اسكريپت ها ی موجود در يك فايل asp بر روی سرويس دهنده ( Server ) اجراء می گردنند.
- يك فايل asp دارای انشعاب .asp است .
يك فايل asp چگونه كار می كند؟
- زمانيكه يك مرورگر ( نظير IE ) درخواست يك فايل HTML را داشنه باشد ، سرويس دهنده آن را ارسال ميدارد. 
- زمانيكه يك مرورگر درخواست يك فايل asp را داشته باشد،IIS درخواست واصله را به هسته ASP ارسال ميدارد. 
- هسته asp ، فايل asp را خط به خط خوانده و اسكريپت های موجود در آن را اجراء خواهد كرد.
- در نهايت ، ماحصل اجرای يك فايل asp بصورت كدهای HTML برای مرورگر ارسال خواهد شد.
با استفاده از asp چه كار می توان كرد؟
- امكان ويرايش ،تغيير و يا اضافه كردن موارد دلخواه بصورت پويا برای يك صفحه وب فراهم می گردد.
- پاسخ به درخواست های واصله از كاربران و يا داده های ارسال شده توسط فرم های HTML 
- دستيابی به هر نوع داده و يا بانك اطلاعاتی و برگرداندن نتايج به مرورگر
- سفارشی نمودن يك صفحه وب بمنظور استفاده بهتر برای كاربران خاص 
- در مقايسه با تكنولوژی CGI بمراتب ساده تر و سريعتر می باشند.
- تامين امنيت لازم در خصوص عدم نمايش كدهای مربوطه توسط مرورگرها 
- با توجه به برگرداندن نتيجه اجرای يك asp بصورت HTML امكان مشاهده آنان توسط هر مرورگربراحتی فراهم ميگردد.
- با استفاده از تكنيك های برنامه نويسی بهمراه asp می توان حجم ترافيك شبكه را كاهش داد.
چگونه می توان يك فايل asp را برروی كامپيوتر شخصی خود اجراء نمود؟
با نصب يكی از نرم افزارهای PWS و يا IIS بر روی كامپيوتر خود (با توجه به سيستم عامل نصب شده ) می توان بدون نياز به يك سرويس دهندهكمكی ديگر، اقدام به اجرای فايل های asp نمود.
• نحوه نصب PWS و اجرای فايل های asp بر روی ويندوز 98 
مرحله اول : برنامه setup.exe را از مسير \Add-ons\PWS موجود در CD حاوی ويندوز 98 اجراء نمائيد.
مرحله دوم : يك فولدر با نام Inetpub بر روی هارد ديسك ( مسير مشخص شده در زمان نصب ) ايجاد و در آن يك فولدر با نام wwwroot ساخته می گردد.فولدر فوق را باز نمائيد.
مرحله سوم : يك فولدر جديد با نام دلخواه ( نظير : MyfirstWeb ) در فولدر wwwroot ايجاد نمائيد.
مرحله چهارم : با استفاده از يك اديتور متنی ( نظير Notepad ) كدهای دلخواه asp خود را تايپ كرده و فايل فوق را بام دلخواه ( Test.asp) ولی با انشعاب asp در فولدر MyfirstWeb ذخيره نمائيد.
مرحله پنجم : اطمينان حاصل نمائيد كه سرويس دهنده وب ( PWS ) در حالت اجراء است .
مرحله ششم : مرورگر خود را فعال نموده و در محل مربوطه ، آدرس زير را بمنظور مشاهده فايل asp تايپ نمائيد. 
http://localhost/MyfirstWeb/Test.asp

----------


## aryaei2000

• نحوه نصب و اجرای PWS و اجرای فايل های asp بر روی ويندوز NT 
PWS بمنظور نصب بر روی ويندوز NT طراحی نشده است !. برای اجرای فايل های asp بر روی ويندوز NT ، ميبايست "Windows NT 4.0 Option Pack" را تهيه و آن را نصب نمود. پس از نصب pack فوق و نصب IIS زمينه اجرای فايل های asp بر روی ويندوز NT فراهم می گردد.
• نحوه نصب PWS و اجرای فايل های asp بر روی ويندوز ME 
PWS بهمراه ويندوز ME آورده نشده است!
• نحوه نصب IIS و اجرای فايل های asp در ويندوز 2000 
مرحله اول : فعال كردن Control panel . 
مرحله دوم : انتخاب Add/Remove Programs 
مرحله سوم : در پنجره مربوطه ، Add/Remove Windows Components را انتخاب نمائيد.
مرحله چهارم : در پنجره ويزارد مربوطه Internet Information Services را فعال نمائيد.
مرحله پنجم : يك فولدر با نام Inetpub بر روی هارد ديسك ( با توجه به مسير داده شده ) ايجاد می گردد.
مرحله ششم : در فولدر فوق يك فولدر ديگر و با نام wwwroot ايجاد می گردد. 
مرحله هفتم : در فولدر wwwroot يك فولدر ديگر و با نام دلخواه خود ( MyFirstWeb ) ايجاد نمائيد.
مرحله هشتم : با استفاده از يك اديتور متنی ( نظير Notepad ) كدهای دلخواه asp خود را تايپ كرده و فايل فوق را بنام دلخواه ( Test.asp) ولی با انشعاب asp در فولدر MyfirstWeb ذخيره نمائيد.
مرحله نهم : اطمينان حاصل نمائيد كه سرويس دهنده وب ( IIS ) در حالت اجراء است .
مرحله دهم : مرورگر خود را فعال نموده و در محل مربوطه ، آدرس زير را بمنظور مشاهده فايل asp تايپ نمائيد. 
http://localhost/MyfirstWeb/Test.asp

----------


## aryaei2000

_آشنائی با ساختار برنامه در ASP بهمراه چند مثال_ 
كدهای نوشته شده در يك ASP را نمی توان در يك مرورگر مشاهده نمود. در چنين حالتی صرفا ماحصل اجرای كدهای ASP بصورت كدهای HTML توسط مرورگرها قابل نمايش خواهد بود.
*قانون اوليه در رابطه با گرامر ASP*
يك فايل ASP اغلب شامل كدهای HTML نظير آنچه كه در يك فايل HTML استاندارد قرار می گيرد، است. علاوه بر كدهای HTML كه در يك فايل ASP قرار می گيرد، می توان از مجموعه ای اسكريپت مخصوص سرويس دهنده نيز استفاده كرد . اين اسكريپت ها بين <% و %> قرار می گيرند. اسكريپت های استفاده شده بر روی سرويس دهنده اجراء شده و می تواند شامل عبارات، عملگرها، جملات، برنامه های فرعی و ساير امكانات مجاز مربوط به زبانهای اسكريپت باشد.
تمامی علاقه مندان به دنيای نرم افزار بخصوص برنامه نويسی بخوبی آگاه هستند كه در زمان آشنائی با يك زبان برنامه نويسی ، اولين برنامه ا ی كه نوشته می شود و يا روی آن بحث می گردد، برنامه Hello World معروف است . مهمترين ويژگی اين نوع از برنامه ها آشنائی سريع و اوليه علاقه مندان با ساختار يك زبان برنامه نويسی و شناخت امكانات خروجی زبان مورد مطالعه است . ما هم در اين زمينه برای معرفی ساختار يك برنامه ASP از چنين نقطه ای آغاز می كنيم . اما قبل از آن با ابزار اوليه در اين راستا می بايست بهتر آشنا شويم.

----------


## aryaei2000

*معرفی شئ Response* 
متد Write مربوط به شئ Response ، مسئول ارسال اطلاعات ( محتويات ) به مرورگر است. مثلا در صورتيكه بخواهيم عبارت معروف فوق، توسط مرورگر نمايش داده شود، كافی است از دستور Response.Write("Hello World") استفاده گردد. 
در ASP از زبانهای اسكريپت متفاوتی استفاده می شود. زبان پيش فرض در اين زمينه VBScript است.



> <%
> Response.write("Hello World!")
> %>



در صورتيكه بخواهيم از زبان جاو اسكريپت بعنوان زيان پيش فرض استفاده كنيم ،كافی است در ابتدای صفحه زبان فوق را معرفی نمائيم.
<%
Response.write('Hello World!');
%>

----------


## aryaei2000

جاوا اسكريپت بر خلاف VBScript به حروف بزرگ و كوچك حساسيت داشته و می بايست اين امر مورد توجه قرار گيرد.ASP امكان نوشتن كدهای مورد نظر را بكمك زبانهای اسكريپت جاوا اسكريپت و VBScript فراهم می كند. در صورتيكه قصد استفاده از ساير زبانهای اسكريپت نظير Perl , Python , را داشته باشيم، می بايست هسته ( engines ) مربوط به آن زبان بطور جداگانه نصب گردد. در پايان اين بخش به بررسی دو مثال ساده خواهيم پرداخت. مثال در اين مثال با نحوه شکل دهی در يك ASP و بكمك امكانات موجود درHTML آشنا می شويم.

<%
Response.Write("<h2>Hello World!<br>This sentence uses HTML<br> tags to format the text!</h2>")
%>

----------


## aryaei2000

_
نحوه تعريف متغير و بکارگيری آن در ASP_ 
استفاده از متغير در يك برنامه بسيار حائز اهميت است. برنامه نويسان از متغيرها برای ذخيره سازی داده های مربوطه استفاده و زمينه پردازش داده های ذخيره شده با امكان دستيابی به متغيرها در طول يك برنامه فراهم می گردد. يك برنامه كامپيوتری خود می تواند شامل چندين برنامه جانبی بوده كه هر كدام مسئول انجام بخشی از عمليات در كل برنامه می باشند. متغيرها را می توان در درون يك تابع ( برنامه جانبی ) و هم بيرون از يك تابع تعريف نمود. نوع تعريف يك متغير ( محلی و يا سراسری ) محدوده مجاز دستيابی به متغير را تبين خواهد ساخت.
در برنامه های ASP، زمانيكه يك متغير در خارج از يك تابع تعريف می گردد، امكان دستيابی به آن در طول برنامه فراهم شده و از اين بابت محدوديت در دسترسی را نخواهد داشت. در صورتيكه يك متغير در يك تابع تعريف گردد، در زمان صدا زدن تابع متغير ايجاد و پس از خروج از تابع متغير از بين خواهد رفت. بديهی است در چنين حالتی اسكريپت های موجود در ساير بخش های يك برنامه ASP، قادر به دستيابی و تغيير محتويات اينچنين متغيرهائی نخواهند بود. تا كنون بحث ما مربوط به محدوده مجاز يك متغير در يك فايل ( برنامه ) ASP بود، در صورتيكه بخواهيم امكان دستيابی به يك متغير را در طول چندين فايل ASP فراهم كنيم، می بايست آن را بصورت يك متغير Session و يا يك متغير Application تعريف نمائيم.

----------


## aryaei2000

_متغيرهای Session_
اين نوع متغيرها اطلاعاتی را در رابطه با يك كاربر ذخيره كرده و امكان دستيابی به آن برای تمامی صفحات موجود در يك برنامه فراهم می گردد. اغلب اطلاعات عمومی نظير نام كاربر و مشخصه آن در چنين متغيرهائی ذخيره می گردد. پس از ايجاد يك متغير Session، از شی Session برای ذخيره سازی آن استفاده می گردد.

----------


## aryaei2000

*متغيرهای Application*
اين نوع متغيرها نيز قابل دستيابی در تمامی صفحات مربوط به يك برنامه ASP می باشند. از اين متغيرها اغلب جهت ذخيره سازی اطلاعات در رابطه با تمامی كاربران يك برنامه خاص، استفاده می گردد. پس از ايجاد متغيری از اين نوع، از شی Application برای ذخيره سازی آن استفاده می گردد. در ادامه به بررسی چندين مثال كاربردی از نحوه تعريف و بكارگيری متغيرها در برنامه های ASP خواهيم پرداخت.

----------


## aryaei2000

*بررسی روال ها و زيربرنامه ها در ASP کلاسيک* 
يک روال يا تابع مجموعه ای از يک يا چند دستور است که بصورت گروهی اجرا می شوند. يک تابع مانند يک روال است با اين تفاوت که مقداری را برمی گرداند.
در VBScript برای تعريف يک روال از عبارت Sub و برای تعريف يک تابع از Function استفاده می کنيم. در VBScript جهت برگرداندن يک مقدار از تابع، بايد مقدار مورد نظر را مانند زير به نام تابع نسبت دهيم.
myFunction = myValue
در جاواسکريپت برای نوشتن يک روال يا تابع تنها از عبارت function استفاده می کنيم. بعبارت ديگر يک روال تابعی است که مقداری را برنمی گرداند. جهت برگرداندن يک مقدار در توابع جاوااسکريپت از دستور return استفاده می کنيم.

----------


## aryaei2000

در برنامه های ASP ، می توان يك روال را از طريق VBScript و يا بالعكس صدا زد . برای صدا زدن يك روال از طريق يك برنامه ASP كه با زبان VBScript نوشته شده است ، از دستور Call كه بدنبال آن نام روال می آيد، استفاده می گردد. در صورتيكه يك روال نيازمند پارامتر باشد ، می بايست پارامترهای مربوطه را بين پرانتز قرار داده و آنها را در اختيار روال قرار داد . در صورتيكه از فرمان call برای صدا زدن يك روال استفاده نگردد ، پارامترهای مربوطه را نبايد بين پرانتز قرار داد. قرار دادن پرانتز در صورتيكه يك روال دارای پارامتر نباشد ، اختياری است.
در زمانيكه اسكريپت های موجود در يك برنامه ASP به زبان جاوااسكريپت نوشته شده باشند و قصد صدا زدن يك روال را داشته باشيم كه با زبان VBScript و يا جاوااسكريپت نوشته شده باشد ، قرار دادن پرانتز بعد از نام روال ضروری است.
در مثال زير با نحوه صدا زدن يك روال (تابع Zarb نوشته شده با VBScript ) توسط يك برنامه ASP آشنا خواهيم شد.


<html>
<head>
<%
Sub Zarb(num1,num2)
response.write(num1*num2)
End Sub
%>
</head>
<body>
<p>Calling a Subroutine with Call statement: <%call Zarb(7,6)%>
<p>Calling a Subroutine without Call statement: <%Zarb 6,7%>
</body>
</html>

در مثال زير با نحوه صدازدن دو روال ( يكی با جاوااسكريپت و ديگری با VBScript نوشته شده است) در يك برنامه ASP آشنا می شويم.
<html>
<head>
<%
Sub ZarbVBScript(num1,num2)
Response.Write(num1*num2)
End Sub
%> 
<script language="javascript" runat="server">
function ZarbJavascript(num1,num2)
{
Response.Write(num1*num2)
}
</script>
</head>
<body>
<p>The Result of the VBScript Subroutine: <%call ZarbVBScript(6,7)%>
<p>The Result of the JavaScript Subroutine: <%call ZarbJavascript(6,7)%>
</body>
</html>

----------


## ناهید اسماعیلی

با سلام 
مشکلی در خواندن اطلاعات از طریق requestبرای من ایجاد شده خواهشمند است مرا  :گریه: کمک نمایید!!!!!!!!!
هنگامی که من دستور request.querystring یا request.formرا برای چاپ محتویات textboxاستفاده می کنم نه پیغام خطایی میدهد و نه آن ها را در صفحه خروجی نشان می دهد به نظر شما اشکال از کجاست ؟در ضمن تماممی component های ویندوز xpرا نیز نصب کرده ام ولی اصلا عمل نمی کند 
خواهشمندم هرچه سریع تر به یاری من بشتابید !!!!!!
فرصتی ندارم !!!!!!!!1
با تشکر از لطف شما

----------


## kashaneh

دوست عزیز پیشنهاد می کنم از دستور option Explicit در ابتدای صفحه ASP خود استفاده کنید تا در این جور مواقع تولید خطا کردی و متن خطا رو به شما نمایش دهد... اینطوری متوجه می شویدکه مشکل کجاست... اگر حل نشد متن خطا رو در اینجا قرار دهید تا دوستان کمک کنند... موفق باشی

*<%Option Explicit%>*

----------

