<% @ LANGUAGE = VBScript %> <% Option Explicit %> <% Response.Expires = -1 %> <% '+-- ' Hong-Minh Pho ' ' 14 Feb 2002 ' ' Registration Page '--+ %> <% ' global variables Dim strPath Dim strConnect Dim strMe strPath = Request.ServerVariables("PATH_TRANSLATED") Call ExtractDataRev(strPath,"\") if Right(strPath,1) <> "\" Then strPath=strPath & "\" strMe = Request.ServerVariables("SCRIPT_NAME") strConnect="DRIVER=Microsoft Access Driver (*.mdb); DBQ=" & strPath & "HLC-prereg02.mdb" Call Main %> <% Sub Main Dim strErrMsg Dim strErrLst Select Case UCase(Request.ServerVariables("REQUEST_METHOD")) Case "POST": strErrLst = ValidateFields(strErrMsg) if Len(strErrLst)>0 Then Call LoginQuery(Array(strErrLst,strErrMsg)) Else If AddUser() = 0 Then Call NotifyMail Response.Redirect("Thank.htm") Else strErrMsg = "Error. Form contents not sent.
" Call LoginQuery(Array("",strErrMsg)) End if End if Case "GET": Call LoginQuery(Array("","")) End Select End Sub %> <% Function SendMail(strHost,strUserName,strFromAddress,strToAddress,strCC,strSubject,strMsg) Dim objMail Set objMail=server.CreateObject("IonMail.Mailer") objMail.Init objMail.RemoteHost = strHost objMail.FromName = strUserName objMail.FromAddress = strFromAddress objMail.Recipient = strToAddress objMail.CC = strCC objMail.Subject = strSubject objMail.BodyText = strMsg objMail.SMTPLog = strPath & "Smtp.log" SendMail=objMail.SendMail objMail.Remove End Function %> <% Sub NotifyMail Dim strSql Dim strEmailAddress Dim strFirst Dim strLast Dim strAddress1 Dim strAddress2 Dim strCity Dim strState Dim strZip Dim strPhone Dim strComment Dim strUsername Dim strSubject Dim strMsg strEmailAddress=Trim(Request.Form("EmailAddress")) strFirst=Filter("><'%~" & Chr(34),Trim(Request.Form("First")),True) strLast=Filter("><'%~" & Chr(34),Trim(Request.Form("Last")),True) strAddress1=Filter("><'%~" & Chr(34),Trim(Request.Form("Address1")),True) strAddress2=Filter("><'%~" & Chr(34),Trim(Request.Form("Address2")),True) strCity=Filter("><'%~" & Chr(34),Trim(Request.Form("City")),True) strState=Filter("><'%~" & Chr(34),UCase(Trim(Request.Form("State"))),True) strZip=Filter("><'%~" & Chr(34),Trim(Request.Form("Zip")),True) strPhone=Filter("><'%~" & Chr(34),Trim(Request.Form("Phone")),True) strComment=Filter("><'%~" & Chr(34),Trim(Request.Form("Comment")),True) strUserName=strFirst & " " & strLast strSubject = "HLC Brochure Request" strMsg = "" strMsg = strMsg & "NAME: " & strUserName & vbCRLF strMsg = strMsg & "ADDRESS: " & VbCRLf strMsg = strMsg & " " & strAddress1 & vbCRLF strMsg = strMsg & " " & strAddress2 & vbCRLF strMsg = strMsg & "CITY/STATE/ZIP: " & strCity & ", " & strState & " " & strZip & vbCRLF strMsg = strMsg & "PHONE: " & strPhone & vbCRLF strMsg = strMsg & "EMAIL ADDRESS: " & strEmailAddress & vbCRLF if SendMail("hobbes.cal.org",strUserName,strEmailAddress,"chris@cal.org","chris@cal.org",strSubject, strMsg)>1 Then Call SendMail("hobbes.cal.org",strUserName,strEmailAddress,"chris@cal.org","chris@cal.org",strSubject, strMsg) End if End Sub %> <% Function ChkInstrMap(Byval strMap, Byval strField, Byval strInfo, Byval blnToggle) Dim blnReturn Dim strReturn Dim X blnReturn = False strReturn = "" For X = 1 To Len(strInfo) If (blnToggle) Then If InStr(strMap, Mid(strInfo, X, 1)) > 0 Then blnReturn = True strReturn = "
  • " & strField & " Field must NOT contain the listed characters [" & Server.HTMLEncode(strMap) & "]

  • " Exit For End If Else If InStr(strMap, Mid(strInfo, X, 1)) = 0 Then blnReturn = True strReturn = "
  • " & strField & " Field must ONLY contain the listed characters [" & Server.HTMLEncode(strMap) & "]

  • " Exit For End If End If Next ChkInstrMap = strReturn End Function %> <% Function ExtractData(strExtra, ByVal strCh ) '+--- ' Extract from the left of the string till the delimiter string. ' Returns the extracted string and the remainder string. '---+ Dim strTmp Dim lngPos strTmp = "" lngPos = InStr(strExtra, strCh) If lngPos > 0 Then strTmp = Mid(strExtra, 1, lngPos - 1) strExtra = Mid(strExtra, lngPos + Len(strCh)) Else strTmp = strExtra strExtra = "" End If ExtractData = strTmp End Function %> <% Function ExtractDataRev(strExtra, ByVal strCh ) '+--- ' Extract from the Right of the string till the delimiter string. ' Returns the extracted string and the remainder string. '---+ Dim strTmp Dim lngPos strTmp = "" lngPos = InStrRev(strExtra, strCh) If lngPos > 0 Then strTmp = Mid(strExtra, lngPos + Len(strCh), Len(strExtra) - lngPos) strExtra = Mid(strExtra, 1, lngPos - 1) Else strTmp = strExtra strExtra = "" End If ExtractDataRev = strTmp End Function %> <% Function Filter(strMap,strInput,blnFilter) Dim X Dim strReturn Dim strCh For X=1 to Len(strInput) strCh=Mid(strInput,X,1) if blnFilter Then if Instr(strMap,strCh)=0 Then strReturn=strReturn & strCh Else if Instr(strMap,strCh)>0 Then strReturn=strReturn & strCh End if Next Filter=strReturn End Function %> <% Function Val(vntValue) On Error Resume Next Val = Cdbl(vntValue) if Err<>0 then Val=0 End Function %> <% Function Quote(strValue) Quote = chr(34) & strValue & chr(34) End Function %> <% Function iif(blnExpr,vntTrueResult,vntFalseResult) if blnExpr Then iif=vntTrueResult else iif=vntFalseResult end if End Function %> <% Function ValidateFields(strErrMsg) Dim strFieldValue Dim strFieldName Dim strErrLst Dim strReturn strErrLst="" strFieldName="EmailAddress" strFieldValue=Trim(Request.Form(strFieldName)) if Len(strFieldValue) = 0 Then strReturn = "
  • " & "Email Address" & " Field is required and must be filled out!

  • " Elseif Len(strFieldValue)<6 then strReturn = "
  • " & "Email Address" & " Field is too short, it must be at least 6 characters long!

  • " Elseif Instr(strFieldValue,"@") > 1 and (Mid(strFieldvalue,Len(strFieldValue)-3,1)= "." or Mid(strFieldvalue,Len(strFieldValue)-2,1)= ".") Then strReturn = strReturn & ChkInstrMap("'~`^&*$%," & Chr(34), "Email Address", strFieldValue, True) Else strReturn = strReturn & "
  • " & "Email Address" & " Field is Invalid

  • " End if strErrMsg = strErrMsg & strReturn if Len(strReturn)>0 Then strErrLst = strErrLst & strFieldName & "~" strFieldName="First" strFieldValue=Trim(Request.Form(strFieldName)) if Len(strFieldValue) = 0 Then strReturn = "
  • " & "First Name" & " Field is required and must be filled out!

  • " else strReturn = ChkInstrMap("#%@'~`^&*$," & Chr(34), "First", strFieldValue, True) end if strErrMsg = strErrMsg & strReturn if Len(strReturn)>0 Then strErrLst = strErrLst & strFieldName & "~" strFieldName="Last" strFieldValue=Trim(Request.Form(strFieldName)) if Len(strFieldValue) = 0 Then strReturn = "
  • " & "Last Name" & " Field is required and must be filled out!

  • " else strReturn = ChkInstrMap("#%@'~`^&*$," & Chr(34), "Last", strFieldValue, True) end if strErrMsg = strErrMsg & strReturn if Len(strReturn)>0 Then strErrLst = strErrLst & strFieldName & "~" strFieldName="Address1" strFieldValue=Trim(Request.Form(strFieldName)) if Len(strFieldValue) = 0 Then strReturn = "
  • " & "Address" & " Field is required and must be filled out!

  • " else strReturn = ChkInstrMap("#%@'~`^&*$," & Chr(34), "Address", strFieldValue, True) end if strErrMsg = strErrMsg & strReturn if Len(strReturn)>0 Then strErrLst = strErrLst & strFieldName & "~" strFieldName="State" strFieldValue=Trim(Request.Form(strFieldName)) if Len(strFieldValue) = 0 Then strReturn = "
  • " & "State" & " Field is required and must be filled out!

  • " else strReturn = ChkInstrMap("#%@'~`^&*$," & Chr(34), "State", strFieldValue, True) end if strErrMsg = strErrMsg & strReturn if Len(strReturn)>0 Then strErrLst = strErrLst & strFieldName & "~" strFieldName="Zip" strFieldValue=Trim(Request.Form(strFieldName)) if Len(strFieldValue) = 0 Then strReturn = "
  • " & "Zip" & " Field is required and must be filled out!

  • " else strReturn = ChkInstrMap("#%@'~`^&*$," & Chr(34), "Zip", strFieldValue, True) end if strErrMsg = strErrMsg & strReturn if Len(strReturn)>0 Then strErrLst = strErrLst & strFieldName & "~" strFieldName="Comment" strFieldValue=Trim(Request.Form(strFieldName)) if Len(strFieldValue) > 199 Then strReturn = "
  • " & "Comments" & " Field must be less than 200 characters!

  • " else strReturn = ChkInstrMap("#%@'~`^&*$," & Chr(34), "Comment", strFieldValue, True) end if strErrMsg = strErrMsg & strReturn if Len(strReturn)>0 Then strErrLst = strErrLst & strFieldName & "~" ValidateFields = strErrLst End Function %> <% Function SqlExecute(ByVal strConnect, ByVal strSql) On Error Resume Next Dim objCmd Set objCmd = Server.CreateObject("ADODB.Command") objCmd.ActiveConnection = strConnect objCmd.CommandType = adCmdText objCmd.CommandTimeout = 30 objCmd.CommandText = strSql objCmd.Execute SqlExecute = Err.Number Set objCmd = Nothing On Error Goto 0 End Function %> <% Function AddUser() Dim strSql Dim strEmailAddress Dim strFirst Dim strLast Dim strAddress1 Dim strAddress2 Dim strCity Dim strState Dim strZip Dim strPhone Dim strComment strEmailAddress=Trim(Request.Form("EmailAddress")) strFirst=Filter("><'%~" & Chr(34),Trim(Request.Form("First")),True) strLast=Filter("><'%~" & Chr(34),Trim(Request.Form("Last")),True) strAddress1=Filter("><'%~" & Chr(34),Trim(Request.Form("Address1")),True) strAddress2=Filter("><'%~" & Chr(34),Trim(Request.Form("Address2")),True) strCity=Filter("><'%~" & Chr(34),Trim(Request.Form("City")),True) strState=Filter("><'%~" & Chr(34),UCase(Trim(Request.Form("State"))),True) strZip=Filter("><'%~" & Chr(34),Trim(Request.Form("Zip")),True) strPhone=Filter("><'%~" & Chr(34),Trim(Request.Form("Phone")),True) strComment=Filter("><'%~" & Chr(34),Trim(Request.Form("Comment")),True) strSql = "INSERT INTO UserList (EMAILADDRESS,FIRST,LAST,ADDRESS1,ADDRESS2,CITY,STATE,ZIP,PHONE,COMMENT,[TIMESTAMP]) " strSql=strSql & "VALUES ('" & strEmailAddress & "'," strSql=strSql & "'" & iif(Len(strFirst)>0,strFirst," ") & "'," strSql=strSql & "'" & iif(Len(strLast)>0,strLast," ") & "'," strSql=strSql & "'" & iif(Len(strAddress1)>0,strAddress1," ") & "'," strSql=strSql & "'" & iif(Len(strAddress2)>0,strAddress2," ") & "'," strSql=strSql & "'" & iif(Len(strCity)>0,strCity," ") & "'," strSql=strSql & "'" & iif(Len(strState)>0,strState," ") & "'," strSql=strSql & "'" & iif(Len(strZip)>0,strZip," ") & "'," strSql=strSql & "'" & iif(Len(strPhone)>0,strPhone," ") & "'," strSql=strSql & "'" & iif(Len(strComment)>0,strComment," ") & "'," strSql=strSql & "#" & Now() & "#);" AddUser = SqlExecute(strConnect, strSql) End Function %> <% Sub LoginQuery (Byval arrErr) %> <% Dim strSql Dim strEmailAddress Dim strFirst Dim strLast Dim strAddress1 Dim strAddress2 Dim strCity Dim strState Dim strZip Dim strPhone Dim strComment strEmailAddress=Trim(Request.Form("EmailAddress")) strFirst=Filter("><'%~" & Chr(34),Trim(Request.Form("First")),True) strLast=Filter("><'%~" & Chr(34),Trim(Request.Form("Last")),True) strAddress1=Filter("><'%~" & Chr(34),Trim(Request.Form("Address1")),True) strAddress2=Filter("><'%~" & Chr(34),Trim(Request.Form("Address2")),True) strCity=Filter("><'%~" & Chr(34),Trim(Request.Form("City")),True) strState=Filter("><'%~" & Chr(34),UCase(Trim(Request.Form("State"))),True) strZip=Filter("><'%~" & Chr(34),Trim(Request.Form("Zip")),True) strPhone=Filter("><'%~" & Chr(34),Trim(Request.Form("Phone")),True) strComment=Filter("><'%~" & Chr(34),Trim(Request.Form("Comment")),True) %> CAL Response Form

    2002 Heritage Languages in America
    Conference Brochure

    Please download a color PDF copy of the conference brochure by clicking here.

    Complete, updated conference information - including online registration - is available by clicking here.

    Items indicated in red are required.


    <%= arrErr(1) %>

    " method="POST" >
    First Name:
    Last Name:
    Address:
    City:
    State:
    Zip Code:
    E-mail Address:
    Weekday Phone:
    Quantity:


    <% End Sub %>