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

Ayuda con comprobación de campo

Estas en el tema de Ayuda con comprobación de campo en el foro de ASP Clásico en Foros del Web. estoy realizando el registro de los usuarios, y deseo chequear en la base de datos si el usuario existe o no... para poder informarle al ...
  #1 (permalink)  
Antiguo 01/06/2010, 06:57
 
Fecha de Ingreso: febrero-2003
Mensajes: 233
Antigüedad: 21 años, 2 meses
Puntos: 4
Ayuda con comprobación de campo

estoy realizando el registro de los usuarios, y deseo chequear en la base de datos si el usuario existe o no... para poder informarle al usuario y no salga el error del navegador.

Hice esto que me parece esta bien, pero no lo asume.


Gracias de antemano


<%

Set oConn = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")
oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="&Server.MapPath("mibasededatos")&";"
sql = "select * from tabla"
rs.open sql, oConn, 3,3

usuario = Replace(Request.Form("usuario"), "'", "''")
clave = Replace(Request.Form("clave"), "'", "''")
email = Replace(Request.Form("email"), "'", "''")
pais = Replace(Request.Form("pais"), "'", "''")


if rs.fields("usuario") = usuario then

Response.Write "El usuario ya existe"

else

rs.AddNew
rs.Fields("usuario") = usuario
rs.Fields("clave") = clave
rs.Fields("email") = email
rs.Fields("pais") = pais
rs.Update

response.redirect "registro_completado.asp"


end if

rs.Close
oConn.Close
set rs=nothing
set oConn=nothing
%>
  #2 (permalink)  
Antiguo 01/06/2010, 07:10
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 3 meses
Puntos: 146
Respuesta: Ayuda con comprobación de campo

¿En qué parte del código buscas al usuario para comprobar si ya existe?

Si crees que la respuesta es en la linea if rs.fields("usuario") = usuario then, piensa, ¿dónde se ubica el puntero de la BD después de que abres la tabla?
  #3 (permalink)  
Antiguo 01/06/2010, 09:15
 
Fecha de Ingreso: febrero-2003
Mensajes: 233
Antigüedad: 21 años, 2 meses
Puntos: 4
Respuesta: Ayuda con comprobación de campo

Si pensaba que era esa línea, no sé se úbica en el primer registro? también utilice el rs.eof and rs.bof pero me asume todos los datos no puede seprar el usuario nada más

rs.Fields("usuario") = usuario
rs.Fields("clave") = clave
rs.Fields("email") = email
rs.Fields("pais") = pais


si existía una clave, un email o un país igual en la bd me asumía que el registro ya existía.

No sé que otra opción tengo

Última edición por Joseph; 01/06/2010 a las 09:22
  #4 (permalink)  
Antiguo 01/06/2010, 09:56
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 3 meses
Puntos: 146
Respuesta: Ayuda con comprobación de campo

Si, se ubica en el primer registro, siempre estas ubicado en el primer registro, nunca verificas si en realidad el parámetro que envías esta o no en la tabla, siempre preguntas si el parámetro es el primer registro.

Debes modificar el código para buscar en la tabla el request de usuario o clave.

Esto "select * from tabla" debes cambiarlo a algo como "select * from tabla where Clave = " & request("clave")

Y claro, el IF que tienes ya no te funcionará en caso de que no exista, debes preguntar por el .EOF de la tabla
  #5 (permalink)  
Antiguo 01/06/2010, 10:40
 
Fecha de Ingreso: febrero-2003
Mensajes: 233
Antigüedad: 21 años, 2 meses
Puntos: 4
Respuesta: Ayuda con comprobación de campo

Muchas gracias cierto debo filtrarlo por la consulta sql... muchas gracias.
  #6 (permalink)  
Antiguo 01/06/2010, 11:12
 
Fecha de Ingreso: febrero-2003
Mensajes: 233
Antigüedad: 21 años, 2 meses
Puntos: 4
Respuesta: Ayuda con comprobación de campo

Funciona a la perfección... Estoy trabajando en otra duda pero es un sistema Captcha, abriré otro tema si no logro realizarlo... para no mezclarlos. Gracias nuevamente (A veces a uno se le escapan los detalles importantes).

Etiquetas: campos
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 11:03.