29
Dynamic Web Sites DECO 3001 Tutorial 6 – Email Form Presented by Ji Soo Yoon 30 April 2004 Slides adopted from http://aurora.wells.edu/~ccs/cs310/02/cs310.htm , http://csp.ipm.edu.mo/teachers/philip/mccs352/ppt/asp.ppt , http://www.w3schools.com/asp/default.asp , and A Practical Guide To Active Server Pages 3.0 ©2000 Manas Tungare

Dynamic Web Sites DECO 3001 Tutorial 6 – Email Form Presented by Ji Soo Yoon 30 April 2004 Slides adopted from ccs/cs310/02/cs310.htm,

  • View
    220

  • Download
    0

Embed Size (px)

Citation preview

Dynamic Web SitesDECO 3001 Tutorial 6 – Email Form

Presented by Ji Soo Yoon30 April 2004

Slides adopted from http://aurora.wells.edu/~ccs/cs310/02/cs310.htm, http://csp.ipm.edu.mo/teachers/philip/mccs352/ppt/asp.ppt, http://www.w3schools.com/asp/default.asp, and A Practical Guide To Active Server Pages 3.0 ©2000 Manas Tungare

Active Server Pages Revisited

An Active Server Page is a text script with extension .asp

An ASP typically contains HTML, client and server scripts ASP code is bracketed in <% ...%> Pre-processed (like SSIs) before the page is sent to the

client Statements in VBScript (similar to VB) or in JavaScript Uses built-in ASP objects Uses prewritten active server components (called COM

objects stored in .dll or .exe files) Can build new COM objects (harder)

“Hello World” Example

<%Dim I ' declare our loop index variable %> <%For I = 1 To 5 Step 1 %>

<FONT SIZE= "<%= I %>” >Hello World</FONT><BR>

<%Next ' bounce back to the top of the loop %>

Advantages

Easier to code Faster execution with multiple hits

Each CGI program loads separate code Two ASP pages can use the same .dll file which

is loaded only once Expected availability of Microsoft and third

party COM objects Can be developed in (almost) any language

Fostered by Microsoft

Disadvantages

Evolving rapidly Hard to gain detailed information of

different components Fostered by Microsoft

Intrinsic Objects

ASP programs have access to intrinsic objects Request Response Application Session Server

Each of the objects has a set of collections, methods, properties and events which provide them with all their functionality

Request Object

Information returned with the HTTP header (GET) or body (POST)

Properties TotalBytes (the size of data in HTTP header)

Collections ClientCertificate (for security) Cookies Form QueryString ServerVariables

Request.QueryString

The information sent using GET Request.QueryString is everything

after the ? Request.QueryString("name")

Gets value for http://www.xxx.yyy?name=value.

If this is from a form, it will be associated with an input box with NAME= name

Request.Form

The information sent from a form via POST

Request.Form(“name”) gets the value assigned to an input box with NAME= name

Request.ServerVariables

Environment variables in HTTP header CGI equivalent: environment variables

See http://aurora.wells.edu/~cs330/scripts/env2.cgi

Response Object

Control over information sent to the client in the HTTP response: when, how, what

Properties Buffer, CacheControl, Charset, ContentType,

Expires, ... Collections

Cookies Methods

AddToHeader, AppendToLog, Clear, End, Flush, Redirect

Write (most frequently-used)

Other Intrinsic Objects

Application An application is all files that can be accessed through a

directory and its subdirectories Allows variables and objects with application-level scope Application_OnStart event when first client requests a file

Session Tracks the current user’s info, Initialized via Session_OnStart

Server Properties: ScriptTimeout Methods: CreateObject, HTMLEncode, MapPath, URLEncode

Server.ScriptTimeout = 100 Server.CreateObject(“ADODB.Connection”))

Installable Components

ASP programs have access to intrinsic objects (Request, Response, Application, Session, Server)

Other objects can be “installed” Standard library Built for a particular application

COM is the interface standard for these objects which have methods and properties

Examples: Collaboration Data Objects: CDONTS ActiveX Data Objects: ADODB Others: Ad Rotator, Content Linking, Content Rotator, Counters, File

Access, Page Counter, Permission Checker

Collaboration Data Objects (CDO)

CDO adds messaging functions to applications. CDONTS is a COM library for NT designed to send mail through SMTP

To create the CDONTS objectDim objCDOMail 'The CDO objectSet objCDOMail = Server.CreateObject("CDONTS.NewMail")

This hasAttributes: From, To, Subject, Body, Cc, Bcc, AttachFile, ...Method: Send

Procedure: assign values to the attributes apply Send

Sending a simple message

Dim objCDOMailSet objCDOMail = Server.CreateObject("CDONTS.NewMail")

objCDOMail.To = “Receiver Email Address”objCDOMail.From = “Sender Email Address”objCDOMail.Subject = “Subject”objCDOMail.Body = “Body”objCDOMail.SendSet objCDOMail = Nothing

File Access

Access to a file system via the FileSystemObject Server.CreateObject(“Scripting.FileSystemObjec

t”) File system has folders, drives, files Methods: CreateFolder, CreateTextFile,

DriveExists, DeleteFile, GetFile, OpenTextFile, ... Text file methods: Read, ReadLine, Write,

ADO: Active Data Objects ADODB.Connection: to a data provider (db) ADODB.Recordset: the records returned from

a query (or a whole table) ADODB.Field: a component in a recordset ADODB.Command: an SQL statement that

returns a recordset ADODB.Parameter: holds parameters in an

SQL statement ADODB.Error, ADODB.Property

Connection Object A connection to the database. Can be

used for more than one query. Properties

ConectionTimeout CommandTimeout ConnectionString

Methods Open Close

ExampleSet DataConn = Server.CreateObject("ADODB.Connection")DataConn.ConnectionTimeout = 15 'propertyDataConn.CommandTimeout = 30 ‘property

Note, this has no connection to any data yet. DataConn.Open "DBQ=" & Server.MapPath("database.mdb") &

";Driver={Microsoft Access Driver (*.mdb)}; DriverId=25; MaxBufferSize=8192; Threads=20;", "username", "password"

An Access database, database.mdb on the default directory

Fill in correct “username” and” password”

Recordset Object Records in a query or table from the connection It must be opened to have anything in it Properties

ActiveConnection: the current data source Fields: in the table BOF, EOF: of the recordset

Methods AddNew Delete MoveFirst, MoveNext, MoveLast Open, Close

Command Object Not necessary (one can just type in when

a recordset is opened), but a neat way to define and reuse commands

Properties CommandText CommandType (adcmdText = SQL,

adcmdTable = table name, Methods

Execute

File Access

Access to a file system via the FileSystemObject Server.CreateObject(“Scripting.FileSystemObjec

t”) File system has folders, drives, files Methods: CreateFolder, CreateTextFile,

DriveExists, DeleteFile, GetFile, OpenTextFile, ... Text file methods: Read, ReadLine, Write,

More ADODB Major objects: Connection and Recordset Possible interfaces to a database

via a connection – previous slides directly – slides to come

Recordset

Connection

Recordset

DBRecordset

Comparison

Connection Cleaner Allows multiple recordsets without

recreating and duplicating the connection Easier to change in one place

Just recordset Less code to write (not a good reason)

Using a connectionSet DataConn

=Server.CreateObject("ADODB.Connection")strConnString = "DRIVER={Microsoft Access Driver ...DataConn.Open strConnString, strUserId, strPasswd

Set rsObj = Server.CreateObject("ADODB.Recordset")cmdSQL = “SELECT…”rsObj.Open cmdSQL, DataConn, CursorType, LockType,..

The first param is an SQL statement, a table, procedure name

The second param is a connection object or string with connection text

Using a recordset: With intermediate variables: strConnString = "DRIVER={Microsoft Access...

Set rsObj= Server.CreateObject("ADODB.Recordset")

rsObj.Open cmdSQL, strConnString, …

More confusing, put everything in the Open command:

rsObj.Open “SELECT…”, "DRIVER={Microsoft Access…”, …

ASP Components

Components (e.g. ADODB) have classes e.g. Connection, Recordset, Field, Command,..

Classes have methods e.g. Open, Close,..

The ADODB.dll is available to ASP pages and supports this component

An object is created in an ASP page with the create method of Server Server.CreateObject(“component_name.class_name”) objDataConn =Server.CreateObject(“ADODB.Connection”)

The object then has access to the methods of the class

Developing components

Most easily built in VB. Ref: Shelly Powers. Open VB Select File/New Project/ActiveX DLL You get Project1 and a Class1 window Change Project1 name to NewCom in Project/Properties Change Class1 name to CLA in the window for Class 1 Build functions for AddNew, Remove, … in the (Code) window

Public Function AddNew() ---------End Function

Make/Project creates NewCom.dll regsvr32 NewCom.dll registers it objCLA = Server.CreateObject(“NewCOM.CLA”) creates an instance

ASP Learning and Code Sites

ASP Lessons http://www.learnasp.com/learnasp/

ASP Tutorial http://www.w3schools.com/asp/

ASP Tips www.4guysfromrolla.com

ADO Connection String Samples http://www.able-consulting.com/ado_conn.htm?f=ado_conn.htm

Microsoft’s ASP Site http://msdn.microsoft.com/asp

Other ASP Sites http://www.learnasp.com/links/