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

Sistema Catpcha en ASP

Estas en el tema de Sistema Catpcha en ASP en el foro de ASP Clásico en Foros del Web. Saludos Soy nuevo en esto de la programacion con ASP, tengo un formulario de Contactos en mi pagina web llamado contactos.asp el cual llama un ...
  #1 (permalink)  
Antiguo 10/12/2007, 11:14
 
Fecha de Ingreso: diciembre-2007
Mensajes: 5
Antigüedad: 16 años, 6 meses
Puntos: 2
Sistema Catpcha en ASP

Saludos

Soy nuevo en esto de la programacion con ASP, tengo un formulario de Contactos en mi pagina web llamado contactos.asp el cual llama un ASP (contactar.asp) cuando se presiona el boton enviar, hasta alli todo funciona perfecto y sin problemas.

Quiero implementar un sistema Catpcha (identificacion humana), asi que he cambiado en evento del boton enviar por contactos.asp efectivamente el sistema Catpcha funciona de maravilla y cada vez que se carga da un numero captcha diferente.

Aqui pego el codigo que utilizo:

if Request.ServerVariables("REQUEST_METHOD") = "POST" then
strCAPTCHA = Trim(Request.Form("strCAPTCHA"))
if CheckCAPTCHA(strCAPTCHA) = true then
%>
Set Mail = Server.CreateObject("Persits.MailSender")
Mail.Host = "mail.miweb.com.co"
Mail.From = "[email protected]"
Mail.FromName = "Contactos Web Carficol S.A"
Mail.Subject= "Contacto Pagina Web"
Mail.Body = "Contactos Pagina Web " & VbCrLf & VbCrLf
Mail.Body = Mail.Body & "Fecha y Hora :--> " & now() & VbCrLf & VbCrLf
Mail.Body = Mail.Body & "Datos del Contacto" & VbCrLf & VbCrLf
Mail.Body = Mail.Body & "Nombre: " & Request.Form("nombre") & VbCrLf
Mail.Send
if Err <> 0 Then
Response.Write Err.Description
else
<script language="JavaScript" >
alert("El mensaje fue enviado correctamente");
</script>
end if
<%
else
%>
<script language="JavaScript" >
alert("Imposible enviar este mensaje, el codigo de seguridad NO es valido");
</script>
<%

Cuando le doy click a enviar y el codigo catpcha que he colocado es diferente al que aprece en la imagen pues funciona de maravilla y muestra el error, pero si lo pongo igual el codigo catpcha dice que se ha enviado pero no llega nada.

No se por que antes funcionaba perfecto el Request.Form("nombre") y ahora ya no, recuerden que "nombre" es un campo de un formulario.

Agradezco su valiosa colaboracion.

Ing. Bladimir Silva T
Colombia
  #2 (permalink)  
Antiguo 10/12/2007, 12:11
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Re: Sistema Catpcha en ASP

Entonces tu problema NO es con un sistema catpcha, sino con el envío de correos ¿es cierto? ¿tu servidor no requiere autentificación?
  #3 (permalink)  
Antiguo 10/12/2007, 13:35
 
Fecha de Ingreso: diciembre-2007
Mensajes: 5
Antigüedad: 16 años, 6 meses
Puntos: 2
Re: Sistema Catpcha en ASP

Bueno si mi servicio de correo requiere autenficacion desde luego, pero si antes funcionaba bien de este forma programando en boton Enviar el evento (<form name="form1" method="post" action="contactar.asp">)

contenido archivo contactar.asp

Set Mail = Server.CreateObject("Persits.MailSender")
Mail.Host = "mail.miweb.com.co"
Mail.From = "[email protected]"
Mail.FromName = "Contactos Web Carficol S.A"
Mail.Subject= "Contacto Pagina Web"
Mail.Body = "Contactos Pagina Web " & VbCrLf & VbCrLf
Mail.Body = Mail.Body & "Fecha y Hora :--> " & now() & VbCrLf & VbCrLf
Mail.Body = Mail.Body & "Datos del Contacto" & VbCrLf & VbCrLf
Mail.Body = Mail.Body & "Nombre: " & Request.Form("nombre") & VbCrLf
Mail.Send
if Err <> 0 Then
Response.Write Err.Description
else
<script language="JavaScript" >
alert("El mensaje fue enviado correctamente");
</script>
end if
<%

He probado ejecutando www.miweb.com.co\contactar.asp y llega un email en Blanco asi que si funciona.

Lo unico que hice fue seleccionar todo este mismo codigo de contactar.asp y lo he pegado cuando el sistema compara el numero catpcha y si es igual pues deberia enviar el email

Asi quedo:

if Request.ServerVariables("REQUEST_METHOD") = "POST" then
strCAPTCHA = Trim(Request.Form("strCAPTCHA"))
if CheckCAPTCHA(strCAPTCHA) = true then
%>
Set Mail = Server.CreateObject("Persits.MailSender")
Mail.Host = "mail.miweb.com.co"
Mail.From = "[email protected]"
Mail.FromName = "Contactos Web Carficol S.A"
Mail.Subject= "Contacto Pagina Web"
Mail.Body = "Contactos Pagina Web " & VbCrLf & VbCrLf
Mail.Body = Mail.Body & "Fecha y Hora :--> " & now() & VbCrLf & VbCrLf
Mail.Body = Mail.Body & "Datos del Contacto" & VbCrLf & VbCrLf
Mail.Body = Mail.Body & "Nombre: " & Request.Form("nombre") & VbCrLf
Mail.Send
if Err <> 0 Then
Response.Write Err.Description
else
<script language="JavaScript" >
alert("El mensaje fue enviado correctamente");
</script>
end if
<%
else
%>
<script language="JavaScript" >
alert("Imposible enviar este mensaje, el codigo de seguridad NO es valido");
</script>
<%

Pero no envia nada, quiero saber si ese codigo esta bien por que se me hace raro que no funcione como deberia ser.

Gracias por su ayuda y colaboracion.

Ing. Bladimir Silva T
Colombia
  #4 (permalink)  
Antiguo 11/12/2007, 08: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, 4 meses
Puntos: 146
Re: Sistema Catpcha en ASP

ok. entonces siendo el caso veamos tu código ....

Bueno, primeramente dices que crees que se manda el correo por que te sale la ventana javascript que dice que el mensaje fue enviado correctamente pero yo no veo la linea On Error Resume Next que le permita al objeto Err tener algún valor, supongo que siempre es 0. Cierto es que sin esa linea, si tronara el IIS te lo indicaría pero tu ponla por si no fuera el caso.

Saludos
  #5 (permalink)  
Antiguo 11/12/2007, 08:38
Avatar de eberrios  
Fecha de Ingreso: agosto-2004
Ubicación: Chile
Mensajes: 145
Antigüedad: 19 años, 10 meses
Puntos: 1
Re: Sistema Catpcha en ASP

no es necesaria la la linea On Error Resume Next ya que esa linea lo que hace es decir que al momento de haber un error lo salte y siga es decir que si existe un error antes del err y no tienes puesta on error... se caera donde corresponde y no al momento que tu quieras

On Error Resume Next solo te sirve para control de errores o por si pusiste option explicit y no declaraste alguna variable :P

yo te recomendaría que revisaras que todos los paramentros esten llegando correctamente lo otro que puedes hacer es probar derechamente el request solo sin Form

saludos
  #6 (permalink)  
Antiguo 12/12/2007, 07:50
Avatar de Kelpie  
Fecha de Ingreso: febrero-2002
Ubicación: NorthSpain
Mensajes: 609
Antigüedad: 22 años, 4 meses
Puntos: 8
Re: Sistema Catpcha en ASP

No acabo de ver qué significa el %> que tienes después del CheckCAPTCHA:

if CheckCAPTCHA(strCAPTCHA) = true then
%> '<----- ESTO
Set Mail = Server.CreateObject("Persits.MailSender")
__________________
Kelpie
  #7 (permalink)  
Antiguo 13/12/2007, 08:06
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 20 años, 7 meses
Puntos: 27
Re: Sistema Catpcha en ASP

Cita:
Iniciado por eberrios Ver Mensaje
no es necesaria la la linea On Error Resume Next ya que esa linea lo que hace es decir que al momento de haber un error lo salte y siga es decir que si existe un error antes del err y no tienes puesta on error... se caera donde corresponde y no al momento que tu quieras

On Error Resume Next solo te sirve para control de errores o por si pusiste option explicit y no declaraste alguna variable :P

yo te recomendaría que revisaras que todos los paramentros esten llegando correctamente lo otro que puedes hacer es probar derechamente el request solo sin Form

saludos

jajajaj un apregunta eberrios - solo curiosidad -

tu le dices: yo te recomendaría que revisaras que todos los paramentros esten llegando correctamente

entonces sera correcto que coloque "On Error Resume Next" y que imprima Err.Description para poder saber que es lo que esta mal?
si es autentificacion, etc, etc, etc....

y que deje su codigo tal y como esta

if Err <> 0 Then
Response.Write Err.Description
else


digo no se si lei demasiado rapido el post jejeje

suerte

EDITADO: y el mail.to?
__________________
JuanRa Pérez
San Salvador, El Salvador
  #8 (permalink)  
Antiguo 13/12/2007, 08:44
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Re: Sistema Catpcha en ASP

Pues será el sereno ...

Yo se que si el código tuviera un error atrapable por el IIS, el programa tronaría por que no tiene el On Error, y eso de que no importa pues basta con hacer una prueba:

Código:
<%
'on error resume next
myArr = Array("uno","dos","tres")
Response.Write("Elemento #3 es " & myArr(3) & "<br>")

If Err.Number > 0 Then
Response.Write("Error #" & Err.Number & "<br>")
Response.Write("Error Source: " & Err.Source & "<br>")
Response.Write("Error Description: " & Err.Description & "<br>")
End If

%>
Ese código corriendo sin el On Error truena y es inútil que el objeto Err tenga valor o no.

En fin, regresando al tema sobre el fallo en el envío en lo personal yo haría varios debugueos para localizar el fallo: imprimiría el resultado de CheckCAPTCHA(strCAPTCHA); haría un redirect al conectar.asp que según esto si funciona; en fin, cosas que solo quien tenga el problema puede hacer ya que no veo error aparente en el código.
  #9 (permalink)  
Antiguo 13/12/2007, 08:58
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 20 años, 7 meses
Puntos: 27
Re: Sistema Catpcha en ASP

jejeje a eso me referia

ok hay un par de detalles en el codigo original... basados en eso
kelpie señalo un cerrar ASP que en efecto nos e sabe si cierra o esta demas y si cerrara no hay otro de apertura

Cita:
if Request.ServerVariables("REQUEST_METHOD") = "POST" then
strCAPTCHA = Trim(Request.Form("strCAPTCHA"))
if CheckCAPTCHA(strCAPTCHA) = true then
%>
DireccionMailTo = "[email protected]"

Set Mail = Server.CreateObject("Persits.MailSender")
Mail.Host = "mail.miweb.com.co"
Mail.From = "[email protected]"
Mail.FromName = "Contactos Web Carficol S.A"
Mail.AddAddress DireccionMailTo
Mail.Subject= "Contacto Pagina Web"
Mail.Body = "Contactos Pagina Web " & VbCrLf & VbCrLf
Mail.Body = Mail.Body & "Fecha y Hora :--> " & now() & VbCrLf & VbCrLf
Mail.Body = Mail.Body & "Datos del Contacto" & VbCrLf & VbCrLf
Mail.Body = Mail.Body & "Nombre: " & Request.Form("nombre") & VbCrLf
Mail.Send
if Err <> 0 Then
Response.Write Err.Description
else
<script language="JavaScript" >
alert("El mensaje fue enviado correctamente");
</script>
end if
<%
else
%>
<script language="JavaScript" >
alert("Imposible enviar este mensaje, el codigo de seguridad NO es valido");
</script>
<%
para mayor información sobre el uso, errores y variables sobre el componente visita

http://www.asptutor.com/asp/vart.asp?id=71

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 23:29.