<%@ 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
">Return to Exploration Air Home Page
Return to Frequent Flyer Home Page FREQUENT FLYER  HOME PAGE
Manage Your Profile Click here to learn how this page works

<%= m_strMainPrompt %>
>
 Personal Information
First Name:
Last Name:
 Middle Name:
 Known As:
 Gender:
Address 1
 Address 2
City
State/Province
Postal Code:
Country:
 Contact Information
 Home
 Phone
 Business
 Phone
 Fax:
 E-mail
 Address:
 Web Site:
 In-flight Preferences
 Meal
 Preference:
 Seat
 Preference:
 Special
 Seating:

<% ' ' ListInterests is a function on this page which will ' dynamically generate a form based on the interests currently being tracked ' in the database and check off the ones previously selected by the user. ' ListInterests %>

©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 "" & Chr(13) strCategoryName = rstInterests("Description") Response.Write strTH & strCategoryName & "" & Chr(13) Response.Write strSpacer intInterestCounter = 0 Do Until rstInterests.EOF intInterestCounter = intInterestCounter + 1 strNewCategoryName = rstInterests("Description") If strNewCategoryName <> strCategoryName Then intInterestCounter = 1 strCategoryName = strNewCategoryName Response.Write strSpacer Response.Write strTH & strCategoryName & "" & Chr(13) Response.Write strSpacer End If strInterestName = rstInterests("InterestDescription") intInterestNumber = rstInterests("InterestID") strCheckBox = strTD & "" & Chr(13) & strCheckBox End If If m_intUpdate <> 0 Then If rstInterests("AccountID") = m_lngAccountID Then strCheckBox = strCheckBox & " CHECKED" End If End If strCheckBox = strCheckBox & ">" & strInterestName & "" & Chr(13) Response.Write strCheckBox rstInterests.MoveNext If (intInterestCounter Mod 3) = 0 Then Response.Write "" & Chr(13) End If Loop 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 %>