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

comprobar dos strings

Estas en el tema de comprobar dos strings en el foro de ASP Clásico en Foros del Web. Tengo un formulario con un par de campos (nombre y password) y una base de datos con varias tablas. Lo que quiero es obtener dos ...
  #1 (permalink)  
Antiguo 11/05/2005, 07:50
 
Fecha de Ingreso: octubre-2003
Mensajes: 184
Antigüedad: 20 años, 7 meses
Puntos: 0
comprobar dos strings

Tengo un formulario con un par de campos (nombre y password) y una base de datos con varias tablas. Lo que quiero es obtener dos campos de la base de datos (que los obtengo) y compararlos con los datos del formulario, para lo cual hago lo siguiente pero no me funciona del todo:

----conexion a la base de datos----
----obtencion de los datos de la base de datos----
if Resquest.Form("nombre") = nombre (es donde dejo el valor del dato de la base de datos) then

siempre se salta esta comprobacion y no deberia.
  #2 (permalink)  
Antiguo 11/05/2005, 08:10
Avatar de trasgukabi  
Fecha de Ingreso: septiembre-2004
Mensajes: 2.749
Antigüedad: 19 años, 9 meses
Puntos: 18
que no te funciona "del todo" qué significa? que hay veces que te funciona y otras no? si es eso, y sólo por probar, prueba con
Código:
if Request.Form("nombre") = trim(nombre) then
comprueba que tienes un objeto "nombre" en Request
comprueba que "nombre" no está vacío
y no sé qué mas decir
  #3 (permalink)  
Antiguo 11/05/2005, 09:38
 
Fecha de Ingreso: octubre-2003
Mensajes: 184
Antigüedad: 20 años, 7 meses
Puntos: 0
Queria decir que nunca entra por el if y realmente no se porque no entra
  #4 (permalink)  
Antiguo 11/05/2005, 09:53
Avatar de Neuron_376  
Fecha de Ingreso: abril-2005
Mensajes: 1.051
Antigüedad: 19 años, 2 meses
Puntos: 2
ok.

1. Estos errores raros son porque antes existe un error grave, revisa que al momento de la conexion y la consulta todo este correcto.

2. Cuando tienes datos en un recordset realmente no tienen un tipo definido, entonces te puede presentar errores usarlos directamente como lo estas haciendo:

if Resquest.Form("nombre") = nombre then 'ESTO ESTA MAL

Entonces debes convertirlo al tipo de dato real para poder manejarlo adecuadamente:

if Cstr(Resquest.Form("nombre")) = nombre then 'ESTO ESTA BIEN

Asi aseguras que nunca tendras errores por tipos de datos mal comparados.

Suerte!!
__________________
NeuronaNet.com... la idea correcta.
http://www.NeuronaNet.com
  #5 (permalink)  
Antiguo 11/05/2005, 15:01
Avatar de trasgukabi  
Fecha de Ingreso: septiembre-2004
Mensajes: 2.749
Antigüedad: 19 años, 9 meses
Puntos: 18
if Resquest.Form("nombre") = nombre then 'ESTO NO TIENE PORQUÉ ESTAR MAL
  #6 (permalink)  
Antiguo 11/05/2005, 15:09
Avatar de Neuron_376  
Fecha de Ingreso: abril-2005
Mensajes: 1.051
Antigüedad: 19 años, 2 meses
Puntos: 2
Cierto...

Me equivoque en lo que deica... donde debe estar mal es donde hace algo como:

nombre = rs("nombre")

debe de ser como

nombre = Cstr(rs("nombre"))

Y en el request lo que si es cierto, es que debe validar mejor la entrada...

if Request.Form("nombre") = trim(nombre) then
''' Aun esta mal, porque nombre es de la base de datos, tal vez viene sucio, pero no se deberia de manejar ahi, sino que el valor del Form debe ser validado mas... entonces debe de ser asi:

if Cstr(Trim(Request.Form("nombre"))) = nombre then
''Ahi limpias el valor del Form y ademas lo fuerzas a ser de tipo cadena para que no presente ningun tipo de error por el tipo de dato.

Creo que asi estaria bien todo....

Suerte!!
__________________
NeuronaNet.com... la idea correcta.
http://www.NeuronaNet.com
  #7 (permalink)  
Antiguo 11/05/2005, 15:22
 
Fecha de Ingreso: octubre-2003
Mensajes: 184
Antigüedad: 20 años, 7 meses
Puntos: 0
Muchas gracias Neuron, con el ultimo consejo que me has dado me ha funcionado.
Gracias
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:18.