Closed Thread Icon

Topic awaiting preservation: New User register problem (ASP) (Page 1 of 1) Pages that link to <a href="https://ozoneasylum.com/backlink?for=12948" title="Pages that link to Topic awaiting preservation: New User register problem (ASP) (Page 1 of 1)" rel="nofollow" >Topic awaiting preservation: New User register problem (ASP) <span class="small">(Page 1 of 1)</span>\

 
Hiroki
Paranoid (IV) Inmate

From: NZ
Insane since: Dec 2002

posted posted 10-23-2003 04:28

Hi, guys. How are you?
Well, here is senario. I made login system using ASP and MS Access. Now user can register their own username and password. But now a problem occoured. Username has to be never same, isn't it? Now I am trying to make message, which will be shown when user chose existing username.

Here is my code:

code:
<html>
<head>
<title>Register</title>
</head>
<body>

<%
Set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open(Server.mappath("database.mdb"))

If Request("action") = "Register" Then
Add_Record
End If

Sub Add_Record()
on error resume next


For each x in rs.Fields
If x.value = Request.Form("field1") Then
Response.Write("Sorry, already taken")
End IF
Next

username = Request.Form("field1")
password = Request.Form("field2")

sql = "INSERT INTO login(field1, field2) VALUES "
sql = sql & "('" & username & "','" & password & "')"

conn.Execute sql, recordsaffected

If err <> 0 Then
Response.Write(err.Description)

else
Response.Write("<html><script>window.opener.do_Refresh();window.close();</script></html>")

Response.End

End If

End Sub


Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open "SELECT * FROM login", conn

%>


<h2>Register here</h2>
<form method="post" action="register.asp">
<table>
<%For each x in rs.Fields
If x.name <> "ID" Then %>
<tr>
<td><%=x.name%></td>
<td><input name="<%=x.name%>" value="N/A" size="20"></td>
<%
End If
Next

rs.Close
conn.close
%>

</table>
<br />
<input type="submit" name="action" value="Register">
</form>
</body>
</html>



I thought:

1. I have to compare user input and existing username in database.
2. make For Next loop before sql statement ( actually adding new data) Like:

code:
For each x in rs.Fields
If x.value = Request.Form("field1") Then
Response.Write("Sorry, already taken")
End IF
Next



This will check if it is existing username or not.
3.Should work.

But when I run the programe, the message, Sorry, already taken always pops up. Then never go back to my index page. When user succeed regisgering, it has to take them back to index.asp.

Hmmm......please help.

Hiroki Kozai

Rhino
Bipolar (III) Inmate

From: New Jersey, USA
Insane since: Jul 2003

posted posted 10-23-2003 11:04

Instead of looping through all the fields you should just compare the Submitted user name through a SQL call. This would be much more efficient especially when you start to add lots of users. If nothing comes back, then you know the username does not exist.

Hiroki
Paranoid (IV) Inmate

From: NZ
Insane since: Dec 2002

posted posted 10-23-2003 21:50

Thanks, mate. I will try that.

Hiroki Kozai

Hiroki
Paranoid (IV) Inmate

From: NZ
Insane since: Dec 2002

posted posted 10-23-2003 23:03

Hi, I did something like:

code:
Sub 
Add_Record()
on error resume next

username = Request.Form("field1")
password = Request.Form("field2")

sql_check = "SELECT * FROM login WHERE field1 = '" & Request.Form("field1") & "'"
Set rs = conn.Execute(sql_check)

If rs.EOF Then

sql = "INSERT INTO login(field1, field2) VALUES "
sql = sql & "('" & username & "','" & password & "')"
conn.Execute sql, recordsaffected

Else

Response.write("Sorry, already taken")

End If

If err <> 0 Then
Response.Write(err.Description)

else
Response.Write("<html><script>window.opener.do_Refresh();window.close();</script></html>")

Response.End

End If

End Sub



This is sub for adding new user into database.
Basiclly what I want to do is very simple. If username is alreading existing, show message otherwise just adding into database.

I wrote sql statement like:

code:
sql_check = "SELECT * FROM login WHERE field1 = '" & Request.Form("field1") & "'"



This is to compare username and existing username.

But problem is:

It seems to add new user but message doesn't show up even when I enter existing username.....
Do you see something?
Thanks.

Hiroki Kozai

« BackwardsOnwards »

Show Forum Drop Down Menu