Se você não viu confira aqui o nosso tutorial sobre Captcha.
Agora iremos bolar no mesmo esquema citado acima.
criaremos aqui uma página que ira criar o Captcha.
Proteja seu site de robos
captchaAritmetico.asp
<%
' aqui randomizamos o valor funcao1 e funcao2 que irão ser os números da conta
randomize
funcao1 = Int(10 * Rnd )
funcao2 = Int(10 * Rnd )
'randomizamos um valor que vai de 0 até 2 e representara o operador
operacao = cInt(2 * Rnd )
'geramos o resultado e o operador baseando-se no valor sorteado anteriormente
select case operacao
case 0
result = funcao1 + funcao2
oper = "+"
case 1
result = funcao1 - funcao2
oper = "-"
case 2
result = funcao1 * funcao2
oper = "x"
end select
'arquivamos na sessão senha o resultado
Session("Senha") = cstr(result)
'e criamos a variavel que será exibida ao usuário
operac = cstr(funcao1) & " " & oper & " " & cstr(funcao2)
'Cria o objeto Jpeg
Set Jpeg = Server.CreateObject("Persits.Jpeg")
'Imagem usada como fundo no caso mandei um JPG com o 1px de largura e altura e fundo branco apenas para compor a área
Path = Server.MapPath("blank.jpg")
'Abre a imagem existente
Jpeg.Open Path
'Salva a imagem. Aqui foi usada a pasta teste, que obrigatoriamente deve ter permissão de escrita.
'Altere-a pela pasta onde será salva a imagem.
'LEMBRE-SE A PASTA DEVERÁ TER PERMISSÃO DE ESCRITA
Jpeg.Save Server.MapPath("captcha.jpg")
'Define altura e largura da imagem.
Jpeg.Width = 100
Jpeg.Height = 40
'Define cor, tamanho e tipo de qualidade do texto
Jpeg.Canvas.Font.Color = &H800000
Jpeg.Canvas.Font.Size = 40
Jpeg.Canvas.Font.Bold = True
Jpeg.Canvas.Font.Quality = 4
'aqui inserimos a operação que sera vista pelo usuário
Jpeg.Canvas.PrintText 0, 0, operac
'Envia a imagem para o navegador.
Jpeg.SendBinary
'Remove a instância do objeto da memória
Set Jpeg = Nothing
%>
Agora iremos exibir essa imagem gerada acima e também criaremos um campo de texto para que o usuário possa digitar o resultado.' aqui randomizamos o valor funcao1 e funcao2 que irão ser os números da conta
randomize
funcao1 = Int(10 * Rnd )
funcao2 = Int(10 * Rnd )
'randomizamos um valor que vai de 0 até 2 e representara o operador
operacao = cInt(2 * Rnd )
'geramos o resultado e o operador baseando-se no valor sorteado anteriormente
select case operacao
case 0
result = funcao1 + funcao2
oper = "+"
case 1
result = funcao1 - funcao2
oper = "-"
case 2
result = funcao1 * funcao2
oper = "x"
end select
'arquivamos na sessão senha o resultado
Session("Senha") = cstr(result)
'e criamos a variavel que será exibida ao usuário
operac = cstr(funcao1) & " " & oper & " " & cstr(funcao2)
'Cria o objeto Jpeg
Set Jpeg = Server.CreateObject("Persits.Jpeg")
'Imagem usada como fundo no caso mandei um JPG com o 1px de largura e altura e fundo branco apenas para compor a área
Path = Server.MapPath("blank.jpg")
'Abre a imagem existente
Jpeg.Open Path
'Salva a imagem. Aqui foi usada a pasta teste, que obrigatoriamente deve ter permissão de escrita.
'Altere-a pela pasta onde será salva a imagem.
'LEMBRE-SE A PASTA DEVERÁ TER PERMISSÃO DE ESCRITA
Jpeg.Save Server.MapPath("captcha.jpg")
'Define altura e largura da imagem.
Jpeg.Width = 100
Jpeg.Height = 40
'Define cor, tamanho e tipo de qualidade do texto
Jpeg.Canvas.Font.Color = &H800000
Jpeg.Canvas.Font.Size = 40
Jpeg.Canvas.Font.Bold = True
Jpeg.Canvas.Font.Quality = 4
'aqui inserimos a operação que sera vista pelo usuário
Jpeg.Canvas.PrintText 0, 0, operac
'Envia a imagem para o navegador.
Jpeg.SendBinary
'Remove a instância do objeto da memória
Set Jpeg = Nothing
%>
envia.asp
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Captcha</title>
</head>
<body>
<form id="form1" name="form1" method="post" action="valida.asp">
<img id="cap" src="captchaAritmetico.asp" width="100" height="40">
<label>
<input type="text" name="captcha" id="captcha" />
</label>
</form>
</body>
</html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Captcha</title>
</head>
<body>
<form id="form1" name="form1" method="post" action="valida.asp">
<img id="cap" src="captchaAritmetico.asp" width="100" height="40">
<label>
<input type="text" name="captcha" id="captcha" />
</label>
</form>
</body>
</html>
Agora sim iremos fazer a mágica acontecer, reparem que na página envia.asp existe um imagem, porém a propriedade src dela é apontada para página captchaAritmetico.asp, vcs estão entendendo?
Beleza, agora iremos autenticar isso e conferir o projeto trabalhando.
valida.asp
<%
if request("captcha") = session("Senha") then
response.Write "Correto"
else
response.Write "Errado"
end if
%>
if request("captcha") = session("Senha") then
response.Write "Correto"
else
response.Write "Errado"
end if
%>
resolvido, agora abram a página envia.asp e divirtam-se
Eu estarei aqui para tirar as dúvidadas da galera e se precisarem mandem um e-mail.
adrianoaruom@hotmail.com
Nenhum comentário:
Postar um comentário