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

Comprobar e-mail en base de datos

Estas en el tema de Comprobar e-mail en base de datos en el foro de ASP Clásico en Foros del Web. HOLA QUERIA SABER SI ME PODIAN DECIR COMO PUEDO HACER PARA COMPROBAR UN E-MAIL REGISTRADO EN MI BASE DE DATOS. EL CODIGO QUE USO ES ...
  #1 (permalink)  
Antiguo 06/11/2006, 22:39
 
Fecha de Ingreso: noviembre-2006
Mensajes: 5
Antigüedad: 17 años, 7 meses
Puntos: 0
Pregunta Comprobar e-mail en base de datos

HOLA QUERIA SABER SI ME PODIAN DECIR COMO PUEDO HACER PARA COMPROBAR UN E-MAIL REGISTRADO EN MI BASE DE DATOS. EL CODIGO QUE USO ES EL SIGUIENTE:

<%
If Request.Form("E-mail") <> "" Then
Dim DB, TBL
Set DB = Server.CreateObject("ADODB.Connection")
Set TBL = Server.CreateObject("ADODB.RecordSet")
DB.Mode = adModeReadWrite
DB.Open ("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=" + Server.MapPath("registrados.mdb"))

TBL.Open "registrados" ,DB

While NOT TBL.EOF

If Request.Form("E-mail")=TBL("E-mail")then
Response.Redirect("URL PAGINA PERMITIDA")
Else
Response.Redirect("URL PAGINA NO PERMITIDA")
end if

TBL.MoveNext

wend

TBL.Close
DB.Close

Set DB = Nothing
Set TBL = Nothing

else
End If
%>

ESTE CODIGO SOLO ME TOMA EL PRIMER REGISTRO DE LA TABLA DE EMAIL LOS DEMAS ME APARACE QUE NO ESTAN REGISTRADOS. OSEA NO RECORRE LA TABLA PARA VERIFICAR EL REGISTRO

MUCHAS GRACIAS, MUY BUEN FORO LO RECOMIENDO

Última edición por ezequielfmartin; 06/11/2006 a las 22:42 Razón: comprobar e-mail o cualquier dato que este registrado en la base de datos access
  #2 (permalink)  
Antiguo 07/11/2006, 08:24
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 20 años, 7 meses
Puntos: 27
usa un simple "select * from tutabla where email = '" & request("email") "'"

suerte
__________________
JuanRa Pérez
San Salvador, El Salvador
  #3 (permalink)  
Antiguo 07/11/2006, 08:27
 
Fecha de Ingreso: noviembre-2006
Mensajes: 5
Antigüedad: 17 años, 7 meses
Puntos: 0
De acuerdo Gracias por tu respuesta

Necesitaba que me dijeras en que lugar del codigo va ese select y si el codigo en si esta bien...Soy novato en esto...Gracias
  #4 (permalink)  
Antiguo 07/11/2006, 11:27
 
Fecha de Ingreso: octubre-2006
Mensajes: 14
Antigüedad: 17 años, 7 meses
Puntos: 0
ese select va antes del while
  #5 (permalink)  
Antiguo 08/11/2006, 08:08
 
Fecha de Ingreso: noviembre-2006
Mensajes: 5
Antigüedad: 17 años, 7 meses
Puntos: 0
No Me Funciona

GRACIAS PRIMERO POR TODAS LAS RESPUESTAS, PERO HICE LO QUE ME SUJIRIERON PERO NO FUNCIONA, ES MAS LA PAGINA NO SE PUEDE MOSTRAR (No se puede mostrar la página), EL CODIGO SEGUN LO QUE ME ACONSEJARON ME QUEDO ASI

<%
If Request.Form("E-mail") <> "" Then
Dim DB, TBL
Set DB = Server.CreateObject("ADODB.Connection")
Set TBL = Server.CreateObject("ADODB.RecordSet")
DB.Mode = adModeReadWrite
DB.Open ("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=" + Server.MapPath("registrados.mdb"))


TBL.Open "registrados" ,DB

select * from registrados where E-mail = '" & request("E-mail") "'"
While NOT TBL.EOF
If Request.Form("E-mail")=TBL("E-mail")then
Response.Redirect("PAGINA PERMITIDA")
Else
Response.Redirect("acceso denegado")
end if

DB.MoveNext

wend

TBL.Close
DB.Close

Set DB = Nothing
Set TBL = Nothing

else
End If
%>



Mi idea es que el usuario ingrese su mail y si esta registrado en la base de datos que permita entrar a la pagina, caso contrario que salte a otra para que pueda registrarse (esta ultima la tengo hecha)

Gracias.....espero me puedan ayudar

Última edición por ezequielfmartin; 08/11/2006 a las 08:13
  #6 (permalink)  
Antiguo 08/11/2006, 10:38
 
Fecha de Ingreso: octubre-2006
Mensajes: 14
Antigüedad: 17 años, 7 meses
Puntos: 0
Prueba con este codigo compañero...

Código:
<%
If Request.Form("E-mail") <> "" Then
Dim DB, TBL Set DB = Server.CreateObject("ADODB.Connection") Set TBL = Server.CreateObject("ADODB.RecordSet") DB.Mode = adModeReadWrite DB.Open ("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=" + Server.MapPath("registrados.mdb")) 'TBL.Open "registrados" ,DB strSql = "select * from registrados where E-mail = '" & request("E-mail") &"'" set lista = DB.execute(strSql) While NOT lista.EOF
If Request.Form("E-mail")=lista("E-mail")then
Response.Redirect("PAGINA PERMITIDA")
Else
Response.Redirect("acceso denegado")
end if lista.MoveNext
wend lista.Close DB.Close Set DB = Nothing Set lista = Nothing
End If %>
  #7 (permalink)  
Antiguo 08/11/2006, 11:12
Avatar de 3pies
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Desde una destilería
Mensajes: 2.584
Antigüedad: 20 años, 6 meses
Puntos: 144
La propuesta de teorico es teóricamente -valga la redundancia-, la correcta, pero ¿qué pasaría si alquien pusiese este email en el formulario de acceso a esas páginas restringidas?:
Código:
' or '1'='1
La respuesta está en la sql injection.
  #8 (permalink)  
Antiguo 09/11/2006, 05:56
 
Fecha de Ingreso: noviembre-2006
Mensajes: 5
Antigüedad: 17 años, 7 meses
Puntos: 0
Sigue Sin Funcionar

HOLA GENTE DISCULPEN LO PESADO QUE SOY PERO ESTE CODIGO QUE TENGO YO MAS LO QUE ME ACONSEJARON QUE HAGA SIGUE SIN FUNCIONAR, HAY OTRO CODIGO PARA VERIFICAR SI LOS DATOS QUE INGRESA EL USUARIO SON LOS REGISTRADOS EN EL base de datos?

ENCONTRE VARIAS DE ESAS FORMAS PERO NINGUNA ME FUNCIONO, ES MAS VARIABAN EN LA FORMA DE APERTURA DE LA BASE DE DATOS

SI SABEN ALGO MAS Y SI NO ES MOLESTIA ACEPTO CUALQUIER DATO QUE ME QUIERAN APORTAR...

MI CODIGO QUEDO ASI

Código:
<%
If Request.Form("E-mail") <> "" Then 
Dim DB, TBL
Set DB = Server.CreateObject("ADODB.Connection")
Set TBL = Server.CreateObject("ADODB.RecordSet")
DB.Mode = adModeReadWrite
DB.Open ("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=" + Server.MapPath("registrados.mdb"))


TBL.Open "registrados" ,DB

strSql = "select * from registrados where E-mail = '" & request("E-mail") &"'"
set TBL = DB.execute(strSql)
While NOT TBL.EOF

	If Request.Form("E-mail")=TBL("E-mail")then

	Response.Redirect("ACCESO PERMITIDO")

	Else

	Response.Redirect("ACCESO DENEGADO")
	End if

TBL.MoveNext

Wend

TBL.Close
DB.Close

Set DB = Nothing
Set TBL = Nothing
else
End If
%>
  #9 (permalink)  
Antiguo 09/11/2006, 08:34
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 20 años, 7 meses
Puntos: 27
usastes el codigo de teorico?

es muy bueno el codigo solo tendrias como dice 3pies que hacer una limpieza de caracteres en el request para poder evitar que violenten tu sitio

Cita:
'TBL.Open "registrados" ,DB
esa linea esta comentariada
__________________
JuanRa Pérez
San Salvador, El Salvador
  #10 (permalink)  
Antiguo 09/11/2006, 10:03
 
Fecha de Ingreso: noviembre-2006
Mensajes: 5
Antigüedad: 17 años, 7 meses
Puntos: 0
si use

Si Use El Codigo De El Amigo Pero No Sirvio, El Comentario Se Lo Saque Y Se Lo Coloque Pero No Modifica En Nada El Codigo. Estoy Usando Otros Codigos Asp Para Otras Funciones Sin Problemas Asi Que El Hosting, Lo Soporta. El Tema Es Que Probe Infinidad De Codigos De Otros Foros Y De Este Y No Me Lleva El Apunte En El Caso De Este Ultimo Que Probe A La Hora De Enviar Me Pone Pagina No Encontrada.


Saludos
  #11 (permalink)  
Antiguo 09/11/2006, 10:37
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 20 años, 7 meses
Puntos: 27
cuando dices no sirvio
a que te refieres?????

entonces el error es de lectura y de poca explicacion

utilicemos el mismo codigo y hace lo siguiente

Código:
<%
If Request.Form("E-mail") <> "" Then 
Dim DB, TBL
Set DB = Server.CreateObject("ADODB.Connection")
Set TBL = Server.CreateObject("ADODB.RecordSet")
DB.Mode = adModeReadWrite
DB.Open ("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=" + Server.MapPath("registrados.mdb"))


strSql = "select * from registrados where E-mail = '" & request("E-mail") &"'"
set TBL = DB.execute(strSql)
While NOT TBL.EOF

	If Request.Form("E-mail")=TBL("E-mail")then

	Response.Redirect("entrar.asp")

	Else

	Response.Redirect("salir.asp")
	End if

TBL.MoveNext

Wend

TBL.Close
DB.Close

Set DB = Nothing
Set TBL = Nothing
else
End If
%>
crea tu las paginas entrar.asp y salir.asp para que no te de error de
"Pagina No Encontrada."

suerte
__________________
JuanRa Pérez
San Salvador, El Salvador
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 22:49.