Link to home
Start Free TrialLog in
Avatar of acslater
acslater

asked on

checking whether a username is already in the database before a user can register

Hi there i have a registration page and i want to check the username entered in the registration page by the user against the usernames already in the database and if the username is already being used to give the user a warning asking it to pick another username as that one is alrteady in use


Here is my code for the register.jsp page:
----------------------------------------

<script>
function validateForm(frm1) {

    if (frm1.UserName.value.length < 5) {
       alert("Please enter a Username");
       frm1.UserName.focus( );
       return false;
     }

if (frm1.Password.value.length <6) {
   alert("Please Re-Enter a Password");
   frm1.Password.focus( );
   return false;
   }
if (frm1.Password2.value.length <6) {
   alert("Please verify your Password");
   frm1.Password2.focus( );
   return false;
   }
   
   
var pattern = (/^[a-zA-Z|\s* | -]*$/g);
var firstname = document.frm1.FirstName.value;

if (frm1.FirstName.value.length < 2) {
alert("Please enter your First Name");
       frm1.FirstName.focus( );
       return false;
}
else {
if (!pattern.test(firstname)){
   alert("Please Re-Enter your First Name");
   frm1.FirstName.focus( );
   return false;
   }
 }

var pattern = (/^[a-zA-Z|\s* | -]*$/g);
var lastname = document.frm1.LastName.value;
if (frm1.LastName.value.length <2) {
alert("Please enter your Last Name");
       frm1.LastName.focus( );
       return false;
}
else {
if (!pattern.test(lastname)){
   alert("Please Re-Enter your Last Name");
   frm1.LastName.focus( );
   return false;
   }
 }

if (frm1.Address1.value.length <3) {
   alert("Please enter an Address");
   frm1.Address1.focus( );
   return false;
   }
if (frm1.Town.value == "") {
   alert("Please enter your Town");
   frm1.Town.focus( );
   return false;
   }
   if(frm1.County.selectedIndex == "0"){
        alert('No County selected');
        return false;
   }
if (frm1.AreaCode.value == "") {
   alert("Please enter an Area Code");
   frm1.AreaCode.focus( );
   return false;
   }
if (frm1.Phone.value == "") {
   alert("Please enter your Phone No.");
   frm1.Phone.focus( );
   return false;
   }
    var pattern = /^(\w+\.)*(\w+)@(\w+\.)+([a-zA-Z]{2,4})$/g
    if(!frm1.EmailAddress.value.match(pattern)){
        alert('Enter a valid email address');
        frm1.EmailAddress.focus();
        return false;
    }
if (frm1.Gender.value == "") {
   alert("Please enter your gender");
   frm1.Gender.focus( );
   return false;
   }
   if(frm1.Day.selectedIndex == "0"){
        alert('No Day selected');
        return false;
    }
   if(frm1.Month.selectedIndex == "0"){
        alert('No Month selected');
        return false;
   }
   if(frm1.Year.selectedIndex == "0"){
        alert('No Year selected');
        return false;
    }
if (frm1.Password.value != frm1.Password2.value)
{
alert ("Your passwords do not match - please re-enter password");
return false;
}
    return true;
}
</script>

                    <p><font size="6">BCD Testing </font></p>
                    <table width="97%" border="0" align="center" cellpadding="0" cellspacing="0">
                      <tr>
                        <td colspan="3" valign=bottom class="subtitle"><div align="center">
                            <p><strong><font color="#0033cc" size="5">Please Register Your Details</font></strong></p>
                            <p align="left"><font size="2"><strong>* Username minimum 5 characters</strong></font></p>
                            <p align="left"><font size="2"><strong> * Password minimum 6 characters </strong></font></p>
                            </div></td>
                      </tr>
                      <form name="frm1" method="post" action="https://bcdtesting.com/registered.jsp" onSubmit="return validateForm(frm1)">
                        <tr align="left" valign="top">
                          <td valign="center" height="35" colspan="4">
                            <p>
                                      <table width="472" height="472" border="0" align="center" cellpadding="3" cellspacing="0">
                                        <tr>
                                          <td align=right bgcolor="#ffffff" valign="bottom" width="33%" class="subtitle">
                                            <div align="left"><font size="2"><b> Username:</b></font></div></td>
                                          <td align=left valign=bottom width="42%" > 
                                            <div align="left">
                                              <font size="2">
                                              <input name="UserName" id="UserName" tabindex="1" value="" size="20" maxlength="16">
                                              </font></div></td>
                                          <td width="25%" colspan="4" rowspan="3" align=right valign=top>
                                            <div align="left"><font size="3"><font size="2"></font></font></div></td>
                                        </tr>
                                        <tr>
                                          <td height="28" align="right" valign="bottom" bgcolor="#ffffff" class="subtitle"><div align="left"><font size="2"><b>Password:</b></font></div></td>
                                          <td align=left valign=bottom >
                                            <div align="left">
                                              <font size="2">
                                              <input maxlength=25 name=Password size=40 type=password tabindex="2" value="">
                                            </font></div></td>
                                        </tr>
                                        <tr>
                                          <td height="36" align="right" valign="bottom" bgcolor="#ffffff"><div align="left"><font size="2"><b>Retype
                                          Password:</b></font></div></td>
                                          <td align="right" valign="bottom" bgcolor="#ffffff">
                                            <div align="left">
                                              <font size="2">
                                              <input maxlength=25 name=Password2 size=40 type=password tabindex="3" value="">
                                          </font></div></td>
                                        </tr>
                                        <tr valign="bottom">
                                          <td align="right" bgcolor="#ffffff" valign="bottom" class="subtitle">
                                            <div align="left"><font size="2"><b>First Name:</b></font></div></td>
                                          <td align="left" valign="bottom" colspan=2>
                                            <div align="left">
                                              <font size="2">
                                              <input name="FirstName" size="40" maxlength="30" tabindex="4" value="">
                                              </font></div></td>
                                        </tr>
                                        <tr>
                                          <td align="right" valign="bottom" bgcolor="#ffffff" class="subtitle"><div align="left"><font size="2"><b>Last
                                              Name:</b></font></div></td>
                                          <td colspan=3 align="left" valign="bottom">
                                            <div align="left">
                                              <font size="2">
                                              <input name="LastName" size="40" maxlength="30" tabindex="5" value="">
                                              </font></div></td>
                                        </tr>
                                        <tr>
                                          <td align="right" valign="bottom" bgcolor="#ffffff" class="subtitle"><div align="left"><font size="2"><b>Address:</b></font></div></td>
                                          <td colspan=3 align="left" valign="bottom">
                                            <div align="left">
                                              <font size="2">
                                              <input name="Address1" size="40" maxlength="30" tabindex="8" value="">
                                              </font></div></td>
                                        </tr>
                                        <tr>
                                          <td align="right" valign="bottom" bgcolor="#ffffff"><div align="left"><font size="3"><font size="2"></font></font></div></td>
                                          <td colspan=3 align="left" valign="bottom">
                                            <div align="left">
                                              <font size="2">
                                              <input name="Address2" size="40" maxlength="30" tabindex="9" value="">
                                              </font></div></td>
                                        </tr>
                                        <tr>
                                          <td align="right" valign="bottom" bgcolor="#ffffff" class="subtitle"><div align="left"><font size="2"><b>Town:</b></font></div></td>
                                          <td colspan=3 align="left" valign="bottom">
                                            <div align="left">
                                              <font size="2">
                                              <input name="Town" size="40" maxlength="25" tabindex="10" value="">
                                              </font></div></td>
                                        </tr>
                                        <tr>
                                          <td align="right" valign="bottom" bgcolor="#ffffff" class="subtitle"><div align="left"><font size="2"><b>County:</b></font></div></td>
                                          <td colspan=3 align="left" valign="bottom">
                                            <div align="left">
                                                <font size="2">
                                                <select name="County">
                                                  <OPTION value="County" selected>County</OPTION>
                                                  <option value="Carlow">Carlow</option>
                                                  <option value="Cavan">Cavan</option>
                                                  <option value="Clare">Clare</option>
                                                  <option value="Cork">Cork</option>
                                                  <option value="Donegal">Donegal</option>
                                                  <option value="Dublin">Dublin</option>
                                                  <option value="Galway">Galway</option>
                                                  <option value="Kerry">Kerry</option>
                                                  <option value="Kildare">Kildare</option>
                                                  <option value="Kilkenny">Kilkenny</option>
                                                  <option value="Laois">Laois</option>
                                                  <option value="Leitrim">Leitrim</option>
                                                  <option value="Limerick">Limerick</option>
                                                  <option value="Longford">Longford</option>
                                                  <option value="Louth">Louth</option>
                                                  <option value="Mayo">Mayo</option>
                                                  <option value="Meath">Meath</option>
                                                  <option value="Monaghan">Monaghan</option>
                                                  <option value="Offaly">Offaly</option>
                                                  <option value="Roscommon">Roscommon</option>
                                                  <option value="Sligo">Sligo</option>
                                                  <option value="Tipperary">Tipperary</option>
                                                  <option value="Waterford">Waterford</option>
                                                  <option value="Westmeath">Westmeath</option>
                                                  <option value="Wexford">Wexford</option>
                                                  <option value="Wicklow">Wicklow</option>
                                                  <option>None of the Above</option>
                                                </select>
                                              </font></div></td>
                                        </tr>
                                        <tr>
                                          <td height="34" align="right" valign="bottom" nowrap bgcolor="#ffffff" class="subtitle">
                                            <div align="left"><font size="2"><b>Home Phone:</b></font></div></td>
                                          <td colspan=3 align="left" valign="bottom">
                                            <div align="left">
                                              <font size="2">
                                              <input name="AreaCode" id="AreaCode" tabindex="20"onKeyUp="countMeHomePhone1(this.value);" value="" size="4" maxlength="4">
                                              <input name="Phone" id="Phone" tabindex="21"onKeyUp="countMeHomePhone2(this.value);" value="" size="15" maxlength="13">
                                              </font></div></td>
                                        </tr>
                                        <tr>
                                          <td height="44" align="right" valign="bottom" bgcolor="#ffffff" class="subtitle">
                                            <div align="left"><font size="2"><b>Email Address:</b></font></div></td>
                                          <td colspan=3 align="left" valign="bottom">
                                            <div align="left">
                                              <font size="2">
                                              <input name="EmailAddress" size="40" maxlength="40" tabindex="27" value="">
                                              </font></div></td>
                                        </tr>
                                        <tr>
                                          <td height="25" align="right" valign="bottom" bgcolor="#ffffff" class="subtitle">
                                            <div align="left"><font size="2"><b>Gender:</b></font></div></td>
                                          <td colspan=3 align="left" valign="bottom"><div align="left"><font face="Arial, Helvetica, san-serif" size="2">
                                              <input type="radio" name="Gender" tabindex="32" value="Male"checked>
                                              Male
                                              <input type="radio" name="Gender" tabindex="33" value="Female">
                                            Female</font></div></td>
                                        </tr>
                                        <tr>
                                          <TD height="44" align=right vAlign=bottom bgColor=#ffffff class=subtitle>
                                            <div align="left"><font size="2"><B>Date of Birth:</B></font></div></TD>
                                          <TD vAlign=bottom align=left colSpan=3>
                                            <div align="left">
                                              <TABLE cellSpacing=1 cellPadding=1 width="71%" border=0>
                                                <TBODY>
                                                  <TR>
                                                    <TD><font size="2">
                                                      <SELECT name=Day>
                                                        <OPTION value=Day
                    selected>Day</OPTION>
                                                        <OPTION value=01>01</OPTION>
                                                        <OPTION
                    value=02>02</OPTION>
                                                        <OPTION value=03>03</OPTION>
                                                        <OPTION
                    value=04>04</OPTION>
                                                        <OPTION value=05>05</OPTION>
                                                        <OPTION
                    value=06>06</OPTION>
                                                        <OPTION value=07>07</OPTION>
                                                        <OPTION
                    value=08>08</OPTION>
                                                        <OPTION value=09>09</OPTION>
                                                        <OPTION
                    value=10>10</OPTION>
                                                        <OPTION value=11>11</OPTION>
                                                        <OPTION
                    value=12>12</OPTION>
                                                        <OPTION value=13>13</OPTION>
                                                        <OPTION
                    value=14>14</OPTION>
                                                        <OPTION value=15>15</OPTION>
                                                        <OPTION
                    value=16>16</OPTION>
                                                        <OPTION value=17>17</OPTION>
                                                        <OPTION
                    value=18>18</OPTION>
                                                        <OPTION value=19>19</OPTION>
                                                        <OPTION
                    value=20>20</OPTION>
                                                        <OPTION value=21>21</OPTION>
                                                        <OPTION
                    value=22>22</OPTION>
                                                        <OPTION value=23>23</OPTION>
                                                        <OPTION
                    value=24>24</OPTION>
                                                        <OPTION value=25>25</OPTION>
                                                        <OPTION
                    value=26>26</OPTION>
                                                        <OPTION value=27>27</OPTION>
                                                        <OPTION
                    value=28>28</OPTION>
                                                        <OPTION value=29>29</OPTION>
                                                        <OPTION
                    value=30>30</OPTION>
                                                        <OPTION
                  value=31>31</OPTION>
                                                      </SELECT>
&nbsp;                                                      <SELECT name=Month>
                                                        <OPTION value=Month selected>Month</OPTION>
                                                        <OPTION
                    value=01>01</OPTION>
                                                        <OPTION value=02>02</OPTION>
                                                        <OPTION
                    value=03>03</OPTION>
                                                        <OPTION value=04>04</OPTION>
                                                        <OPTION
                    value=05>05</OPTION>
                                                        <OPTION value=06>06</OPTION>
                                                        <OPTION
                    value=07>07</OPTION>
                                                        <OPTION value=08>08</OPTION>
                                                        <OPTION
                    value=09>09</OPTION>
                                                        <OPTION value=10>10</OPTION>
                                                        <OPTION
                    value=11>11</OPTION>
                                                        <OPTION value=12>12</OPTION>
                                                      </SELECT>
                                                      <SELECT name=Year>
                                                        <OPTION value=Year selected>Year</OPTION>
                                                        <OPTION value=2004>2004</OPTION>
                                                        <OPTION value=2003>2003</OPTION>
                                                        <OPTION value=2002>2002</OPTION>
                                                        <OPTION value=2001>2001</OPTION>
                                                        <OPTION value=2000>2000</OPTION>
                                                        <OPTION value=1999>1999</OPTION>
                                                        <OPTION
                    value=1998>1998</OPTION>
                                                        <OPTION value=1997>1997</OPTION>
                                                        <OPTION value=1996>1996</OPTION>
                                                        <OPTION
                    value=1995>1995</OPTION>
                                                        <OPTION value=1994>1994</OPTION>
                                                        <OPTION value=1993>1993</OPTION>
                                                        <OPTION
                    value=1992>1992</OPTION>
                                                        <OPTION value=1991>1991</OPTION>
                                                        <OPTION value=1990>1990</OPTION>
                                                        <OPTION
                    value=1989>1989</OPTION>
                                                        <OPTION value=1988>1988</OPTION>
                                                        <OPTION value=1987>1987</OPTION>
                                                        <OPTION
                    value=1986>1986</OPTION>
                                                        <OPTION value=1985>1985</OPTION>
                                                        <OPTION value=1984>1984</OPTION>
                                                        <OPTION
                    value=1983>1983</OPTION>
                                                        <OPTION value=1982>1982</OPTION>
                                                        <OPTION value=1981>1981</OPTION>
                                                        <OPTION
                    value=1980>1980</OPTION>
                                                        <OPTION value=1979>1979</OPTION>
                                                        <OPTION value=1978>1978</OPTION>
                                                        <OPTION
                    value=1977>1977</OPTION>
                                                        <OPTION value=1976>1976</OPTION>
                                                        <OPTION value=1975>1975</OPTION>
                                                        <OPTION
                    value=1974>1974</OPTION>
                                                        <OPTION value=1973>1973</OPTION>
                                                        <OPTION value=1972>1972</OPTION>
                                                        <OPTION
                    value=1971>1971</OPTION>
                                                        <OPTION value=1970>1970</OPTION>
                                                        <OPTION value=1969>1969</OPTION>
                                                        <OPTION
                    value=1968>1968</OPTION>
                                                        <OPTION value=1967>1967</OPTION>
                                                        <OPTION value=1966>1966</OPTION>
                                                        <OPTION
                    value=1965>1965</OPTION>
                                                        <OPTION value=1964>1964</OPTION>
                                                        <OPTION value=1963>1963</OPTION>
                                                        <OPTION
                    value=1962>1962</OPTION>
                                                        <OPTION value=1961>1961</OPTION>
                                                        <OPTION value=1960>1960</OPTION>
                                                        <OPTION value=1959>1959</OPTION>
                                                        <OPTION value=1958>1958</OPTION>
                                                        <OPTION value=1958>1958</OPTION>
                                                        <OPTION value=1957>1957</OPTION>
                                                        <OPTION value=1956>1956</OPTION>
                                                        <OPTION value=1955>1955</OPTION>
                                                        <OPTION value=1954>1954</OPTION>
                                                        <OPTION value=1953>1953</OPTION>
                                                        <OPTION value=1952>1952</OPTION>
                                                        <OPTION value=1951>1951</OPTION>
                                                        <OPTION value=1950>1950</OPTION>
                                                        <OPTION value=1949>1949</OPTION>
                                                        <OPTION value=1948>1948</OPTION>
                                                        <OPTION value=1947>1947</OPTION>
                                                        <OPTION value=1947>1947</OPTION>
                                                        <OPTION value=1946>1946</OPTION>
                                                        <OPTION value=1945>1945</OPTION>
                                                        <OPTION value=1944>1944</OPTION>
                                                        <OPTION value=1943>1943</OPTION>
                                                        <OPTION value=1942>1942</OPTION>
                                                        <OPTION value=1941>1941</OPTION>
                                                        <OPTION value=1940>1940</OPTION>
                                                      </SELECT>
                                                      </font></TD>
                                                  </tr>
                                              </table>
                                          </div></td>
                                        </tr>
                                        <td colspan="4" align="right" valign="bottom" bgcolor="#ffffff" class="subtitle"></tr>
                                      </table>
                                      <table width="93%" height="134" border="0" align="center">
                                        <tr>
                                          <td><b><font size="2">Please confirm
                                            if you would like to receive a letter
                                            outlining results:</font></b></td>
                                        </tr>
                                        <tr>
                                          <td><div align="center"><font face="Arial, Helvetica, san-serif" size="2">
                                              <input type="radio" name="LetterFeedback" tabindex="32" value="Yes">
                                              Yes
                                              <input type="radio" name="LetterFeedback" tabindex="33" value="No"checked>
                                            No</font></div></td>
                                        </tr>
                                        <tr>
                                          <td><b><font size="2">Please confirm
                                            if you would like to receive an sms
                                            outlining results:</font></b></td>
                                        </tr>
                                        <tr>
                                          <td><div align="center"><font face="Arial, Helvetica, san-serif" size="2">
                                              <input type="radio" name="SmsFeedback" tabindex="32" value="Yes">
                                              Yes
                                              <input type="radio" name="SmsFeedback" tabindex="33" value="No"checked>
                                            No</font></div></td>
                                        </tr>
                                      </table>
                                      <table width="91%" height="77"  border="0" align="center" cellpadding="0" cellspacing="0">
                              <tr>
                                <th colspan="2" scope="row"><div align="center">
                                  <p>&nbsp;</p>
                                  <p><u>Memorable Data - In case of lost Password (optional)</u></p>
                                  <p>&nbsp; </p>
                                </div></th>
                                </tr>
                              <tr>
                                <th width="38%" scope="row"> <div align="left"><strong>Memorable Data Type: </strong> </div></th>
                                <td width="62%">
<SELECT name=MemDataType>
                        <OPTION value=Please Select ... selected>Please Select ... </OPTION>
                        <OPTION
                    value=Mothers>Mothers Maiden Name</OPTION>
                        <OPTION value=Colour>Favourite Colour</OPTION>
                        <OPTION
                    value=Place>Memorable Place</OPTION>
                        <OPTION value=Date>Memorable Date</OPTION>
                       
                      </SELECT>
&nbsp;</td>
                              </tr>
                              <tr>
                                <th scope="row"> <div align="left"><strong>Memorable Data: </strong> </div></th>
                                <td><input name="MemData" type="text" size="23" maxlength="60"></td>
                              </tr>
                            </table>                            <br>
                                  <tr>
                                              <td colspan="3" align="right" valign="center"></td>
                                              <td width="1%" align="left" valign="center"> </td>
                                  </tr>
                                            <tr>
                                              <td width="3%" height="24"></td>
                                              <td width="39%"></td>
                                              <td width="57%"><input type="submit" name="Submit" value="Register"></td>
                                              <td>&nbsp; </td>
                                            </tr>
                      </form>
                    </table>



This is the code for registered.jsp:

---------------------------------------

<%@ pageimport ="java.sql.*"%>

                  <DIV align=center>
                    <p><font size="6">BCD Testing </font></p>
                    <p>&nbsp;</p>
                    <p>

<%

Statement      statement = null;
ResultSet      resultset = null;
Connection connection = null;

                Class.forName("org.gjt.mm.mysql.Driver").newInstance();
               connection = DriverManager.getConnection("jdbc:mysql://localhost/combcdte_project?user=combcdte_admin&password=*sonyt630*");      
statement = connection.createStatement();


    String username = "'" + request.getParameter("UserName") + "'";
    String password = "'" + request.getParameter("Password") + "'";
    String password2 = "'" + request.getParameter("Password2") + "'";
    String firstname  = "'" + request.getParameter("FirstName") + "'";
    String lastname  = "'" + request.getParameter("LastName") + "'" ;
    String address1 = "'" + request.getParameter("Address1") + "'";
    String address2 = "'" + request.getParameter("Address2") + "'";
    String town = "'" + request.getParameter("Town") + "'";
    String county = "'" + request.getParameter("County") + "'";
    String areacode = "'" + request.getParameter("AreaCode") + "'";
    String phone = "'" + request.getParameter("Phone") + "'";
    String emailaddress = "'" + request.getParameter("EmailAddress") + "'";
    String gender = "'" + request.getParameter("Gender") + "'";
    String day = "'" + request.getParameter("Day") + "'";
    String month = "'" + request.getParameter("Month") + "'";
    String year = "'" + request.getParameter("Year") + "'";
    String memdatatype= "'" + request.getParameter("MemDataType") + "'";
    String memdata= "'" + request.getParameter("MemData") + "'";

    Statement stmt = connection.createStatement();
    stmt.execute( "INSERT INTO Member (UserName, Password, Password2, FirstName, LastName, Address1, Address2, Town, County, AreaCode, Phone, Emailaddress, Gender, Day, Month, Year, MemDataType, MemData) Values(" + username + "," + password+ "," + password2 + "," + firstname + "," + lastname + "," + address1 + "," + address2 + "," + town + "," + county + "," + areacode + "," + phone + "," +emailaddress + "," + gender + "," + day + "," + month + "," + year+ ", " + memdatatype+ ", " + memdata+ ")" );


{
    connection.close();
}

%>


Thank you for registering your details. Please login <a href="memlogin.jsp"> here</a>
&nbsp;

</p>
                    <p align="left">&nbsp;

</p>
                   

Any suggestions!!!!
Avatar of ramazanyich
ramazanyich
Flag of Belgium image

set an unique key for your username field in database . Then exception will occur during executing  RDBMS statement.
Catch that exception and redirect user back to the filling form with message that username already choosen
Another possibility is to query you database before inserting. But it is not thread safe. Better use unique key.
Avatar of acslater
acslater

ASKER

It is a unique key in the database so if a user enters in a username already in the database it gets an error.

Any suggestions on the code i could use to do this!!!
ASKER CERTIFIED SOLUTION
Avatar of ramazanyich
ramazanyich
Flag of Belgium image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Also you can send some parameter which will describe the problem:

response.sendRedirect("register.jsp?errormsg=Username already choosen");

and in register.jsp just take that parameter and if it is not empty then show it to user:

String errormsg=request.getParameter("errormsg");

...

if(errormsg != null && errormsg.length() >0){
  out.print("Your account was not created due to following error:"+errormsg);
}
Thanks its working now!