Hi,
For a project of mine, I've implemented user registrations. However, one thing I have NOT implemented is the ability to check if the username requested by a new registration exists in the database. How do I do this? The code for the registration page is as below:
(btw, I would appreciate if the forum moderators could tell me how I should post huge blocks of code. Do I attach the file or just quote the code?)
<%@ Language="VBScript" %>
<%reg=Request("reg")%>
<%
if reg = 1 then
%>
<SCRIPT LANGUAGE="JavaScript">
alert("Registration Succeeded. Logging you in...")
</SCRIPT>
<META HTTP-EQUIV="Refresh" CONTENT="0; URL=/mediaguidehome.asp?user=<%=Request.Form("username")%>&pass=<%=Request.Form("output")%>">
<%
table=TRIM(Request.Form("UserName"))
Set con2 = server.CreateObject ("ADODB.Connection")
Set rs2 = server.CreateObject ("ADODB.Recordset")
con2.Provider="Microsoft.Jet.OLEDB.4.0"
con2.Open (server.MapPath ("\databasecore\mediaguide.mdb"))
sql2 = "INSERT INTO authenticatedusers VALUES "
sql2=sql2 & "('" & TRIM(Request.Form("username")) & "',"
sql2=sql2 & "'" & TRIM(Request.Form("output")) & "',"
sql2=sql2 & "'" & TRIM(Request.Form("name")) & "',"
sql2=sql2 & "'" & TRIM(Request.Form("address")) & "',"
sql2=sql2 & "'" & TRIM(Request.Form("Country")) & "',"
sql2=sql2 & "'" & TRIM(Request.Form("age")) & "',"
sql2=sql2 & "'" & TRIM(Request.Form("tel")) & "',"
sql2=sql2 & "'" & TRIM(Request.Form("dateofbirth")) & "',"
sql2=sql2 & "'" & TRIM(Request.Form("monthofbirth")) & "',"
sql2=sql2 & "'" & TRIM(Request.Form("yearofbirth")) & "',"
sql2=sql2 & "'" & TRIM(Request.Form("email")) & "')"'
Con2.BeginTrans
Con2.Execute sql2
Con2.CommitTrans
Con2.Close
Set con1 = server.CreateObject ("ADODB.Connection")
Set rs1 = server.CreateObject ("ADODB.Recordset")
con1.Provider="Microsoft.Jet.OLEDB.4.0"
con1.Open (server.MapPath ("\databasecore\mediaguide.mdb"))
sql1="CREATE TABLE user_"&table&" (name VarChar(200), artist VarChar(200), album varChar(200), rating varChar(50), review Memo)"
rs1.Open sql1,con1
end if
%>
<HTML>
<HEAD>
<TITLE>Registration</TITLE>
<SCRIPT LANGUAGE="JavaScript">
var str_in;
var str_out = "";
var num_in;
var num_out = "";
function str_to_num(form) {
num_out = "";
if(form.password.value == "") ;
else {
str_in = escape(form.password.value);
for(i = 0; i < str_in.length; i++) {
num_out += str_in.charCodeAt(i) - 23;
}
rannum=str_in.length+32
pwhash=rannum*num_out/100000000000
finalop=pwhash+rannum
form.output.value = finalop;
}
}
</script>
<SCRIPT>
function password()
{
window.open("passwordeg.htm", "","toolbar=no, height=650, width=600, directories=no,status=no,scrollbars=yes,resizable=yes,menubar=no")
}
</SCRIPT>
<meta name="Microsoft Theme" content="folio 111, default">
</HEAD>
<BODY><table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" width="100%">
<tr>
<td width="100%">
<p align="right">
<!--webbot bot="Navigation" S-Type="banner" S-Orientation="horizontal" S-Rendering="graphics" --><br>
<font size="2">
<!--webbot bot="Navigation" S-Orientation="horizontal" S-Rendering="html" S-Bar="Bars" S-Btn-Nml="<A HREF="#URL#" TARGET="#TARGET#" STYLE="{text-decoration: none;}">#LABEL#</A>" S-Btn-Sel="#LABEL#" S-Btn-Sep="&nbsp;|&nbsp;" S-Type="top" B-Include-Home="TRUE" B-Include-Up="FALSE" --></font></p>
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" width="100%">
<tr>
<td width="50%">
<!--BEGIN JAVASCRIPT FOR FORM VALIDITY-->
<SCRIPT LANGUAGE="Javascript">
var digit="0123456789";
function val()
{
if(username_v() && password_v())
if(name_v() && add_v())
if(telno_v() && email_v())
return true;
return false;
}
function username_v()
{
if(document.auth.username.value=="")
{
alert("Please enter a valid username");
document.auth.username.focus();
return false;
}
return true;
}
function password_v()
{
if(document.auth.password.value=="")
{
alert("Please enter password");
document.auth.password.focus();
return false;
}
if(document.auth.cnfrmpwd.value=="")
{
alert("Please re-type password");
document.auth.cnfrmpwd.focus();
return false;
}
if(document.auth.password.value!=document.auth.cnfrmpwd.value)
{
alert("Please re-type password correctly");
document.auth.password.select();
document.auth.cnfrmpwd.value="";
return false;
}
return true;
}
function name_v()
{
if(document.auth.name.value=="")
{
alert("Please enter your name");
document.auth.name.focus();
return false;
}
return true;
}
function add_v()
{
if(document.auth.address.value=="")
{
alert("Please enter your address");
document.auth.address.focus();
return false;
}
if(document.auth.country.value=="")
{
alert("Please enter your country");
document.auth.country.focus();
return false;
}
if(document.auth.tel.value=="")
{
alert("Please enter your contact number");
document.auth.tel.focus();
return false;
}
if(document.auth.dateofbirth.value=="Date")
{
alert("Please select your Date of Birth");
document.auth.dateofbirth.focus();
return false;
}
if(document.auth.monthofbirth.value=="Month")
{
alert("Please select your Month of Birth");
document.auth.monthofbirth.focus();
return false;
}
if(document.auth.yearofbirth.value=="Year")
{
alert("Please select your Year of Birth");
document.auth.yearofbirth.focus();
return false;
}
if(document.auth.age.value=="")
{
alert("Please enter your Age");
document.auth.age.focus();
return false;
}
return true;
}
function telno_v()
{
if(document.auth.email.value=="")
{
alert("Please enter your email address");
document.auth.email.focus();
return false;
}
return true;
}
</script>
</td>
</tr>
</table></td>
</tr>
</table>
<p align="justify">In order to access the features of this site (including reviews, previews and artist
information) we need you to give us a few details about yourself. Please fill in
all the fields provided and then click "Register" to complete the registration
process. Note that if you are a member of our Media Guide, <a href="/signin.asp">you can use the same ID to login</a>. </p>
<p align="justify">Section 1: Login Information </p>
<blockquote>
<blockquote>
<p align="justify">In this section, you will be asked to enter a unique username
and password for identifying yourself to us. Please note that passwords are case
sensitive, so make sure you use the correct case.</p>
</blockquote>
</blockquote>
<!-- -->
<form name="auth" onSubmit="return val()" action="register.asp?reg=1" method="post">
<center>
<table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" width="82%" height="45">
<tr>
<td width="100%" align="center" height="45" colspan="2">
<p align="center">Username: <input type="text" size="30" name="username"></p>
</td>
</tr>
<tr>
<td width="50%" align="center" height="45">
<blockquote>
<blockquote>
<blockquote>
<p align="justify">Password:<br>
<input type="password" size="30" name="password" maxlength="15"></blockquote>
</blockquote>
</blockquote>
</td>
<td width="50%" align="center" height="45">
<blockquote>
<blockquote>
<blockquote>
<p align="justify">Confirm Password:<br>
<input type="password" size="30" name="cnfrmpwd" maxlength="15">
<input type="hidden" size="30" name="output"></blockquote>
</blockquote>
</blockquote>
</td>
</tr>
</table>
</center>
<blockquote>
<blockquote>
<blockquote>
<blockquote>
<blockquote>
<blockquote>
<ul>
<li>
<p align="left"><font size="2">Passwords are case sensitive</font></li>
<li>
<p align="left"><font size="2">Ensure the password length is of 8 characters minimum
and 15 characters maximum [<a href="javascript:password()">What's this?</a>]</font></li>
</ul>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
<hr>
</blockquote>
</blockquote>
<p align="justify">Section 2: Personal Information</p>
<blockquote>
<blockquote>
<p align="justify">In this section, we require you to fill out a few
personal details for our records. We will not sell or give out your personal
information to any third party.</p>
</blockquote>
</blockquote>
<table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" width="100%">
<tr>
<td width="50%" valign="top" align="center">Name:<br>
<input type="text" size="30" name="name"><p>Date of Birth:<br>
<select size="1" name="dateofbirth">
<option selected>Date</option>
<option>--------</option>
<%
dat=1
while dat<=31
%>
<option value="<%=dat%>"><%=dat%></option>
<%
dat=dat + 1
Wend
%>
</select> / <select size="1" name="monthofbirth">
<option selected>Month</option>
<option>------------------</option>
<option value="January">January</option>
<option value="February">February</option>
<option value="March">March</option>
<option value="April">April</option>
<option value="May">May</option>
<option value="June">June</option>
<option value="July">July</option>
<option value="August">August</option>
<option value="September">September</option>
<option value="October">October</option>
<option value="November">November</option>
<option value="December">December</option>
</select> / <select size="1" name="yearofbirth">
<option selected>Year</option>
<option>--------</option>
<%
yr=1950
while yr<=2002
%>
<option value="<%=yr%>"><%=yr%></option>
<%
yr=yr + 1
Wend
%>
</select></p>
<p>Age:<br>
<input type="text" size="30" name="age"></p>
<p> </td>
<td width="50%" valign="top" align="center">E-Mail Address: <br>
<input type="text" size="30" name="email"><p>Country: <br>
<input type="text" size="30" name="country"></p>
<p>Contact Number: <br>
<input type="text" size="30" name="tel"><br>
</td>
</tr>
</table>
<br>
<table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" width="100%">
<tr>
<td width="100%">
<blockquote>
<blockquote>
<blockquote>
<blockquote>
<blockquote>
<blockquote>
<blockquote>
<blockquote>
<p style="text-align: left">Address:</p>
<blockquote>
<p style="text-align: left">
<textarea rows="10" cols="36" name="address"></textarea></p>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
<p> </td>
</tr>
</table>
<p>
You're done. Just click the register button to continue.<p>
<input type="submit" value="Register" onClick="javascript:str_to_num(this.form)">
<input type="reset" value="Reset"> <input type="button" value="Cancel" name="B1" onclick="location.href('/mediaguidehome.asp')"></FORM>
</HTML>
Thanks