• Domingo 22 de Diciembre de 2024, 23:41

Autor Tema:  Actualizar Imagen tras error en codigo Captcha  (Leído 1415 veces)

brnaer

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Actualizar Imagen tras error en codigo Captcha
« en: Sábado 7 de Mayo de 2011, 02:37 »
0
Hola, este es mi primer tema en este foro, mi duda parte en que estoy haciendo un sistema Captcha, donde inicio generando el codigo, despues lo paso a jpg y lo guardo en una direccion especifica, despues muestro la imagen y espero que el usuario coloque el codigo, si el codigo es correcto, sale un msj de "codigo correcto" y listo, posteriormente pondre mas codigo.

Pero si el codigo es erroneo, corro nuevamente el generador de codigo y lo grabo sobre la imagen substituyendo la anterior y lo muestro en la pagina.

Cuando lo pruebo en mi computadora por medio del CTRL+F5 funciona perfectamente, sin embargo cuando lo subo al servidor no funciona; cuando el usuario se equivoca la imagen no cambia, pero el codigo si.

Si refresco la pagina con F5 la imagen cambia correctamente, he intentado usar el updatepanel, pero no funciona, les pido su apoyo ya que llevo muchos dias investigando y probando y no lo logro hacer funcionar.

Si pueden apoyarme a resolverlo y darme una leve explicacion de que pasa, se los agradecere mucho, el codigo esta en vb.net, y es el siguiente:

Imports System.Data
Imports System.Drawing.Color
Imports System.Drawing.Imaging
Imports System.Drawing

Partial Public Class _Default
    Inherits System.Web.UI.Page
    Public codigo As String
    Public reinicio As Integer = 0


    Protected Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
        If TextBox1.Text = CType(Session("validador"), String) Then
            Label1.Text = "Correcto"
            Session.Abandon()
        Else
            TextBox1.Text = ""
            Label1.Text = "Codigo Incorrecto"
            Session.Add("validador", CType(Session("validador2"), String))
        End If

    End Sub

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
        Session.Timeout = 5
        Dim Longitud As Integer = 5
        Dim Valores(61) As Char
        Dim i As Integer
        Dim j As Integer
        j = 64
        For i = 0 To 61
            j = j + 1
            Valores(i) = Chr(j)
            Select Case j
                Case 90
                    j = 96
                Case 122
                    j = 47
            End Select
        Next
        Randomize()
        For i = 1 To 5
            Randomize()
            codigo = codigo + Valores(Int(61 * Rnd()))
        Next
        Dim objLienzo As Bitmap = New Bitmap(100, 50)
        Dim objDibujar As Graphics = Graphics.FromImage(objLienzo)
        Dim objColor As System.Drawing.Color
        objColor = Color.White
        Dim objFont As New Font("Curlz MT", 24)
        Dim objCoordenadas As New PointF(0, 0)
        Dim objPincelFondo As New SolidBrush(objColor)
        Dim objPincelTexto As New SolidBrush(Color.Black)
        objDibujar.FillRectangle(objPincelFondo, 0, 0, 300, 100)
        Dim dashed_pen As New Pen(Color.Black, 1)
        objDibujar.DrawBezier(dashed_pen, 0, 7, 30, 40, 75, 12, 99, 45)
        objDibujar.DrawLine(dashed_pen, 30, 0, 100, 30)
        objDibujar.DrawString(codigo, objFont, objPincelTexto, objCoordenadas)
        objLienzo.Save("C:MemberSitesMemberSites_AspSpider_Infobrnaerwebrootcaptchacaptcha.jpeg", ImageFormat.Jpeg)
        'objLienzo.Save("C:Documents and SettingsAdministradorEscritorioCaptchaCaptchacaptcha.jpeg", ImageFormat.Jpeg)
        Session.Add("validador2", codigo)
        If Not IsPostBack Then
            Session.Add("validador", codigo)
        End If
    End Sub

End Class
 

Muchas Gracias