Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/05/2010, 08:56
Luispp
 
Fecha de Ingreso: mayo-2010
Mensajes: 8
Antigüedad: 14 años
Puntos: 0
Problema de registro

-Hola; saludos a todos; tengo el siguiente problema:

-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> 
-y mi pagina ASP se llama "alta.asp"

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 base de datos esta echa en access y se llama usuarios.mdb. guardado en formato base de datos access 2002_2003.
.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