Foros del Web » Programando para Internet » ASP Clásico »

Problema de registro

Estas en el tema de Problema de registro en el foro de ASP Clásico en Foros del Web. -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 ...
  #1 (permalink)  
Antiguo 28/05/2010, 08:56
 
Fecha de Ingreso: mayo-2010
Mensajes: 8
Antigüedad: 13 años, 11 meses
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
  #2 (permalink)  
Antiguo 28/05/2010, 09:40
 
Fecha de Ingreso: marzo-2006
Mensajes: 66
Antigüedad: 18 años, 1 mes
Puntos: 0
Respuesta: Problema de registro

Si es que entendí bien tu planteamiento es que siempre se te ingresa el usuario aún cuando ya exista en la BD, no?

De ser así, y viendo el código, la inserción de datos no la deberías condicionar a cuando NO exista 'ese' usuario en la BD. ( Según el cod. la validacion está después que se ingresa).

Espero haberte entendido.
Sl2
  #3 (permalink)  
Antiguo 28/05/2010, 09:59
Avatar de Wasper  
Fecha de Ingreso: julio-2006
Ubicación: de cai, picha!!!
Mensajes: 1.030
Antigüedad: 17 años, 9 meses
Puntos: 41
Busqueda Respuesta: Problema de registro

Claro, si no condicionas antes de meter los datos por supuesto que se metera...

Por partes, esto es el condicionante, donde controlas las repeticiones:
Cita:
If recordset1("usuario")=usu Then control=1
recordset1.MoveNext
wend
If control=1 then
response.write ("no puedes volver a registrarte con este nombre")
aqui es donde metes el nuevo usuario
Cita:
recordset1.addnew
recordset1("usuario")=usu
recordset1("password")=pass
response.write("haz registrado correctamente esta cuenta")
recordset1.update
El condicionante debe estar antes que la insersion de datos... y dentro de una condicion if... de todas formas no es la manera mas optima de hacerlo...

ya que el SELECT es el que pones:
Cita:
sql="SELECT *from bbdd"
porque no pones esto mejor
Cita:
sql="SELECT * from bbdd WHERE campousuario LIKE '" & usu&"'"
...
...
if (recordset1.EOF) then
metes el usuario
else
Response.write("El usuario ya existe... elija otro nombre...")
end if
Lo que pretendo es que lo entiendas... ya que seria mas facil darte un link... pero te encontrarias despues con mas problemas...
__________________
Saludos, Jose

Paginas web y SEO
Anuncios por palabras
  #4 (permalink)  
Antiguo 28/05/2010, 10:14
 
Fecha de Ingreso: mayo-2010
Mensajes: 8
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Problema de registro

Gracias si me entendieron y voy a probar lo que me pone Wasper.
Vere a ver si funciona
  #5 (permalink)  
Antiguo 28/05/2010, 11:21
 
Fecha de Ingreso: mayo-2010
Mensajes: 8
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Problema de registro

Ok; muchas gracias me funciono correctamente. No se me ocurrio lo de la sentencia sql con el LIKE.
  #6 (permalink)  
Antiguo 28/05/2010, 13:21
Avatar de Wasper  
Fecha de Ingreso: julio-2006
Ubicación: de cai, picha!!!
Mensajes: 1.030
Antigüedad: 17 años, 9 meses
Puntos: 41
Respuesta: Problema de registro

Me alegro campeon...
__________________
Saludos, Jose

Paginas web y SEO
Anuncios por palabras

Etiquetas: registro
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:09.