Tuesday, May 27, 2008

Paging in ASP

//Execute the query and open the recordset
Rs.Open sql,Conn,3,1 //here 3 is cursor type and 1 is lock type. cursor type is static and lock type is readonly
If not(Rs.eof and Rs.bof) then

//initialize paging requirements
Pagesize = 5 //set page size to a variable
Page = request(“page”) //get the current page no into a variable
If Page = “” then Page = 1 //if this variable is null that means it is first page
Recordcount = Rs.recordcount //get no. of records in Rs
Rs.pagesize = Pagesize //assign page size to Rs
Rs.absolutepage = Page //current page no. assigned to Rs
TotalPages = Rs.Pagecount //get count of total no. of pages
Prev = Page – 1 //Previous page no. set here
Next = Page + 1 //Next page no. set here
Count = 1 //initialize count variable to 1

//open the while loop of the result set
While not Rs.eof and Count <= Pagesize //Here, looping is restricted to the page size that we have set
………………………..
//increment count variable
Count = Count + 1
//close loopWend

//At the bottom of the page, provide links for paging

Print a page

//Give the link in the html page to print
//On clicking, the entire page is printed

How to eliminate the unnecessary things from printing?
// Declare the style in a style sheet
.noprint
{
DISPLAY: none
}

//include the external style sheet in the page

//Put the div tags with class=”noprint” in the page wherever required

Send Mail

Send mail using Persits component
//Declare mail object
Set objPersits = Server.CreateObject("Persits.MailSender")

With objPersits
.From = "sree@yahoo.com" //From Email Id
.FromName = "Sree" //Name of the Sender
.Host = "mail.domain.com" //Mail Host
.Subject = "Invitation"
.AddAddress mailTo,mailName
.Body = mailbody
.isHTML = True //If html content exists in the mail body
on error resume next
.Send //To send mail finally
if err.number <> 0 then
response.write "Error " & err.number & " sending to " & mailTo & " (" & mailName & ")"
//To know the description of the error, we give
response.write err.description
err.clear
else
//Mail has been sent
end if
.RemoveAddress mailTo, mailName
End With

set objPersits = nothing


How to send an external html file through mail?
//Declare file system object to read from the file
set fso = Server.CreateObject("Scripting.FileSystemObject")

//Specify File location
fname = "/AffiliateEmails/affmail.htm"

//Open a file using above object and set it to a new object
set fObj = fso.openTextFile(server.mappath(fname))

//Read from the file and assign to a variable which is further assigned to the .Body of the mail
mailBody = fObj.readAll

//Close the connection to the file
fObj.close

set fso = nothing

Export to Excel

// Mention below two lines in the asp page say "excel.asp"
Response.ContentType = "application/vnd.ms-excel"
Response.AddHeader "Content-Disposition", "attachment; filename=sheet1.xls"

Now write the code for the data that should be displayed in the excel file in the excel.asp page
................

In another page say export.asp give a link "Export to excel"
The href for the link should be given as excel.asp
When you click this link it will prompt you to open or save the excel file

Monday, May 26, 2008

Upload Files

//Form tag in upload page



Enctype
The mime type to be used for encoding the form data.
Some examples are:
enctype="text/plain" data is sent as plain text
enctype="multipart/form-data" used when files are uploaded

//To browse a file, give Type=”FILE”
Example:

Sample Code:
Upload code differs for different components used. I am giviing below the code for "Persits" component which i have used.

//Create Upload object
Set Upload=Server.CreateObject("Persits.Upload.1")

//If a file already exists with same name then we can give option whether to upload or not to upload.
Upload.OverwriteFiles = False/True
Eg:
True:
If swetha.jpg already exists then also the file is uploaded as swetha[1].jpg
False:
If same name already exists then we cannot upload.

//If there is any error in uploading and we still want to move ahead then we give this. If we want to see the error then we should remove this statement.
On Error Resume Next

//Set File Limit to upload
Upload.SetMaxSize 5242880

//We can also add code for creating the folder if the specified does not exist
Set fso=Server.CreateObject("Scripting.FileSystemObject")
if fso.FolderExists(server.mappath("./CoachImages"))=false then
Set fobj=fso.CreateFolder(server.mappath("./CoachImages"))
end if
Set fobj=nothing
Set fso=nothing

//To get the count of the uploaded files
Count = Upload.Save(server.mappath("./"&folder))

//To know if a file a uploaded or not. If not Show Error Message
if Count = 0 then
Error

// In Else part, we increment a loop for the uploaded Files
For Each File in Upload.Files


//Here we check the type of file. Suppose it is an image, then
If ucase(File.ImageType) = "GIF" or ucase(File.ImageType) = "JPG" …….then
//To get File Name
File.FileName
//To get Image Width
File.ImageWidth
//To get Image Height
File.ImageHeight
Else //If file type does not match then we can delete the file
File.Delete
End If

Next

//To delete an old uploaded file
Set fs=Server.CreateObject("Scripting.FileSystemObject")
if fs.FileExists(Server.MapPath("./BoardImages/"&IRs("photoname"))) then
fs.DeleteFile(Server.MapPath("./BoardImages/"&IRs("photoname")))
end if
set fs=nothing

After clicking SUBMIT, in Javascript
function SendBoardValues()
{
window.close();
window.opener.evntfrm.submit();
}
Here, opener is used to get the values in the current window to the main page in the browser.

Virtual Directory

Allows you to create multiple website under one ip address. Allows you reference another location (folder) to include additional functionality.

To create one
1) Open IIS Manager (Ctrl Panel->Admin Tools->Internet Service Manager)
2) Right click the default site and “New”>”Virtual Directory”.
3) Type the name of the virtual directory and then browse to the location you would like to reference.

ASP Components

Different ASP Components are:
AdRotator
Content Rotator
Content Linking
Browser Capabilities

1. ADROTATOR:
The ASP AdRotator component creates an AdRotator object that displays a different image each time a user enters or refreshes a page.
Syntax:
set adrotator=server.createobject("MSWC.AdRotator")

adrotator.GetAdvertisement("textfile.txt")
Methods:
1. GetAdvertisement
Properties:
1. Border
2. Clickable
3. TargetFrame


2. CONTENT ROTATOR:
The ASP Content Rotator component creates a ContentRotator object that displays a different HTML content string each time a user enters or refreshes a page.
Syntax:
Set cr=Server.CreateObject( "MSWC.ContentRotator" )

Methods:
1. ChooseContent
2. GetAllContent


3. CONTENT LINKING:
The ASP Content Linking component is used to create a quick and easy navigation system!
The Content Linking component returns a Nextlink object that is used to hold a list of Web pages to be navigated.
Syntax:
Set nl=Server.CreateObject( "MSWC.NextLink" )

Methods:
1. GetListCount
2. GetListIndex
3. GetNextDescription

4. GetNextURL
5. GetNthDescription
6. GetNthURL
7. GetPreviousDescription
8. GetPreviousURL

4. BROWSER CAPABILITIES:
The ASP Browser Capabilities component creates a BrowserType object that determines the type, capabilities and version number of each browser that visits your site.

When a browser connects to a server, an HTTP User Agent Header is also sent to the server. This header contains information about the browser (like browser type and version number). The BrowserType object then compares the information in the header with information in a file on the server called "Browscap.ini".

If there is a match between the browser type and version number sent in the header and the information in the "Browsercap.ini" file, you can use the BrowserType object to list the properties of the matching browser. If there is no match for the browser type and version number in the Browscap.ini file, it will set every property to "UNKNOWN".

The "Browsercap.ini" file is used to declare properties and to set default values for browsers.

Syntax:
Set MyBrow=Server.CreateObject("MSWC.BrowserType")

Global.asa File

The Global.asa file is an optional file (stored in the root directory of the application) that can contain declarations of objects, variables, and methods that can be accessed by every page in an ASP application.

The Global.asa file can contain only the following:

Application events
Session events
object declarations
TypeLibrary declarations
the #include directive

Events in Global.asa
Application_OnStart: Occurs when
# The FIRST user calls the first page from an ASP application.
# after the Web server is restarted or after the Global.asa file is edited
Session_OnStart: Occurs
# EVERY time a NEW user requests his or her first page in the ASP application.
Session_OnEnd: Occurs
# EVERY time a user ends a session.
# after a page has not been requested by the user for a specified time
Application_OnEnd: Occurs
# after the LAST user has ended the session.
# when a Web server stops

Note: we cannot use the ASP script delimiters to insert scripts in the Global.asa file


A Global.asa file could look something like this:



Difference between Object tag and Server.CreateObject:
object tag creates the object and initializes the memory only when the first method/property of the object was accessed.Server.CreateObject will immediately create the object and initialize the memory.


ASP #include

The #include directive is used to create functions, headers, footers, or elements that will be reused on multiple pages.
Syntax:
Virtual: to indicate a path beginning with a virtual directory
File: to indicate a relative path. A relative path begins with the directory that contains the including file.


Note: Included files are processed and inserted before the scripts are executed.

ASP Application

A group of ASP files that work together to perform some purpose is called an application.
Application variables are available to all pages in one application. Application variables are used to store information about ALL users in a specific application.


To create application variables:
You can create Application variables in "Global.asa" like this:


Lock and Unlock:
Application.Lock
'do some application object operations
Application.Unlock

ASP Session

The Session object is used to store information about a user session. Session variables are used to store information about ONE single user, and are available to all pages in one application. Typically information stored in session variables are name, id, and preferences.

Internal mechanism:

Session is implemented by creating a unique id (session id) on the server for each user and embedding a cookie on the user machine with the session id. This is taken care of by isapi (internet server application programming interface) in server. If cookies are disabled in the user’s browser then isapi takes care of creating a cookie.
Session Starts when a new user requests an ASP file, and the Global.asa file includes a Session_OnStart procedure.
A session ends if a user has not requested or refreshed a page in the application for a specified period. By default, this is 20 minutes.


To set the timeout interval, Timeout property is used.
Session.Timeout=5

To end the session immediately, Abandon method is used.
Session.Abandon

Store session variables:
Session("username")="Donald Duck"

Retrieve session variables:
Response.Write(Session("username"))

Remove session variables:
If Session.Contents("age")<18

To remove all variables in a session, use the RemoveAll method:
Session.Contents.RemoveAll()
To know the number of items in the content collection: use Count property
Session.Contents.Count

To see the values of all objects stored in the session object:
dim i
For Each i in Session.StaticObjects
Response.Write(i)
Next

What is the difference between session and cookie?
# If you set the variable to "cookies", then your users will not have to log in each time they enter your community.
# The cookie will stay in place within the user’s browser until it is deleted by the user. But Sessions are popularly used, as the there is a chance of your cookies getting blocked if the user browser security setting is set high.
# If you set the variable to "sessions", then user activity will be tracked using browser sessions, and your users will have to log in each time they re-open their browser.
# The Key difference would be cookies are stored in your hard disk whereas a session isn’t stored in your hard disk. Sessions are basically like tokens, which are generated at authentication.
# A session is available as long as the browser is opened.
# Cookies are not secure where as sessions are secure.

ASP Objects



Response Object: Response object is used to display items on a web page.
Request Object: The ASP Request object is used to get information from the user.
Application Object: A group of ASP files that work together to perform some purpose is called an application. The Application object in ASP is used to tie these files together.

Session Object: The Session object is used to store information about, or change settings for a user session.
Server Object: The ASP Server object is used to access properties and methods on the server.
ASPError Object: The ASPError object is used to display detailed information of any error that occurs in scripts in an ASP page.

Object Context: The ObjectContext object can be used to commit or abort a transaction.

ASP Cookies


A cookie is a temporary file used to identify a user. A cookie is a small file that the server embeds on the user's computer. Each time the same computer requests a page with a browser, it will send the cookie too.


Why is a cookie used?
A cookie (persistent) enables a website to remember you on subsequent visits, speeding up or enhancing your experience of services or functions offered.
For example, a website may offer its contents in different languages. On your first visit, you may choose to have the content delivered in French and the site may record that preference in a persistent cookie set on your browser. When you revisit that site it will use the cookie to ensure that the content is delivered in French.


Creating a Cookie:

Response.Cookies("firstname")="Alex"


Properties:
1. Domain: This is the domain that the cookie originated from. It is set by default to the domain in which it was created but it can be altered.
Example: Response.Cookies("name").Domain = http://www.cookiemonster.com/
2. Expires: There are 2 ways.
a) You can use the current date and add or subtract days
Response.Cookies("name").Expires = Date + 365
b) You can set it to a specific date

Response.Cookies("name").Expires = #May 10,2002#

Note: To expire the session enabled with cookies, Give current date.

Example: Response.Cookies("name").Expires = Date OR Date-1
3. Path: This specifies in more detail the exact path on the domain that can use the cookie.
Response.Cookies("name").Path = "/this/is/the/path"
4. Secure: If set, the cookie will only be set if the browser is using secure sockets or https:// to connect.
Response.Cookies("name").Secure = True


Dictionary Cookie OR Cookies with Keys: It is a cookie that can hold multiple values.
Example:
Response.Cookies("name")("first") = "John"Response.Cookies("name")("last") = "Smith"


How to know if the cookie has keys?
Ans: With the Haskeys property.
Example:

dim x,y

for each x in Request.Cookies

if Request.Cookies(x).HasKeys then

for each y in Request.Cookies(x)

response.write(x & ":" & y & "=" & Request.Cookies(x)(y))

next

else

Response.Write(x & "=" & Request.Cookies(x))

end if

next

Note: There are limits on how much data you can put on a clients browser. Most browsers allow you to place 20 cookies per domain at a maximum of 4k each.

Types of cookies:
1. Persistent: Persistent cookies are stored on your computer hard disk. They stay on your hard disk and can be accessed by web servers until they are deleted or have expired. Persistent cookies are not affected by your browser setting that deletes temporary files when you close your browser.
2. Non-Persistent: Non-persistent cookies are saved only while your web browser is running. They can be used by a web server only until you close your browser. They are not saved on your disk.

ASP Forms

ASP FORMS and INPUTS
Commands for information retrieval from forms:
1. Request.QueryString
2. Request.Form


Difference between GET and POST methods:
GET:

1. Limited data can be sent upto 255 characters.
2. Command used is Request.QueryString
3. Data is visible to the users as it is passed using querystring of the url.
POST:
1. Umlimited data can be sent.
2. Command used is Request.Form

3. Data is not visible to the users as it is passed using form elements.

ASP Introduction

INTRODUCTION

  • ASP stands for Active Server Pages
  • ASP is a program that runs inside IIS (Internet Information Services)
  • An ASP file can contain text, HTML, XML, and scripts
  • Scripts in an ASP file are executed on the server

You can run ASP on your own PC without an external server. To do that, you must install Microsoft's Personal Web Server (PWS) or Internet Information Services (IIS) on your PC.

The default scripting language is VBScript. To set JavaScript as the default scripting language for a particular page you must insert a language specification at the top of the page. Like this: asp delimiter @ language="JavaScript" asp delimiter


Execution: When a browser requests an ASP file, IIS passes the request to the ASP engine. The ASP engine reads the ASP file, line by line, and executes the scripts in the file. Finally, the ASP file is returned to the browser as plain HTML.

Advantages of ASP:

• Minimizes network traffic by limiting the need for the browser and server to talk to each other
• Makes for quicker loading time since HTML pages are only downloaded
• Allows to run programs in languages that are not supported by the browser
• Can provide the client with data that does not reside on the client’s machine
• Provides improved security measures since the script cannot be viewed by the browser

Difference between server side scripting and client side scripting:

Scripts executed only by the browser without contacting the server is called client-side script. It is browser dependent. The scripting code is visible to the user and hence not secure. Scripts executed by the web server and processed by the server is called server-side script.

Order of execution for an ASP application:
1) Global.asa

2) Server-side Includes statements

3) Directives

4) Jscript scripts tagged within SCRIPT tags

5) HTML together with scripts tagged within asp delimiters

6) VBScripts tagged within SCRIPT tags

In a simple way, order of scripts is defined as (points 4, 5, 6 above) scripts in non-default language scripts using asp delimiter scripts in default language
ILLUSTRATION: