Ir para conteúdo
Fórum CódigoFonte.net
Entre para seguir isso  
silas_master

Captcha ASP, previna-se de spammer's

Recommended Posts

Esse método que vou usar aqui é bem simples e muito funcional.

A idéia do é proteger seu form de forma que spamers não o utlilize para envio de spam.

OBS: para esse código aqui seu host tem que ter suporte paraASPJPEG

   <%

   'Função para gerar as letras

   Function Gerar_letras(quantidade)

   'Declaramos o Array que armazenará o total de caractéres utilizados, letras, números, sinais, etc.

   'No nosso caso, 61 sendo, 26 letras maiúsculas, 26 minúsculas e 10 números (0 - 9)

   Dim Senha(61)

   'Declaramos os arrays usados e seus valores

   Senha(0) = "a"

   Senha(1) = "b"

   Senha(2) = "c"

   Senha(3) = "d"

   Senha(4) = "e"

   Senha(5) = "f"

   Senha(6) = "g"

   Senha(7) = "h"

   Senha(8) = "i"

   Senha(9) = "j"

   Senha(10) = "k"

   Senha(11) = "l"

   Senha(12) = "m"

   Senha(13) = "n"

   Senha(14) = "o"

   Senha(15) = "p"

   Senha(16) = "q"

   Senha(17) = "r"

   Senha(18) = "s"

   Senha(19) = "t"

   Senha(20) = "u"

   Senha(21) = "v"

   Senha(22) = "w"

   Senha(23) = "x"

   Senha(24) = "y"

   Senha(25) = "z"

   Senha(26) = "0"

   Senha(27) = "1"

   Senha(28) = "2"

   Senha(29) = "3"

   Senha(30) = "4"

   Senha(31) = "5"

   Senha(32) = "6"

   Senha(33) = "7"

   Senha(34) = "8"

   Senha(35) = "9"

   Senha(36) = "A"

   Senha(37) = "B"

   Senha(38) = "C"

   Senha(39) = "D"

   Senha(40) = "E"

   Senha(41) = "F"

   Senha(42) = "G"

   Senha(43) = "H"

   Senha(44) = "I"

   Senha(45) = "J"

   Senha(46) = "K"

   Senha(47) = "L"

   Senha(48) = "M"

   Senha(49) = "N"

   Senha(50) = "O"

   Senha(51) = "P"

   Senha(52) = "Q"

   Senha(53) = "R"

   Senha(54) = "S"

   Senha(55) = "T"

   Senha(56) = "U"

   Senha(57) = "V"

   Senha(58) = "W"

   Senha(59) = "X"

   Senha(60) = "Y"

   Senha(61) = "Z"

   Randomize

   'Contamos a quantidade de letras geradas

   do while len(chave) < quantidade

   num = Senha(Int(61 * Rnd ))

   chave = chave + num

   loop

   Gerar_letras = chave

   end function

   'Aqui chamamos a função e armazenamos o resultado da mesma em uma sessão.

   'Troque o 6 pela quantidade de caracteres que deseja sortear.

   Session("Senha") = Gerar_letras(6)

   'Cria o objeto Jpeg

   Set Jpeg = Server.CreateObject("Persits.Jpeg")

   'Imagem usada como fundo no caso mandei um JPG qualquer com o nome de imagem

   Path = Server.MapPath("imagem.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 = 200

   Jpeg.Height = 40

   'Define cor, fonte, tamanho e tipo de qualidade do texto

   Jpeg.Canvas.Font.Color = &H800000

   Jpeg.Canvas.Font.Family = "Verdana"

   Jpeg.Canvas.Font.Size = "36"

   Jpeg.Canvas.Font.Bold = True

   Jpeg.Canvas.Font.Quality = 4

   'Desenha as bordas da imagem.

   Jpeg.Canvas.Pen.Color = &H800000

   Jpeg.Canvas.Pen.Width = 1

   Jpeg.Canvas.Brush.Solid = False

   Jpeg.Canvas.DrawBar 1, 1, Jpeg.Width, Jpeg.Height

   Jpeg.Canvas.PrintText 30, 0, "" & Session("Senha") & ""

   'Envia a imagem para o navegador.

   Jpeg.SendBinary

   'Remove a instância do objeto da memória

   Set Jpeg = Nothing

   %>
como esse código acima ira criar uma imagem (binaria) o mesmo não pode haver HTML. Formulário
<%

' Verifica se o valor digitado no campo do formulário é o mesmo que gerou a imagem no script img.asp

if Request.Form("txt_key") = Session("Senha") then

Response.Write "Formulário confirmado!"

Else

Response.Write "Preencha o campo com os caracteres da imagem!"

end if

%>

<form name="form1" method="post" action="">

<input name="txt_key" type="text" id="txt_key" size="10">

<input type="submit" name="Submit" value="Enviar"><br />

<img src="img.asp">

</form>

Pronto seu formulário agora está seguro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
Entre para seguir isso  

×
×
  • Criar Novo...