[FONT="]<%@Language="VBScript"%>[/FONT] زبان اسکریپت نویسی VBScript معرفی می شود. چون خود ASP یک تکنولوژی هست وبه تنهایی نمی تواند به بانک اطلاعاتی ارتباط ایجاد کند، بنابراین به یک زبان اسکریپتی که تحت سرور باشد نیاز دارد. VBScript که از فرمت دستورات visual basic پیروی می کند یک زبان clinet / server است. [FONT="]<%[/FONT] [FONT="]User = Request.Form("UserID")[/FONT] [FONT="]Pass = Request.Form("Password")[/FONT] : Request.Form("نام فیلد") یک دستور asp است که داده های Post شده به این صفحه را دریافت می کند. همانطوریکه در بالا می بینید مقادیر پست شده در متغیرهای User و Pass برای انجام عملیات بعدی ذخیره می شوند. [FONT="]Set AdoCon = Server.CreateObject("ADODB.Connection")[/FONT] ADODB یک روش برای ایجاد ارتباط با بانک اطلاعاتی در ویژوال بیسیک است. دستور فوق یک نمونه یا شی از نوع ADODB ایجاد می کند . [FONT="]StrCon = "DRIVER={Microsoft Access Driver (*.mdb)}BQ=" & Server.MapPath("Users.mdb")[/FONT] StrCon یک متغیر رشته ای معمولی است که رشته اتصال-connection string- مورد نیاز در آن نوشته می شود. [FONT="]AdoCon.Open StrCon[/FONT] دستور فوق connection را باز می کند. [FONT="]Set AdoRec = Server.CreateObject("ADODB.Recordset")[/FONT] پس از ازتباط با بانک باید به Table مربوطه نیز ارتباط برقرار کرد. (توسط شئ رکوردست) همانطوری که برای ارتباط با بانک یک نمونه ADODB.Connection تعریف کردیم برای ارتباط با Table نیز نیاز به یک نمونه ADODB.Recordset داریم که باید به صورت فوق تعریف گردد. [FONT="]StrSQL = "SELECT * FROM Members WHERE UserID = ' " & User & " ' "[/FONT] StrSql یک متغیر رشته ای معمولی است که نحوه ارتباط با جدول را در خود دارد. دستور Sql فوق می گوید فقط رکورد هایی را نشان بده که مقدار فیلد UserID آنها برابر متغیر User است. متغیر User در خط دوم این صفحه از اطلاعات پست شده مقداردهی شده است. به علامت ' " & & " ' در قبل و بعد از User توجه کنید. اگر از این علائم استفاده نمی شد، رکوردهایی بازیابی می شد که مقدارشان برابر با رشته User بود نه مقدار متغیر User ! [FONT="]AdoRec.Open StrSQL, StrCon[/FONT] در نهایت برای اتصال به Table گفتیم که رکوردست را با مشخصات StrCon و دستور StrSQL باز کن. [FONT="]IF NOT AdoRec.EOF Then[/FONT] [FONT="]IF Pass = Trim(AdoRec("Password")) Then[/FONT] [FONT="]Response.Write ("Welcome " & User)[/FONT] [FONT="]Else[/FONT] [FONT="]Response.Write ("Invalid Password")[/FONT] [FONT="]End IF[/FONT] اگر به انتهای رکوردست نرسیدیم، یعنی حداقل یک رکورد پیدا شده است که UserID = ' " & User & " ' بعبارت دیگر یعنی یک رکورد پیدا شده است که مقدار فیلد Userid آن برابر مقدار متغیر User است. پس حالا باید مقدار فیلد Password آنرا هم چک کنیم، که اینکار دز خط بعد انجام می شود. [FONT="]Else[/FONT] Else یعنی شرط IF NOT AdoRec.EOF Then نادرست است، یعنی به انتهای رکورد رسیدیم و فیلدی که Userid آن برابر متغیر User باشد پیدا نکردیم. [FONT="]Response.Write ("Invalid UserID")[/FONT] [FONT="]End IF[/FONT] [FONT="]Set AdoCon = Nothing[/FONT] [FONT="]Set StrCon = Nothing[/FONT] [FONT="]Set AdoRec = Nothing[/FONT] در نهایت وقتی دیگر نیاز به connection و رکوردست نباشد، آنها را می بندیم. [FONT="]%>[/FONT] علامت %> پایان اسکریپت را اعلام کند . نکته: کل اسکریپت فوق داخل <body> صفحه HTML ما قرار می گیرد و کل این صفحه باید با نام و پسوند login-action.asp ذخیره شود.