-Hice una pagina html para registrar un nombre y una contraseña y esta me lleva a un pagina asp que me guarda los datos del html en un base de datos. Mi problema es que no consigo que los nombres ya registrados no se registren en a base de datos; me dice que "no puedes volver a registrarte con este nombre" si, pero aun asi en la base de datos el nombre si queda registrado con lo cual hay dos nombres iguales registrados.
-Mi codigo es el siguiente
la pagina html se llama "registro.html"
Código HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE> New Document </TITLE> <META NAME="Generator" CONTENT="EditPlus"> <META NAME="Author" CONTENT=""> <META NAME="Keywords" CONTENT=""> <META NAME="Description" CONTENT=""> </HEAD> <BODY> <form action="alta.asp" method="post"> Nombre de usuario:<input name="usuario"><br> Contraseña:<input name="contrasena"><br> <input type="submit"> </form> </BODY> </HTML>
Código HTML:
<%
'llamo a los campos del registro.html
Dim usu
Dim pass
usu=request.Form("usuario")
pass=request.Form("contrasena")
Dim sql
Dim BD
Dim recordset1
Dim ruta_fichero
ruta_fichero=server.mappath("usuarios.mdb")
Set BD=Server.createobject("ADODB.connection")
BD.Open"provider=Microsoft.jet.OLEDB.4.0;Data Source="&ruta_fichero
'llamamos y selecionamos y los campos de la base de datos
sql="SELECT *from bbdd"
Set recordset1=CreateObject("ADODB.Recordset")
recordset1.open sql,BD,2,3
'cuando la persona ingresa los datos en el registro.html este le lleva a esta pagina
'en estas linea lo que hace es registrar los datos en la base de datos
recordset1.addnew
recordset1("usuario")=usu
recordset1("password")=pass
response.write("haz registrado correctamente esta cuenta")
recordset1.update
'en estas linea se lleva a cabo el registro de otro usuario que quiera registrarse
'la variable session("user") llama a lo que haya puesto el usuario en la caja de texto y se guarda
session("user")=usu
'en estas lineas checkeamos si el nombre que haya introducido el usuario ya esta en la base de datos
'la variable control=0 quiere decir que no hay usuarios registrado con ese nombre
'la variable control=1 quiere decir que ya hay un usuario registrado con ese nombre
'el problema es que aunque este registrado el nombre; se vuelve a registrar
recordset1.MoveFirst
control=0
While Not recordset1.EOF
If recordset1("usuario")=usu Then control=1
recordset1.MoveNext
wend
If control=1 then
response.write ("no puedes volver a registrarte con este nombre")
BD.close
Set BD=Nothing
%>
.La tabla de la base de datos se llama bbdd
.Los campos de la tabla son "usuario" y "password". No hay un campo con clave principal pero aun asi, con el codigo echo, supongo que no deberia de ocurrir tal problema.
Espero que me puedan ayudar y gracias por su tiempo.
Saludos