<%@ LANGUAGE="VBSCRIPT" %> <% val = 0 pass = 0 'NAME of the e-mail field is stored in this string variable emailField = "emailadd" 'All fields are acted as required except those the NAME of which is in this string variable exceptions = Array("emailadd") dim errorMessage, badItem, inputArray(), message_body : badItem=-1 redim inputArray(50,2) 'Get all what is submitted IF request.Form.Count > 0 THEN execute("const numberOfFields =" & request.Form.Count) execute("redim inputArray("&numberOfFields&",2)") FOR i = 1 TO request.Form.Count inputArray(i,1) = request.Form.Key(i) inputArray(i,2) = request.Form.Item(i) NEXT validate ELSEIF request.QueryString.Count > 0 THEN execute("const numberOfFields =" & request.QueryString.Count) execute("redim inputArray("&numberOfFields&",2)") FOR i = 1 TO request.QueryString.Count inputArray(i,1) = request.QueryString.Key(i) inputArray(i,2) = request.QueryString.Item(i) NEXT validate END IF SUB validate 'Check for empty fields FOR i = 1 TO numberOfFields isException = False IF inputArray(i,2)="" THEN FOR j = 0 to UBound(exceptions) IF inputArray(i,1) = exceptions(j) THEN isException = TRUE NEXT IF NOT isException THEN badItem = i errorMessage = "At least one of the required fields is left empty." EXIT SUB END IF END IF isException = False val = 1 NEXT 'Check email address for basic errors IF inputArray(8,2) <> "" THEN FOR i = 1 TO numberOfFields IF emailField = inputArray(i,1) THEN validationResult = validateEmail(inputArray(i,2)) IF validationResult <> "" THEN errorMessage = validationResult badItem = i EXIT SUB END IF END IF NEXT END IF 'Check password field IF inputArray(10,2) <> inputArray(11,2) THEN badItem = 99 errorMessage = "Passwords do not match. Please try again." ELSE pass = 1 END IF END SUB FUNCTION validateEmail(strAddress) IF InStr(strAddress,"@") < 2 THEN validateEmail = "Email address must contain ""@"" sign." ELSEIF InStr(Right(strAddress,Len(strAddress)-InStr(strAddress,"@")),".") < 2 OR InStr(Right(strAddress,Len(strAddress)-InStr(strAddress,"@")),".") = Len(strAddress)-InStr(strAddress,"@") THEN validateEmail = "Email address must contain ""."" sign." END IF END FUNCTION IF val = 1 and pass = 1 Then ' Write user info to database set dbConn=server.createobject("adodb.connection") ConnString = "DRIVER=Microsoft Access Driver (*.mdb);DBQ=" & Server.MapPath("db/SummerReading.mdb") & ";uid=;pw=;" dbConn.Open ConnString ' A connection to the db. dim rs set rs = Server.CreateObject("ADODB.RecordSet") rs.cursorlocation = adUseServer rs.CursorType = adOpenKeySet rs.LockType = adLockOptimistic rs.open "tblSummerReading_Users",dbconn, , ,adCmdTable IF rs.EOF = TRUE THEN dup_user = "N" ELSE Do WHILE NOT rs.EOF IF TRIM(LCASE(inputArray(9,2))) = TRIM(LCASE(rs("UserName"))) THEN badItem = 99 errorMessage = "User name already in use. Please chooses another user name." dup_user = "Y" EXIT DO ELSE dup_user = "N" END IF rs.MoveNext LOOP END IF IF dup_user = "N" THEN rs.addnew rs("FirstName") = TRIM(request.form("first_name")) rs("LastName") = TRIM(request.form("last_name")) rs("Age") = request.form("age") rs("SchoolName") = request.form("school_name") rs("grade") = request.form("grade") rs("goal") = request.form("goal") IF request.form("phone") <> "" THEN rs("Phone") = TRIM(request.form("phone")) END IF IF request.form("emailadd") <> "" THEN rs("EmailAdd") = TRIM(request.form("emailadd")) END IF rs("UserName") = TRIM(request.form("user_name")) rs("Password2") = TRIM(request.form("password2")) rs.update rs.close set rs = nothing dbconn.close set dbconn = nothing Session("user_name") = TRIM(request.form("user_name")) Session("user_pass2") = TRIM(request.form("password2")) Session("new_user") = "Y" Response.Redirect "SummerReading_login.asp" END IF END IF randomize Dim randomnum Dim pictname randomnum = int(rnd*6) + 1 Select Case randomnum Case 1 pictname = "SRP-1.gif" Case 2 pictname = "SRP-2.gif" Case 3 pictname = "SRP-3.gif" Case 4 pictname = "SRP-4.gif" Case 5 pictname = "SRP-5.gif" Case 6 pictname = "SRP-6.gif" End Select set dbConn_school=server.createobject("adodb.connection") ConnString_school = "DRIVER=Microsoft Access Driver (*.mdb);DBQ=" & Server.MapPath("db/SummerReading.mdb") & ";uid=;pw=;" dbConn_school.Open ConnString_school dim rs_school set rs_school = Server.CreateObject("ADODB.RecordSet") rs_school.cursorlocation = adUseServer rs_school.CursorType = adOpenKeySet rs_school.LockType = adLockOptimistic qry_school = "SELECT * FROM tblConfigSchools ORDER BY SchoolName" rs_school.open qry_school,dbconn_school %> <%= kids_program_title %> sign up





<% IF errorMessage<>"" THEN %> <% END IF %>


<%=errorMessage%>
first name
>
last name
>
age
school
<% IF use_goals = "Y" THEN %> <% IF goal_type = "books" THEN %> goal (number of books)
<% ELSE %> goal (number of <%= goal_type %>)
<% END IF %>
grade (this coming fall)
phone number
>
e-mail address (optional)
>
user name
>
password
>
password again
>

<% rs_school.close set rs_school = nothing dbconn_school.close set dbconn_school = nothing %>