آموزش زبان برنامه نویسیASP

آموزش زبان برنامه نویسیASP

آموزش زبان برنامه نویسیASP

آموزش زبان برنامه نویسیASP

ایجاد یک شمارنده

این فایل را با اسم 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
%>

استفاده از Response

برای پاسخ گویی به مرورگر ، از متدهای شیء 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

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

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

آشنایی با ساختار یک برنامه 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 ، دایرکتوری ریشه برنامه کاربردی است .
صرف نظر از این که کدام فایل درخواست شود، فایل 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 تنظیم کنید .

استفاده از فایل های 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
% >

هنگامی که موتور ASP این فایل را تحلیل می کند ، دو دستور INCLUDE را با فایل های نامبرده جایگزین می کند و این کار را قبل از اجرای دستور if…end if انجام می دهد . پس باز هم تاکید می کنم : شما با استفاده از کد نمی توانید برای موتور ASP تعیین کنید که کدام فایل را بگنجاند و یا این که اصلا یک فایل را بگنجاند یا خیر.

طرز ساخت کوکی ها

یک Cookie اغلب براى شناسائى کاربر استفاده مى‌شود.

مثالها
Cookie خوش‌آمدگویى
چگونه یک Cookie خوش‌آمدگویى درست کنیم.

یک 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"
%>
 
فرض کنیم که سرور شما همه 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>")
%>

آبجکت Response

شما نمی توانید سورس کد های ASP را بوسیله انتخاب گزینه View Source در Browser مشاهده کنید، شما فقط خروجی فایل ASP را مشاهده مى‌کنید که HTML ساده است. زیرا که اسکریپت ها قبل از این که نتایج به Browser فرستاده شود بر روی سرور اجرا مى‌گردد.

قواعد اساسی نحو
یک فایل ASP به طور عادی دقیقا همانند HTML حاوی Tagهای HTML است. اگر چه، یک فایل ASP می تواند همچنین حاوی Scriptها نیز باشد. این اسکریپت ها به وسیله علامت های %> و <% احاطه شده اند. اسکریپت های سرور بر روی سرور اجرا می شود و می تواند حاوی هر گونه expressions، دستورات (Statements)، توابع، یا عملگرهایی باشد.

آبجکت Response
متد Write مربوط به آبجکت Response برای فرستادن محتویات به Browser استفاده می شود. به عنوان مثال، دستورات زیر برای فرستادن متن "سلام دنیا!" به Browser استفاده مى‌شود.

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

 VBScript
این امکان وجود دارد که از که از زبان های مختلف اسکریپت نویسی در فایلهای ASP استفاده کنید. اگرچه زبان پیش فرض، VBScript است.

<html>
<body>
<%
response.write("سلام دنیا!") %>
</body>
</html>

مثال بالا "سلام دنیا!" را در قسمت body متن می نویسد.

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 پشتیبانی کند!

چگونه شروع کینم؟

یک فایل 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." دارد.

فرق 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

دیتابیس اکسس

dim dbDC
set dbDC=server.CreateObject("adodb.connection")
dbDC.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& server.MapPath("dbdbDC.mdb")

set rsArticle=server.CreateObject("adodb.recordset")
rsArticle.Open "tblArticle",dbDC ,2 , 3,2

rsArticle.addnew
rsArticle("fldArticleTitle") =request("txtArticleTitle")
rsArticle.update

rsArticle.close
set rsArticle=nothing