%@ LANGUAGE="VBSCRIPT" TRANSACTION=REQUIRED %>
<% Option Explicit %>
<%
'
' This page needs to be authenticated differently from other pages because it
' can be called by a new user who does not yet have an account number. Thus,
' libAuthenticate.asp isn't called. The following code is used instead
'
' check if user tried to get to this page directly, without using appropriate URLs
If Request("UpdateUser") = "" Then
Response.Redirect("login.asp")
Response.End
' Or maybe a sneaky user typed in UpdateUser=1 in the URL but hasn't really logged on:
ElseIf CInt(Request.QueryString("UpdateUser")) = 1 And Session("AccountID") = "" Then
Response.Redirect("login.asp")
Response.End
End If
'
' User information variables. Values for these are retrieved from the database for
' existing users and submitted to the database for new users and user updates
'
Dim m_strFirstName, m_strLastName, m_strMiddleName, m_strKnownAs, m_strGender, m_strAddress1, _
m_strAddress2, m_strCity, m_strState, m_strPostCode, m_strCountry, m_strHomePhone, _
m_strBusinessPhone, m_strFax, m_strEmail, m_strWebSite, _
m_strMeal, m_strSeating, m_strSmoking, m_strExitRow, m_lngAccountID
'
' Status variables.
'
Dim m_intUpdate ' Value of 1 if this is an existing user, 0 if a new user
Dim m_intRequestToSave ' Value of 0 means to display the page, 0 to process the form
Dim m_strMainPrompt, m_strDSN
'
' Initialize some page level variables
'
m_intUpdate = Cint(Request("UpdateUser"))
m_intRequestToSave = Cint(Request.Form("RequestToSave"))
m_lngAccountID = Session("AccountID")
m_strDSN = Application("DSN")
'
' This block determines whether to display the page, or attempt to update the
' database and then redirect.
'
If m_intRequestToSave = 1 Then
GetValuesFromForm
If UpdateDatabase = 0 Then ' database update occurred successfully
If m_intUpdate = 0 Then ' Send to a new user page to get AccountID and Password
Response.Redirect("Welcome.asp")
Response.End
Else ' Existing user, send back to Frequent flyer Home Page
Response.Redirect("default.asp")
Response.End
End If
Else ' database update did not occur successfully so let the user know
End If
Else
If m_intUpdate = 1 Then
m_strMainPrompt = "Please make any changes you desire to the information listed below.
" & _
"The items listed in bold and marked by a blue bullet are required.
" & _
"Select Save when you are done."
GetValuesFromDatabase
Else
m_strMainPrompt = "Welcome to the Exploration Air Frequent Flyer Club!
" & _
"Please fill out the member information listed below. " & _
"The items listed in bold are required. " & _
"Select Save when you are done to receive your frequent flyer number."
End If
End If
%>
Manage Your Profile
<%= m_strMainPrompt %>
©1997 Microsoft Corporation. All rights reserved. Terms of Use.
<%
'
' Begin server side helper functions
'
'
' Set page level variables to values retrieved from database
'
Sub GetValuesFromDatabase()
Dim Member, rstMember
Set Member = Server.CreateObject("ExAir.Member")
rstMember = Member.GetForID(m_strDSN, m_lngAccountID)
m_strFirstName = rstMember("FirstName")
m_strLastName = rstMember("LastName")
m_strMiddleName = rstMember("MiddleName")
m_strKnownAs = rstMember("KnownAs")
m_strGender = rstMember("Gender")
m_strAddress1 = rstMember("Address1")
m_strAddress2 = rstMember("Address2")
m_strCity = rstMember("City")
m_strState = rstMember("State")
m_strPostCode = rstMember("PostCode")
m_strCountry = rstMember("Country")
m_strHomePhone = rstMember("HomePhone")
m_strBusinessPhone = rstMember("BusinessPhone")
m_strFax = rstMember("Fax")
m_strEmail = rstMember("Email")
m_strWebSite = rstMember("WebSite")
m_strMeal = rstMember("Meal")
m_strSeating = rstMember("Seating")
m_strExitRow = rstMember("ExitRow")
End Sub
'
' This subroutine is called in the middle of the User Profile form to generate
' a table of checkboxes for the interests currently being stored in the database
' and check off the ones indicated by the user
'
Sub ListInterests
Dim Member, Interest, rstInterests, strCheckBox, _
strInterestName, intInterestNumber, strCategoryName, _
strNewCategoryName, intInterestCounter, strTH, strTD, strSpacer
strTH = ""
strTD = " | "
strSpacer = " | " & Chr(13)
If m_intUpdate = 0 Then
Set Interest = Server.CreateObject("ExAir.Interest")
set rstInterests = Interest.ListAll(m_strDSN)
Else
Set Member = Server.CreateObject("ExAir.Member")
Set rstInterests = Member.ListInterests(m_strDSN, m_lngAccountID)
End If
Response.Write ""
End Sub
'
' Take values from the submitted form and assign to page level variables.
' These variables will in turn be passed to the database. If the database
' update fails, the form will be displayed again with these values filled
' into the correct fields.
'
Sub GetValuesFromForm
m_strFirstName = Trim(Request.Form("FirstName"))
m_strLastName = Trim(Request.Form("LastName"))
m_strMiddleName = Trim(Request.Form("MiddleName"))
m_strKnownAs = Trim(Request.Form("KnownAs"))
m_strGender = Request.Form("Gender")
m_strAddress1 = Trim(Request.Form("Address1"))
m_strAddress2 = Trim(Request.Form("Address2"))
m_strCity = Trim(Request.Form("City"))
m_strState = Trim(Request.Form("State"))
m_strPostCode = Trim(Request.Form("PostCode"))
m_strCountry = Trim(Request.Form("Country"))
m_strHomePhone = Trim(Request.Form("HomePhone"))
m_strBusinessPhone = Trim(Request.Form("BusinessPhone"))
m_strFax = Trim(Request.Form("Fax"))
m_strEmail = Trim(Request.Form("Email"))
m_strWebSite = Trim(Request.Form("WebSite"))
m_strMeal = Trim(Request.Form("Meal"))
m_strSeating = Trim(Request.Form("Seating"))
m_strExitRow = Trim(Request.Form("ExitRow"))
End Sub
'
' Call the correct method for updating the database based on whether this is
' an existing member updating information or a new member creating a database
' entry. Return 0 if successful or 1 if an error is encountered.
'
Function UpdateDatabase
On Error Resume Next
Dim Member, lngNewAccountID
Set Member = Server.CreateObject("ExAir.Member")
If m_intUpdate = 1 Then
Member.Update m_strDSN, m_lngAccountID, m_strFirstName, m_strLastName, m_strMiddleName, _
m_strKnownAs, m_strGender, m_strAddress1, m_strAddress2, m_strCity, m_strState, m_strPostCode, m_strCountry, _
m_strHomePhone, m_strBusinessPhone, m_strFax, m_strEmail, m_strWebSite, _
m_strMeal, m_strSeating, m_strExitRow
Else
m_lngAccountID = Member.AddNew(m_strDSN, m_strFirstName, m_strLastName, m_strMiddleName, _
m_strKnownAs, m_strGender, m_strAddress1, m_strAddress2, m_strCity, m_strState, m_strPostCode, m_strCountry, _
m_strHomePhone, m_strBusinessPhone, m_strFax, m_strEmail, m_strWebSite, _
m_strMeal, m_strSeating, m_strExitRow, 50000)
Session("AccountID") = m_lngAccountID
End If
If Err.Number = 0 Then
Member.UpdateInterests m_strDSN, m_lngAccountID, Request.Form("Interest")
Else
ContextObject.SetAbort
End If
If Err.Number = 0 Then
UpdateDatabase = 0
Else
ContextObject.SetAbort
UpdateDatabase = 1
End If
End Function
Sub OnTransactionCommit
End Sub
Sub OnTransactionAbort
m_strMainPrompt = "We're sorry, a problem occurred while trying to update the database. Please try again later. "
End Sub
%>
|