This is a multi-part message in MIME format.
------=_NextPart_000_0026_01C45737.68254FB0
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Applies to: Microsoft FrontPage 2000, Microsoft Access 2000, IIS 5.0
Operating System: Microsoft Windows 2000 Professional
I am trying to protect a portion of a web site by allowing users to =
register a username and password & then login with those details, but so =
far I am having only marginal success. I am far from an expert on ASP =
programming, indeed the code I am using comes from "Sams Teach Yourself =
E-Commerce Programming with ASP" but it is ideally suited for my =
purpose.
In short, there are 3 .asp pages (register.asp, login.asp & =
checkpassword.asp - the code for each is below), a global.asa file was =
automatically created and by following the instructions in the book, I =
also created a small Access database called UserDB.mdb, which stores the =
username & password of each user when they register & also verify's =
those details when the user attempts to login again.
The DNS connection has been setup within FrontPage and I have verified =
that this connection works by clicking "Tools", "Web Settings" & the =
"Database" tab, highlighting the DNS connection & clicking Verify.=20
The problems seem to occur when I try to register a new username & =
password, for some strange reason the details I enter are not being =
saved in the database table, and to compound the problem further, if I =
register just a username, or a password but not both, the page simply =
refreshes itself with empty boxes instead of giving an error message to =
indicate that a "username" or "password" must be entered, which if I =
have read the code correctly on the "checkpassword.asp" page, should =
happen.
To further confuse the situation, if I manually enter a username & =
password into the database table and then attempt to click a hyperlink =
taking me to a "test.asp" page, with the INCLUDE FILE: <!-- #INCLUDE =
FILE=3D"checkpassword.asp" -->, I am automatically taken to the =
login.asp, where if I enter the username & password that I manually put =
into the database table, it takes me to the selected "Protected" web =
page. In my mind that clearly shows the DNS connection is working but =
yet it won't store new registered details into the database table, which =
is extremely confusing.
If anyone can see what I may be doing wrong, or point me in the right =
direction, your help & advice will be greatly appreciated. As I pointed =
out earlier I am far from an expert, so any help you can give would be =
ideally suited towards a newbie mentality.
Below is the code for the three .asp pages:
Many thanks in advance
Wayne Smith
register.asp
<%
nextPage =3D Request( "nextPage" )
newUsername =3D Request( "newUsername" )
newPassword =3D Request( "newPassword" )
%>
<HTML>
<HEAD><TITLE>Register"</TITLE></HEAD>
<BODY>
Register at this Web site by selecting a username and password:
<FORM METHOD=3D"post" ACTION=3D"<%=3DnextPage%>">
<INPUT NAME=3D"newUser" TYPE=3D"hidden" VALUE=3D"1">
<P><B>USERNAME:</B>
<INPUT NAME=3D"newUsername" SIZE=3D20 MAXLENGTH=3D"20"=20
VALUE=3D"<%=3DServer.HTMLEncode( newUsername )%>">
<P><B>PASSWORD:</B>
<INPUT NAME=3D"newPassword" SIZE=3D20 MAXLENGTH=3D"20"=20
VALUE=3D"<%=3DServer.HTMLEncode( newPassword )%>">
<P><INPUT TYPE=3D"submit" VALUE=3D"Register!">
</FORM>
</BODY>
</HTML>
-------------------------------------------------------------------------=
---------
login.asp
<HTML>
<HEAD><TITLE>Login</TITLE></HEAD>
<BODY>
<%=3DloginMessage%>
<FORM METHOD=3D"post" ACTION=3D"<%=3DnextPage%>">
<P><B>USERNAME:</B>
<INPUT NAME=3D"username" SIZE=3D20 MAXLENGTH=3D"20"=20
VALUE=3D"<%=3DServer.HTMLEncode( username )%>">
<P><B>PASSWORD:</B>
<INPUT NAME=3D"password" SIZE=3D20 MAXLENGTH=3D"20"=20
VALUE=3D"<%=3DServer.HTMLEncode( password )%>">
<p><INPUT NAME=3D"addCookie" TYPE=3D"Checkbox" VALUE=3D"1"> Remember me =
with a cookie
<P><INPUT TYPE=3D"submit" VALUE=3D"Login">
</FORM>
<p>
<a href=3D"register.asp?nextpage=3D<%Server.URLEncode( nextpage )%>">
Click here to register</a>
</BODY>
</HTML>
-------------------------------------------------------------
checkpassword.asp
<%
CONST useSession =3D TRUE
' Retrieve Form Variables
username =3D TRIM( Request( "username" ) )
password =3D TRIM( Request( "password" ) )
newUser =3D TRIM( Request( "newUser" ) )
newUsername =3D TRIM( Request( "newUsername" ) )
newPassword =3D TRIM( Request( "newPassword" ) )
addCookie =3D TRIM( Request( "addCookie" ) )
' Retrieve Current Page
nextPage =3D Request.ServerVariables( "SCRIPT_NAME" )
' Ready Database Connection
Set Con =3D Server.CreateObject( "ADODB.Connection" )
Con.Open "userDNS"
' Add New User
IF newUser <> "" THEN
IF newUsername =3D "" THEN
showError "You must enter a username"
END IF
IF newPassword =3D "" THEN
showError "You must enter a password"
END IF
IF usernameTaken( newUsername ) THEN
showError "The username you entered has already " &_
"been chosen by a previous user. Please select " &_
"a new username"
END IF
sqlString =3D "INSERT INTO userlist ( user_username, user_password ) " =
&_
"VALUES ('" & newUsername & "','" & newPassword & "')"
Con.Execute sqlString
username =3D newUsername
password =3D newPassword
IF useSession THEN Session( "loggedIn" ) =3D "Yes"
END IF
' Authenticate User
IF Session( "loggedIn" ) =3D "" THEN=20
IF username =3D "" OR password =3D "" THEN
loginMessage =3D "You must login before you can view this page."
showLogin
END IF
result =3D validateLogin( username, password )
IF result =3D 1 THEN
loginMessage =3D "You entered an unregistered username."
showLogin
END IF
IF result =3D 2 THEN
loginMessage =3D "You did not enter a valid password."
showLogin
END IF
IF useSession THEN Session( "loggedIn" ) =3D "Yes"
END IF
' Add a Cookie
IF addCookie <> "" THEN
Response.Cookies( "username" ) =3D username
Response.Cookies( "username" ).Expires =3D "12/25/2037"
Response.Cookies( "password" ) =3D password
Response.Cookies( "password" ).Expires =3D "12/25/2037"
END IF
' Create Security Query String Variable
sq =3D "username=3D" & Server.HTMLEncode( username ) & "&"
sq =3D sq & "password=3D" & Server.HTMLEncode( password )=20
' Create Security Form Variable
sf =3D "<input name=3D""username"" type=3D""hidden"" "
sf =3D sf & "value=3D""" & Server.HTMLEncode( username ) & """>"
sf =3D sf & "<input name=3D""password"" type=3D""hidden"" "
sf =3D sf & "value=3D""" & Server.HTMLEncode( password ) & """>"
' Check Username and Password
FUNCTION validateLogin( theUsername, thePassword )
sqlString =3D "SELECT user_password FROM userlist " &_
"WHERE user_username=3D'" & fixQuotes( username ) & "'"=20
Set RS =3D Con.Execute( sqlString )
IF RS.EOF THEN
validateLogin =3D 1
ELSE
IF RS( "user_password" ) <> thePassword THEN
validateLogin =3D 2
ELSE
validateLogin =3D 0
END IF
END IF
END FUNCTION
' Check Whether Username Already Taken
FUNCTION usernameTaken( theUsername )
sqlString =3D "SELECT user_id FROM userlist " &_
"WHERE user_username=3D'" & fixQuotes( theUsername ) & "'"
Set RS =3D Con.Execute( sqlString )
IF RS.EOF THEN
usernameTaken =3D FALSE
ELSE
usernameTaken =3D TRUE
END IF
RS.Close
Set RS =3D Nothing
END FUNCTION
' Show Error Page
SUB showError( theError )
%>
<HTML>
<HEAD><TITLE>Problem</TITLE></HEAD>
<BODY>
<b>There was a problem with your registration information</b>
<br><%=3DtheError %>
<FORM METHOD=3D"POST" ACTION=3D"register.asp">
<INPUT NAME=3D"nextpage" TYPE=3D"hidden"
VALUE=3D"<%=3Dnextpage%>">
<INPUT NAME=3D"newUsername" TYPE=3D"hidden"
VALUE=3D"<%=3DServer.HTMLEncode( newUsername )%>">
<INPUT NAME=3D"newPassword" TYPE=3D"hidden"
VALUE=3D"<%=3DServer.HTMLEncode( newPassword )%>">
<INPUT TYPE=3D"SUBMIT" VALUE=3D"Continue">
</FORM>
</BODY>
</HTML>
<%
Response.End
END SUB
' Show the Login Page
SUB showLogin
%>
<!-- #INCLUDE FILE=3D"login.asp" -->
<%
Response.End
END SUB
FUNCTION fixQuotes( theString )
fixQuotes =3D REPLACE( theString, "'", "''" )
END FUNCTION
%>
------=_NextPart_000_0026_01C45737.68254FB0
Content-Type: text/html;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-8859-1">
<META content=3D"MSHTML 6.00.2800.1400" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=3D#ffffff>
<DIV><FONT size=3D1>
<DIV><FONT size=3D2>Applies to: Microsoft FrontPage 2000, Microsoft =
Access 2000,=20
IIS 5.0</FONT></DIV>
<DIV><FONT size=3D2>Operating System: Microsoft Windows 2000=20
Professional</FONT></DIV>
<DIV><FONT size=3D2></FONT> </DIV>
<DIV><FONT size=3D2>I am trying to protect a portion of a web site by =
allowing=20
users to register a username and password & then login with those =
details,=20
but so far I am having only marginal success. I am far from an expert on =
ASP=20
programming, indeed the code I am using comes from "Sams Teach Yourself=20
E-Commerce Programming with ASP" but it is ideally suited for my=20
purpose.</FONT></DIV>
<DIV><FONT size=3D2></FONT> </DIV>
<DIV><FONT size=3D2>In short, there are 3 .asp pages (register.asp, =
login.asp=20
& checkpassword.asp - the code for each is below), a global.asa file =
was=20
automatically created and by following the instructions in the book, I =
also=20
created a small Access database called UserDB.mdb, which stores the =
username=20
& password of each user when they register & also verify's those =
details=20
when the user attempts to login again.</FONT></DIV>
<DIV><FONT size=3D2></FONT> </DIV>
<DIV><FONT size=3D2>The DNS connection has been setup within FrontPage =
and I have=20
verified that this connection works by clicking "Tools", "Web Settings" =
&=20
the "Database" tab, highlighting the DNS connection & clicking =
Verify.=20
</FONT></DIV>
<DIV><FONT size=3D2></FONT> </DIV>
<DIV><FONT size=3D2>The problems seem to occur when I try to register a =
new=20
username & password, for some strange reason the details I enter are =
not=20
being saved in the database table, and to compound the problem further, =
if I=20
register just a username, or a password but not both, the page simply =
refreshes=20
itself with empty boxes instead of giving an error message to indicate =
that a=20
"username" or "password" must be entered, which if I have read the code=20
correctly on the "checkpassword.asp" page, should happen.</FONT></DIV>
<DIV><FONT size=3D2></FONT> </DIV>
<DIV><FONT size=3D2>To further confuse the situation, if I manually =
enter a=20
username & password into the database table and then attempt to =
click a=20
hyperlink taking me to a "test.asp" page, with the INCLUDE FILE: <!-- =
#INCLUDE FILE=3D"checkpassword.asp" -->, I am automatically taken to =
the=20
login.asp, where if I enter the username & password that I manually =
put into=20
the database table, it takes me to the selected "Protected" web page. In =
my mind=20
that clearly shows the DNS connection is working but yet it won't store =
new=20
registered details into the database table, which is extremely=20
confusing.</FONT></DIV>
<DIV><FONT size=3D2></FONT> </DIV>
<DIV><FONT size=3D2>If anyone can see what I may be doing wrong, or =
point me in=20
the right direction, your help & advice will be greatly appreciated. =
As I=20
pointed out earlier I am far from an expert, so any help you can give =
would be=20
ideally suited towards a newbie mentality.</FONT></DIV>
<DIV><FONT size=3D2></FONT> </DIV>
<DIV><FONT size=3D2>Below is the code for the three .asp =
pages:</FONT></DIV>
<DIV><FONT size=3D2></FONT> </DIV>
<DIV><FONT size=3D2>Many thanks in advance</FONT></DIV>
<DIV><FONT size=3D2>Wayne Smith</FONT></DIV>
<DIV><FONT size=3D2></FONT> </DIV>
<DIV> </DIV>
<DIV><FONT size=3D2></FONT> </DIV>
<DIV><FONT size=3D2>register.asp</FONT></DIV>
<DIV><FONT size=3D2></FONT> </DIV>
<DIV><FONT color=3D#800000><FONT size=3D2><%</FONT></DIV>
<DIV>
<P><FONT size=3D2>nextPage =3D Request( "nextPage" )</FONT></P>
<P><FONT size=3D2>newUsername =3D Request( "newUsername" )</FONT></P>
<P><FONT size=3D2>newPassword =3D Request( "newPassword" )</FONT></P>
<P><FONT size=3D2>%></FONT></P></FONT><FONT color=3D#0000c0>
<P><FONT size=3D2><HTML></FONT></P>
<P><FONT size=3D2><HEAD><TITLE></FONT></FONT><FONT=20
size=3D2>Register"</FONT><FONT color=3D#0000c0><FONT=20
size=3D2></TITLE></HEAD></FONT></P>
<P><FONT size=3D2><BODY></FONT></P></FONT>
<P><FONT size=3D2>Register at this Web site by selecting a username and=20
password:</FONT></P><FONT color=3D#0000c0>
<P><FONT size=3D2><FORM METHOD=3D</FONT></FONT><FONT =
size=3D2>"post"<FONT=20
color=3D#0000c0> ACTION=3D</FONT>"<FONT=20
color=3D#800000><%=3DnextPage%></FONT>"</FONT><FONT =
color=3D#0000c0><FONT=20
size=3D2>></FONT></P>
<P><FONT size=3D2><INPUT NAME=3D</FONT></FONT><FONT =
size=3D2>"newUser"<FONT=20
color=3D#0000c0> TYPE=3D</FONT>"hidden"<FONT color=3D#0000c0>=20
VALUE=3D</FONT>"1"</FONT><FONT color=3D#0000c0><FONT =
size=3D2>></FONT></P>
<P><FONT size=3D2><P><B></FONT></FONT><FONT=20
size=3D2>USERNAME:</FONT><FONT color=3D#0000c0><FONT =
size=3D2></B></FONT></P>
<P><FONT size=3D2><INPUT NAME=3D</FONT></FONT><FONT =
size=3D2>"newUsername"<FONT=20
color=3D#0000c0> SIZE=3D</FONT>20<FONT color=3D#0000c0>=20
MAXLENGTH=3D</FONT>"20"</FONT><FONT color=3D#0000c0><FONT size=3D2> =
</FONT></P>
<P><FONT size=3D2>VALUE=3D</FONT></FONT><FONT size=3D2>"<FONT=20
color=3D#800000><%=3DServer.HTMLEncode( newUsername =
)%></FONT>"</FONT><FONT=20
color=3D#0000c0><FONT size=3D2>></FONT></P>
<P><FONT size=3D2><P><B></FONT></FONT><FONT=20
size=3D2>PASSWORD:</FONT><FONT color=3D#0000c0><FONT =
size=3D2></B></FONT></P>
<P><FONT size=3D2><INPUT NAME=3D</FONT></FONT><FONT =
size=3D2>"newPassword"<FONT=20
color=3D#0000c0> SIZE=3D</FONT>20<FONT color=3D#0000c0>=20
MAXLENGTH=3D</FONT>"20"</FONT><FONT color=3D#0000c0><FONT size=3D2> =
</FONT></P>
<P><FONT size=3D2>VALUE=3D</FONT></FONT><FONT size=3D2>"<FONT=20
color=3D#800000><%=3DServer.HTMLEncode( newPassword =
)%></FONT>"</FONT><FONT=20
color=3D#0000c0><FONT size=3D2>></FONT></P>
<P><FONT size=3D2><P><INPUT TYPE=3D</FONT></FONT><FONT =
size=3D2>"submit"<FONT=20
color=3D#0000c0> VALUE=3D</FONT>"Register!"</FONT><FONT =
color=3D#0000c0><FONT=20
size=3D2>></FONT></P>
<P><FONT size=3D2></FORM></FONT></P></FONT><FONT color=3D#0000c0>
<P><FONT size=3D2></BODY></FONT></P>
<P><FONT size=3D2></HTML></FONT></P>
<P><FONT=20
size=3D2>----------------------------------------------------------------=
------------------</FONT></P>
<P></FONT><FONT size=3D2>login.asp</FONT></P>
<P><FONT color=3D#0000c0 size=3D1><FONT =
size=3D2><HTML></FONT></P></DIV>
<DIV>
<P><FONT size=3D2><HEAD><TITLE></FONT></FONT><FONT=20
size=3D2>Login</FONT><FONT color=3D#0000c0><FONT=20
size=3D2></TITLE></HEAD></FONT></P>
<P><FONT size=3D2><BODY></FONT></P></FONT><FONT color=3D#800000 =
size=3D2>
<P><%=3DloginMessage%></P></FONT><FONT color=3D#0000c0>
<P><FONT size=3D2><FORM METHOD=3D</FONT></FONT><FONT =
size=3D2>"post"<FONT=20
color=3D#0000c0> ACTION=3D</FONT>"<FONT=20
color=3D#800000><%=3DnextPage%></FONT>"</FONT><FONT =
color=3D#0000c0><FONT=20
size=3D2>></FONT></P>
<P><FONT size=3D2><P><B></FONT></FONT><FONT=20
size=3D2>USERNAME:</FONT><FONT color=3D#0000c0><FONT =
size=3D2></B></FONT></P>
<P><FONT size=3D2><INPUT NAME=3D</FONT></FONT><FONT =
size=3D2>"username"<FONT=20
color=3D#0000c0> SIZE=3D</FONT>20<FONT color=3D#0000c0>=20
MAXLENGTH=3D</FONT>"20"</FONT><FONT color=3D#0000c0><FONT size=3D2> =
</FONT></P>
<P><FONT size=3D2>VALUE=3D</FONT></FONT><FONT size=3D2>"<FONT=20
color=3D#800000><%=3DServer.HTMLEncode( username =
)%></FONT>"</FONT><FONT=20
color=3D#0000c0><FONT size=3D2>></FONT></P>
<P><FONT size=3D2><P><B></FONT></FONT><FONT=20
size=3D2>PASSWORD:</FONT><FONT color=3D#0000c0><FONT =
size=3D2></B></FONT></P>
<P><FONT size=3D2><INPUT NAME=3D</FONT></FONT><FONT =
size=3D2>"password"<FONT=20
color=3D#0000c0> SIZE=3D</FONT>20<FONT color=3D#0000c0>=20
MAXLENGTH=3D</FONT>"20"</FONT><FONT color=3D#0000c0><FONT size=3D2> =
</FONT></P>
<P><FONT size=3D2>VALUE=3D</FONT></FONT><FONT size=3D2>"<FONT=20
color=3D#800000><%=3DServer.HTMLEncode( password =
)%></FONT>"</FONT><FONT=20
color=3D#0000c0><FONT size=3D2>></FONT></P>
<P><FONT size=3D2><p><INPUT NAME=3D</FONT></FONT><FONT=20
size=3D2>"addCookie"<FONT color=3D#0000c0> TYPE=3D</FONT>"Checkbox"<FONT =
color=3D#0000c0> VALUE=3D</FONT>"1"<FONT color=3D#0000c0>></FONT> =
Remember me with=20
a cookie</FONT></P><FONT color=3D#0000c0>
<P><FONT size=3D2><P><INPUT TYPE=3D</FONT></FONT><FONT =
size=3D2>"submit"<FONT=20
color=3D#0000c0> VALUE=3D</FONT>"Login"</FONT><FONT =
color=3D#0000c0><FONT=20
size=3D2>></FONT></P>
<P><FONT size=3D2></FORM></FONT></P>
<P><FONT size=3D2><p></FONT></P>
<P><FONT size=3D2><a href=3D</FONT></FONT><FONT=20
size=3D2>"register.asp?nextpage=3D<FONT =
color=3D#800000><%Server.URLEncode(=20
nextpage )%></FONT>"<FONT color=3D#0000c0>></P></FONT></FONT>
<P><FONT size=3D2>Click here to register<FONT=20
color=3D#0000c0></a></P></FONT></FONT><FONT color=3D#0000c0>
<P><FONT size=3D2></BODY></FONT></P>
<P><FONT size=3D2></HTML></FONT></P>
<P><FONT=20
size=3D2>-------------------------------------------------------------</F=
ONT></P>
<P><FONT color=3D#000000 size=3D2>checkpassword.asp</FONT></P><FONT =
color=3D#800000>
<P><FONT size=3D2><%</FONT></P>
<P><FONT size=3D2>CONST useSession =3D TRUE</FONT></P>
<P><FONT size=3D2>' Retrieve Form Variables</FONT></P>
<P><FONT size=3D2>username =3D TRIM( Request( "username" ) )</FONT></P>
<P><FONT size=3D2>password =3D TRIM( Request( "password" ) )</FONT></P>
<P><FONT size=3D2>newUser =3D TRIM( Request( "newUser" ) )</FONT></P>
<P><FONT size=3D2>newUsername =3D TRIM( Request( "newUsername" ) =
)</FONT></P>
<P><FONT size=3D2>newPassword =3D TRIM( Request( "newPassword" ) =
)</FONT></P>
<P><FONT size=3D2>addCookie =3D TRIM( Request( "addCookie" ) =
)</FONT></P>
<P><FONT size=3D2>' Retrieve Current Page</FONT></P>
<P><FONT size=3D2>nextPage =3D Request.ServerVariables( "SCRIPT_NAME" =
)</FONT></P>
<P><FONT size=3D2>' Ready Database Connection</FONT></P>
<P><FONT size=3D2>Set Con =3D Server.CreateObject( "ADODB.Connection" =
)</FONT></P>
<P><FONT size=3D2>Con.Open "userDNS"</FONT></P>
<P><FONT size=3D2>' Add New User</FONT></P>
<P><FONT size=3D2>IF newUser <> "" THEN</FONT></P>
<P><FONT size=3D2>IF newUsername =3D "" THEN</FONT></P>
<P><FONT size=3D2>showError "You must enter a username"</FONT></P>
<P><FONT size=3D2>END IF</FONT></P>
<P><FONT size=3D2>IF newPassword =3D "" THEN</FONT></P>
<P><FONT size=3D2>showError "You must enter a password"</FONT></P>
<P><FONT size=3D2>END IF</FONT></P>
<P><FONT size=3D2>IF usernameTaken( newUsername ) THEN</FONT></P>
<P><FONT size=3D2>showError "The username you entered has already "=20
&_</FONT></P>
<P><FONT size=3D2>"been chosen by a previous user. Please select "=20
&_</FONT></P>
<P><FONT size=3D2>"a new username"</FONT></P>
<P><FONT size=3D2>END IF</FONT></P>
<P><FONT size=3D2>sqlString =3D "INSERT INTO userlist ( user_username, =
user_password=20
) " &_</FONT></P>
<P><FONT size=3D2>"VALUES ('" & newUsername & "','" & =
newPassword=20
& "')"</FONT></P>
<P><FONT size=3D2>Con.Execute sqlString</FONT></P>
<P><FONT size=3D2>username =3D newUsername</FONT></P>
<P><FONT size=3D2>password =3D newPassword</FONT></P>
<P><FONT size=3D2>IF useSession THEN Session( "loggedIn" ) =3D =
"Yes"</FONT></P>
<P><FONT size=3D2>END IF</FONT></P>
<P><FONT size=3D2>' Authenticate User</FONT></P>
<P><FONT size=3D2>IF Session( "loggedIn" ) =3D "" THEN </FONT></P>
<P><FONT size=3D2>IF username =3D "" OR password =3D "" THEN</FONT></P>
<P><FONT size=3D2>loginMessage =3D "You must login before you can view =
this=20
page."</FONT></P>
<P><FONT size=3D2>showLogin</FONT></P>
<P><FONT size=3D2>END IF</FONT></P>
<P><FONT size=3D2>result =3D validateLogin( username, password =
)</FONT></P>
<P><FONT size=3D2>IF result =3D 1 THEN</FONT></P>
<P><FONT size=3D2>loginMessage =3D "You entered an unregistered=20
username."</FONT></P>
<P><FONT size=3D2>showLogin</FONT></P>
<P><FONT size=3D2>END IF</FONT></P>
<P><FONT size=3D2>IF result =3D 2 THEN</FONT></P>
<P><FONT size=3D2>loginMessage =3D "You did not enter a valid =
password."</FONT></P>
<P><FONT size=3D2>showLogin</FONT></P>
<P><FONT size=3D2>END IF</FONT></P>
<P><FONT size=3D2>IF useSession THEN Session( "loggedIn" ) =3D =
"Yes"</FONT></P>
<P><FONT size=3D2>END IF</FONT></P>
<P><FONT size=3D2>' Add a Cookie</FONT></P>
<P><FONT size=3D2>IF addCookie <> "" THEN</FONT></P>
<P><FONT size=3D2>Response.Cookies( "username" ) =3D username</FONT></P>
<P><FONT size=3D2>Response.Cookies( "username" ).Expires =3D =
"12/25/2037"</FONT></P>
<P><FONT size=3D2>Response.Cookies( "password" ) =3D password</FONT></P>
<P><FONT size=3D2>Response.Cookies( "password" ).Expires =3D =
"12/25/2037"</FONT></P>
<P><FONT size=3D2>END IF</FONT></P>
<P><FONT size=3D2>' Create Security Query String Variable</FONT></P>
<P><FONT size=3D2>sq =3D "username=3D" & Server.HTMLEncode( username =
) &=20
"&"</FONT></P>
<P><FONT size=3D2>sq =3D sq & "password=3D" & Server.HTMLEncode( =
password )=20
</FONT></P>
<P><FONT size=3D2>' Create Security Form Variable</FONT></P>
<P><FONT size=3D2>sf =3D "<input name=3D""username"" =
type=3D""hidden"" "</FONT></P>
<P><FONT size=3D2>sf =3D sf & "value=3D""" & Server.HTMLEncode( =
username )=20
& """>"</FONT></P>
<P><FONT size=3D2>sf =3D sf & "<input name=3D""password"" =
type=3D""hidden""=20
"</FONT></P>
<P><FONT size=3D2>sf =3D sf & "value=3D""" & Server.HTMLEncode( =
password )=20
& """>"</FONT></P>
<P><FONT size=3D2>' Check Username and Password</FONT></P>
<P><FONT size=3D2>FUNCTION validateLogin( theUsername, thePassword =
)</FONT></P>
<P><FONT size=3D2>sqlString =3D "SELECT user_password FROM userlist "=20
&_</FONT></P>
<P><FONT size=3D2>"WHERE user_username=3D'" & fixQuotes( username ) =
& "'"=20
</FONT></P>
<P><FONT size=3D2>Set RS =3D Con.Execute( sqlString )</FONT></P>
<P><FONT size=3D2>IF RS.EOF THEN</FONT></P>
<P><FONT size=3D2>validateLogin =3D 1</FONT></P>
<P><FONT size=3D2>ELSE</FONT></P>
<P><FONT size=3D2>IF RS( "user_password" ) <> thePassword =
THEN</FONT></P>
<P><FONT size=3D2>validateLogin =3D 2</FONT></P>
<P><FONT size=3D2>ELSE</FONT></P>
<P><FONT size=3D2>validateLogin =3D 0</FONT></P>
<P><FONT size=3D2>END IF</FONT></P>
<P><FONT size=3D2>END IF</FONT></P>
<P><FONT size=3D2>END FUNCTION</FONT></P>
<P><FONT size=3D2></FONT> </P>
<P><FONT size=3D2>' Check Whether Username Already Taken</FONT></P>
<P><FONT size=3D2>FUNCTION usernameTaken( theUsername )</FONT></P>
<P><FONT size=3D2>sqlString =3D "SELECT user_id FROM userlist " =
&_</FONT></P>
<P><FONT size=3D2>"WHERE user_username=3D'" & fixQuotes( theUsername =
) &=20
"'"</FONT></P>
<P><FONT size=3D2>Set RS =3D Con.Execute( sqlString )</FONT></P>
<P><FONT size=3D2>IF RS.EOF THEN</FONT></P>
<P><FONT size=3D2>usernameTaken =3D FALSE</FONT></P>
<P><FONT size=3D2>ELSE</FONT></P>
<P><FONT size=3D2>usernameTaken =3D TRUE</FONT></P>
<P><FONT size=3D2>END IF</FONT></P>
<P><FONT size=3D2>RS.Close</FONT></P>
<P><FONT size=3D2>Set RS =3D Nothing</FONT></P>
<P><FONT size=3D2>END FUNCTION</FONT></P>
<P><FONT size=3D2>' Show Error Page</FONT></P>
<P><FONT size=3D2>SUB showError( theError )</FONT></P>
<P><FONT size=3D2>%></FONT></P></FONT>
<P><FONT color=3D#0000c0><FONT size=3D2><HTML></FONT></P></FONT>
<P><FONT size=3D2><FONT =
color=3D#0000c0><HEAD><TITLE></FONT>Problem<FONT=20
color=3D#0000c0></TITLE></HEAD></P></FONT></FONT>
<P><FONT color=3D#0000c0><FONT size=3D2><BODY></FONT></P></FONT>
<P><FONT size=3D2><FONT color=3D#0000c0><b></FONT>There was a =
problem with=20
your registration information<FONT =
color=3D#0000c0></b></P></FONT></FONT>
<P><FONT size=3D2><FONT color=3D#0000c0><br></FONT><FONT=20
color=3D#800000><%=3DtheError %></P></FONT></FONT>
<P><FONT size=3D2><FONT color=3D#0000c0><FORM =
METHOD=3D</FONT>"POST"<FONT=20
color=3D#0000c0> ACTION=3D</FONT>"register.asp"<FONT=20
color=3D#0000c0>></P></FONT></FONT>
<P><FONT size=3D2><FONT color=3D#0000c0><INPUT =
NAME=3D</FONT>"nextpage"<FONT=20
color=3D#0000c0> TYPE=3D</FONT>"hidden"</FONT></P><FONT color=3D#0000c0>
<P><FONT size=3D2>VALUE=3D</FONT></FONT><FONT size=3D2><FONT=20
color=3D#000000>"</FONT><FONT =
color=3D#800000><%=3Dnextpage%></FONT><FONT=20
color=3D#000000>"</FONT><FONT color=3D#0000c0>></P></FONT></FONT>
<P><FONT size=3D2><FONT color=3D#0000c0><INPUT =
NAME=3D</FONT>"newUsername"<FONT=20
color=3D#0000c0> TYPE=3D</FONT>"hidden"</FONT></P><FONT color=3D#0000c0>
<P><FONT size=3D2>VALUE=3D</FONT></FONT><FONT size=3D2><FONT=20
color=3D#000000>"</FONT><FONT color=3D#800000><%=3DServer.HTMLEncode( =
newUsername=20
)%></FONT><FONT color=3D#000000>"</FONT><FONT=20
color=3D#0000c0>></P></FONT></FONT>
<P><FONT size=3D2><FONT color=3D#0000c0><INPUT =
NAME=3D</FONT>"newPassword"<FONT=20
color=3D#0000c0> TYPE=3D</FONT>"hidden"</FONT></P><FONT color=3D#0000c0>
<P><FONT size=3D2>VALUE=3D</FONT></FONT><FONT size=3D2><FONT=20
color=3D#000000>"</FONT><FONT color=3D#800000><%=3DServer.HTMLEncode( =
newPassword=20
)%></FONT><FONT color=3D#000000>"</FONT><FONT=20
color=3D#0000c0>></P></FONT></FONT>
<P><FONT size=3D2><FONT color=3D#0000c0><INPUT =
TYPE=3D</FONT>"SUBMIT"<FONT=20
color=3D#0000c0> VALUE=3D</FONT>"Continue"<FONT =
color=3D#0000c0>></P></FONT></FONT>
<P><FONT color=3D#0000c0><FONT size=3D2></FORM></FONT></P></FONT>
<P><FONT color=3D#0000c0><FONT size=3D2></BODY></FONT></P></FONT>
<P><FONT color=3D#0000c0><FONT size=3D2></HTML></FONT></P></FONT>
<P><FONT color=3D#800000><FONT size=3D2><%</FONT></P>
<P><FONT size=3D2>Response.End</FONT></P>
<P><FONT size=3D2>END SUB</FONT></P>
<P><FONT size=3D2>' Show the Login Page</FONT></P>
<P><FONT size=3D2>SUB showLogin</FONT></P>
<P><FONT size=3D2>%></FONT></P></FONT>
<P><FONT color=3D#808080><FONT size=3D2><!-- #INCLUDE =
FILE=3D"login.asp"=20
--></FONT></P></FONT>
<P><FONT color=3D#800000 size=3D1><FONT size=3D2><%</FONT></P>
<P><FONT size=3D2>Response.End</FONT></P>
<P><FONT size=3D2>END SUB</FONT></P>
<P><FONT size=3D2>FUNCTION fixQuotes( theString )</FONT></P>
<P><FONT size=3D2>fixQuotes =3D REPLACE( theString, "'", "''" =
)</FONT></P>
<P><FONT size=3D2>END FUNCTION</FONT></P>
<P><FONT =
size=3D2>%></FONT></P></FONT></FONT></DIV></FONT></DIV></BODY></HTML>
------=_NextPart_000_0026_01C45737.68254FB0--