<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<%
'Code to prevent the page from being cached
Response.CacheControl = "no-cache"
Response.AddHeader "Pragma", "no-cache"
Response.Expires = -1
'Some site constants
site_url = "http://" & Request.ServerVariables("SERVER_NAME") & "/"
site_name = "mySite.com"
admin_name = "Admin"
admin_email = "myEmail@mySite.com"
sendEmail = True
'Check if the form has been submitted
If Request.Form("Submit") = "Register" Then
'Simple string validation function. This can be expanded on.
Function validateStr(str)
temp = str
temp = Trim(temp)
temp = Replace(temp,"'","''")
validateStr = temp
End Function
'Simple email validation function. e.g. abc123@domain.ext
Function validateEmail(email)
isValidE = True
set regEx = New RegExp
regEx.IgnoreCase = False
regEx.Pattern = "^[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$"
isValidE = regEx.Test(email)
validateEmail = isValidE
End Function
'Grab the form data
user_name = validateStr(Request.Form("user_name"))
user_pass = validateStr(Request.Form("user_pass"))
confirm_pass = validateStr(Request.Form("confirm_pass"))
user_email = validateStr(Request.Form("user_email"))
'Data validation
If user_name = "" Then
errMsg = "-Please enter a username<br />"
End If
If user_pass = "" Then
errMsg = errMsg & "-Please enter a password<br />"
ElseIf user_pass <> confirm_pass Then
errMsg = errMsg & "-Passwords do not match<br />"
End If
If user_email = "" Then
errMsg = errMsg & "-Please enter an email address<br />"
ElseIf validateEmail(user_email) = False Then
errMsg = errMsg & "-Email addrress is not valid<br />"
End If
'If there are no errors then continue with the registration
If Len(errMsg) = 0 Then
Set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open Server.MapPath("login.mdb")
Set rsCheckUser = Server.CreateObject("ADODB.recordset")
'Select the data from the database using the submitted data.
rsCheckUser.Open "SELECT user_id FROM users WHERE user_name = '" & user_name & "' Or user_email = '" & user_email & "'", conn
'Check if a match was found.
If NOT rsCheckUser.EOF Then
'If a match was found output an error message.
errMsg = "-Details already exist"
Else
'Insert the data into the database
sql = "INSERT INTO users (user_name, user_pass, user_email) VALUES " &_
"('" & user_name & "'," &_
"'" & user_pass & "'," &_
"'" & user_email & "')"
conn.Execute sql
registered = True
msg = "Thankyou for registering at " & site_name
'If sendEmail is true then send the user an email
If sendEmail = True Then
'Set the body text message for the email
body = "Name: " & user_name & vbCRLF &_
"Pass: " & user_pass & vbCRLF &_
"Email: " & user_email & vbCRLF &_
vbCRLF & vbCRLF & msg & vbCRLF & "You can login at " & site_url & "login.asp"
Set myMail=CreateObject("CDO.Message")
myMail.Subject= msg
myMail.From= """" & admin_name & """<" & admin_email & ">"
myMail.To= """" & user_name & """<" & user_email & ">"
myMail.TextBody=body
myMail.Send
emailSent = True
Set myMail=nothing
End If
'Clear form details
user_name = ""
user_pass = ""
user_email = ""
End If
rsCheckUser.Close
conn.Close
End If
End If
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Register</title>
<style type="text/css">
<!--
.errmsg {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 12px;
font-weight: bold;
color: #FF0000;
background-color: #FFFF99;
}
body,td,th {
font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
color: #0099FF;
font-weight: bold;
}
body {
background-color: #F9F9F9;
}
-->
</style>
</head>
<body>
<%If Len(errMsg) > 0 Then %>
<span class="errmsg">Error: <br /><%=errMsg%></span>
<%ElseIf Len(msg) > 0 Then %>
<span class="errmsg">Message: <br /><%=msg%>
<%If emailSent = True Then%>
An email has been sent to the address that you signed up with<br />
<%End If%>
<%If registered = True Then%>
You can login <a href="<%=site_url%>login.asp">HERE</a><br />
<%End If%>
</span>
<%End If%>
<form name="form1" id="form1" method="post" action="">
<table width="300" border="0" cellspacing="0" cellpadding="2">
<tr>
<td>Username</td>
<td><input name="user_name" type="text" id="user_name" value="<%=user_name%>" /></td>
</tr>
<tr>
<td>Password</td>
<td><input name="user_pass" type="password" id="user_pass" value="<%=user_pass%>" /></td>
</tr>
<tr>
<td>Confirm Password </td>
<td><input name="confirm_pass" type="password" id="confirm_pass" /></td>
</tr>
<tr>
<td>Email</td>
<td><input name="user_email" type="text" id="user_email" value="<%=user_email%>" /></td>
</tr>
<tr>
<td> </td>
<td><input type="submit" name="Submit" value="Register" /></td>
</tr>
</table>
</form>
</body>
</html>