Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

newboxters

Integrar formulário de contato (mail) com verificação por img. (captch

Recommended Posts

Olá pessoal.

 

Achei este tutorial completo para validação de formulários utilizando CAPTCHA:

http://forum.digitalmasters.com.br/index.php?showtopic=1720

 

Já testei e funcionou. Mas agora o meu problema foi pra interar com meu formulário de contato que envia por e-mail, pois no meu form tem a ação:

 

<form name="enviarok" method="post" action="enviar_form.php">

 

e eu analisei a ação de confirmação dos carácteres:

 

if( PhpCaptcha::Validate( $_POST['user_code'] ) )

{

// ... e exibimos o resultado positivo

 

print "Formulário Validado com Sucesso!";

}

 

Então, queria saber como eu posso interar isso.

 

;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não entendi o que você precisa.Interar o que com o que?

Interar no meu formulário de contato (que envia os dados para meu e-mail) aquele campo da verificação por imagem (captcha) que é gerado uma imagem e tem que confirmar o código pra evitar spans de mensagens automáticas.No meu primeiro post está o tutorial completo e eu já testei e funciona o sistema de verificação por imagem, agora o que eu preciso é saber como usar, ou seja como eu posso usar ele no meu formulário e depois futuramente usar em outros formulários como de cadastro e caixa de login.;)http://forum.imasters.com.br/public/style_emoticons/default/natal_wink.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Interar no meu formulário de contato (que envia os dados para meu e-mail) aquele campo da verificação por imagem (captcha) que é gerado uma imagem e tem que confirmar o código pra evitar spans de mensagens automáticas.No meu primeiro post está o tutorial completo e eu já testei e funciona o sistema de verificação por imagem, agora o que eu preciso é saber como usar, ou seja como eu posso usar ele no meu formulário e depois futuramente usar em outros formulários como de cadastro e caixa de login.;)http://forum.imasters.com.br/public/style_emoticons/default/natal_wink.gif

Bem, vamos ver se eu entendi sua dúvida....Basicamente o código que você citou:
if( PhpCaptcha::Validate( $_POST['user_code'] ) ){// ... e exibimos o resultado positivoprint "Formulário Validado com Sucesso!";}
é usado após o usuário enviar o formulário... possívelmente você tem que inserir no seu formulário a chamada que faz gerar a imagem e o campo para o usuário digitar oq esta na imagem.Era isso?Att,Fabio Fila

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja bem Fila, o que eu preciso é isso sim, mas o problema é pra fazer funcionar. :o

 

O código completo do esquema que gera a imagem pra confirmação tá no meu primeiro post com o link para o tutorial, tudo certo, testei separado e funcionou e o meu formulário pra enviar no e-mail também funciona.

 

E eu vou colocar nesse meu formulário de contato esse esquema que gera a imagem e tem que confirmar.

 

Daí ficará algo mais ou menos assim:

 

Entre em contato conosco através do formulário abaixo

Nome:

E-mail:

Assunto:

Mensagem:

 

[ Imagem de Confirmação ]

Digite aqui os carácters da imagem acima para validação:

 

Enviar / Cancelar

E obviamente pra deixar assim até tudo bem, mas pra funcionar que está sendo meu problema, já que no meu formulário, a ação é:

<form name="enviarok" method="post" action="enviar_form.php">

 

E quando eu analisei o esquema da imagem de confirmação, não consegui interar uma ação pra ele nesse mesmo formulário pra verificar as imagens quando clicar em "Enviar", pois a "ação" que encontrei no esquema das imagens é:

if( PhpCaptcha::Validate( $_POST['user_code'] ) )

{

// ... e exibimos o resultado positivo

 

print "Formulário Validado com Sucesso!";

}

 

 

Então, como posso fazer pra essa interação (formulário de contato + verificação de carácteres) funcionar corretamente, de forma que tenha que ser validado os carácters para enviar o formulário.

 

http://forum.imasters.com.br/public/style_emoticons/default/natal_wink.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja bem Fila, o que eu preciso é isso sim, mas o problema é pra fazer funcionar. :o

 

O código completo do esquema que gera a imagem pra confirmação tá no meu primeiro post com o link para o tutorial, tudo certo, testei separado e funcionou e o meu formulário pra enviar no e-mail também funciona.

 

E eu vou colocar nesse meu formulário de contato esse esquema que gera a imagem e tem que confirmar.

 

Daí ficará algo mais ou menos assim:

 

 

Entre em contato conosco através do formulário abaixo

Nome:

E-mail:

Assunto:

Mensagem:

 

[ Imagem de Confirmação ]

Digite aqui os carácters da imagem acima para validação:

 

Enviar / Cancelar

E obviamente pra deixar assim até tudo bem, mas pra funcionar que está sendo meu problema, já que no meu formulário, a ação é:

<form name="enviarok" method="post" action="enviar_form.php">

 

E quando eu analisei o esquema da imagem de confirmação, não consegui interar uma ação pra ele nesse mesmo formulário pra verificar as imagens quando clicar em "Enviar", pois a "ação" que encontrei no esquema das imagens é:

if( PhpCaptcha::Validate( $_POST['user_code'] ) )

{

// ... e exibimos o resultado positivo

 

print "Formulário Validado com Sucesso!";

}

 

 

Então, como posso fazer pra essa interação (formulário de contato + verificação de carácteres) funcionar corretamente, de forma que tenha que ser validado os carácters para enviar o formulário.

 

http://forum.imasters.com.br/public/style_emoticons/default/natal_wink.gif

 

Pelo que vi, o Captcha, trabalha com session, então é só você executar como no tutorial mesmo, pois nesta chamada

PhpCaptcha::Validate( $_POST['user_code'] )

você está passando o código digitado pelo usuário, para a função Validate, esta função resgata o valor session armazenao e

compara com o valor passado, se forem iguais, é autenticado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

hcar... ainda não deu certo.

 

 

A ação do formulário pra confirmar o código da imagem:

<form action='" . $_SERVER['PHP_SELF'] . "'method='post' name='captcha'>

 

Trecho da execução da ação do formulário para validação do código da imagem:

if( PhpCaptcha::Validate( $_POST['user_code'] ) )

{

// ... e exibimos o resultado positivo

 

print "Formulário Validado com Sucesso!";

}

 

 

A ação do meu formulário:

<form name="enviarok" method="post" action="enviar_form.php">

 

Trecho da página enviar_form.php (que executa a ação):

mail($email,$assunto,$mensagem,$headers);

 

 

O que eu tentei fazer:

1) Executar primeiro a ação da validação dos carácters da imagem e se estiver correto ir para a execução da ação pra enviar o formulário por e-mail.

 

2) Colocar as duas ações juntas para serem executadas "simultaneametes", no caso adicionei na página enviar_form o trecho necessário para confirmação dos carácteres.

 

Em ambos deu erro. Talvez seja isso, mas eu tenha feito de forma incorreta. Teriam alguma sugestão pra solucionar isso? Ou talvez corrigir uma dessas duas tentativas minhas?

 

;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

hcar... ainda não deu certo.

 

 

A ação do formulário pra confirmar o código da imagem:

<form action='" . $_SERVER['PHP_SELF'] . "'method='post' name='captcha'>

 

Trecho da execução da ação do formulário para validação do código da imagem:

if( PhpCaptcha::Validate( $_POST['user_code'] ) )

{

// ... e exibimos o resultado positivo

 

print "Formulário Validado com Sucesso!";

}

 

 

A ação do meu formulário:

<form name="enviarok" method="post" action="enviar_form.php">

 

Trecho da página enviar_form.php (que executa a ação):

mail($email,$assunto,$mensagem,$headers);

 

 

O que eu tentei fazer:

1) Executar primeiro a ação da validação dos carácters da imagem e se estiver correto ir para a execução da ação pra enviar o formulário por e-mail.

 

2) Colocar as duas ações juntas para serem executadas "simultaneametes", no caso adicionei na página enviar_form o trecho necessário para confirmação dos carácteres.

 

Em ambos deu erro. Talvez seja isso, mas eu tenha feito de forma incorreta. Teriam alguma sugestão pra solucionar isso? Ou talvez corrigir uma dessas duas tentativas minhas?

 

;)

Posta o form e o cod do script que autentica.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Posta o form e o cod do script que autentica.

Desculpe, mas não entendi? Pois o form e o cód do script que autentica a validação por imagem já está completinho no link que eu citei em meu primeiro post que vai para o tutorial naquele site. E em relação ao formulário de contato, apenas envia os dados para meu e-mail.;)Eu estou perguntando isso aqui pq é bem movimentado o fórum, mas vou arriscar perguntar também no tópico do fórum do autor do tutorial, apesar de o fórum deles ainda estar praticamente sem posts, mas vamos ver.Mas se alguém souber aqui, agradeço :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Posta o form e o cod do script que autentica.

Desculpe, mas não entendi? Pois o form e o cód do script que autentica a validação por imagem já está completinho no link que eu citei em meu primeiro post que vai para o tutorial naquele site. E em relação ao formulário de contato, apenas envia os dados para meu e-mail.;)Eu estou perguntando isso aqui pq é bem movimentado o fórum, mas vou arriscar perguntar também no tópico do fórum do autor do tutorial, apesar de o fórum deles ainda estar praticamente sem posts, mas vamos ver.Mas se alguém souber aqui, agradeço :)
Mas no seu primeiro post, você cita que testou o exemplo e funcionou, que você queria adaptaro seu script, por isto pedi pra postar o seu.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas no seu primeiro post, você cita que testou o exemplo e funcionou, que você queria adaptaro seu script, por isto pedi pra postar o seu.

Ah não, talvez eu tenha informado errado, eu me refiro testando separadamente mesmo o esquema de validação por imagem igual mostra no tutorial mesmo, gerando a página index.php que gera a imagem e o campo pra preencher.Daí eu tive problema pra interar pois estou com 2 forms com ações diferentes como já informei, e não consegui JUNTAR isso. ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas no seu primeiro post, você cita que testou o exemplo e funcionou, que você queria adaptaro seu script, por isto pedi pra postar o seu.

Ah não, talvez eu tenha informado errado, eu me refiro testando separadamente mesmo o esquema de validação por imagem igual mostra no tutorial mesmo, gerando a página index.php que gera a imagem e o campo pra preencher.Daí eu tive problema pra interar pois estou com 2 forms com ações diferentes como já informei, e não consegui JUNTAR isso. ;)
newboxters, não entendi porque está com dois forms, a imagem tem que ser colocada no seu form, posta o cod que fica mais fácil entender o que você quer.

Compartilhar este post


Link para o post
Compartilhar em outros sites

newboxters, não entendi porque está com dois forms, a imagem tem que ser colocada no seu form, posta o cod que fica mais fácil entender o que você quer.

Estou com 2 forms pois eu só tinha o meu formulário de contato que envia os dados digitados para meu e-mail. Mas como eu andei recebendo alguns spans de mensagens automáticas eu decidi colocar esse verificador de imagens que no tutorial aparece separado, sendo o segundo formulário, pois no tutorial ele gera a imagem e o campo pra digitar os caracteres da imagem e o botão enviar e no meu form tem os campos nome, email, mensagem e o botão enviar. Cada um desses forms tem uma ação diferente que eu já citei e não consegui interá-los.

 

Formulário de contato:

<form name="enviar" method="post" action="enviar_form.php">  Nome:<BR>	<input type="text" name="nome" size="30"><BR><BR>  E-mail:<BR>	<input type="text" name="email" size="30"><BR><BR>  Mensagem:<BR>	<textarea name="textodamensagem" cols="30" rows="6"></textarea><BR><BR>	  <input class="button" type="submit" name="enviar" value="Enviar"><BR>	  <input class="reset" type="reset" name="reset" value="Limpar"></form>
E enviar_form.php

<?php$date = date("d/m/Y h:i");include "config.php";//Enviar mensagemmail($mailsite,$assunto,$mensagem,$headers);echo "SUCESSO";?>
A página config.php é pra definir o que vai ter nas variáveis mensagem, headers...

 

E eu estou tentando colocar o esquema de verificação de caracteres nesse form.

 

;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

newboxters, não entendi porque está com dois forms, a imagem tem que ser colocada no seu form, posta o cod que fica mais fácil entender o que você quer.

Estou com 2 forms pois eu só tinha o meu formulário de contato que envia os dados digitados para meu e-mail. Mas como eu andei recebendo alguns spans de mensagens automáticas eu decidi colocar esse verificador de imagens que no tutorial aparece separado, sendo o segundo formulário, pois no tutorial ele gera a imagem e o campo pra digitar os caracteres da imagem e o botão enviar e no meu form tem os campos nome, email, mensagem e o botão enviar. Cada um desses forms tem uma ação diferente que eu já citei e não consegui interá-los.

 

Formulário de contato:

<form name="enviar" method="post" action="enviar_form.php">  Nome:<BR>	<input type="text" name="nome" size="30"><BR><BR>  E-mail:<BR>	<input type="text" name="email" size="30"><BR><BR>  Mensagem:<BR>	<textarea name="textodamensagem" cols="30" rows="6"></textarea><BR><BR>	  <input class="button" type="submit" name="enviar" value="Enviar"><BR>	  <input class="reset" type="reset" name="reset" value="Limpar"></form>
E enviar_form.php

<?php$date = date("d/m/Y h:i");include "config.php";//Enviar mensagemmail($mailsite,$assunto,$mensagem,$headers);echo "SUCESSO";?>
A página config.php é pra definir o que vai ter nas variáveis mensagem, headers...

 

E eu estou tentando colocar o esquema de verificação de caracteres nesse form.

 

;)

 

Na realidade você não precisa de dois forms, a parte de apresentar a imagem vai no seu form, faz assim:

 

No seu arquivo:

 

enviar_form.php

<?php

// Incluímos a Classe

require_once 'class.captcha.php';

// Verificamos se o botão de envio foi pressionado, efetivando a ação de formulário

if( isset( $_POST['verifica']) ){

// Se SIM, validamos o código...

if( PhpCaptcha::Validate( $_POST['verifica'] ) )

{

// ... e exibimos o resultado positivo

$date = date("d/m/Y h:i");

include "config.php";

//Enviar mensagem

if(mail($mailsite,$assunto,$mensagem,$headers))

{

echo "SUCESSO";

}

}

else

{

// Se NÃO, exibimos o resultado negativo

print "O código de validação não corresponde com o exibido na imagem.<br /><br />";

print "Por favor, tente novamente.";

}

}

else

{

print('

<form name="enviar" method="post" action="enviar_form.php">

Nome:<BR>

<input type="text" name="nome" size="30"><BR><BR>

E-mail:<BR>

<input type="text" name="email" size="30"><BR><BR>

Mensagem:<BR>

<textarea name="textodamensagem" cols="30" rows="6"></textarea><BR><BR>

<img src="visual.php" width="200" height="60" alt="Visual CAPTCHA" style="border: 1px solid #000000; padding: 2px;"/><BR>

<label>Verificação</label><input name="verifica" type="text" /><BR><BR>

<input class="button" type="submit" name="enviar" value="Enviar">

<input class="reset" type="reset" name="reset" value="Limpar">

</form>');

}

?>

O arquivo que cria a imagem, deve ficar junto com o envia_form.php

 

visual.php

<?php

// Incluímos a Classe

require_once 'class.captcha.php';

// Definimos as fontes a serem usadas nas images por meio de um array

$aFonts = array( 'fonts/VeraBd.ttf', 'fonts/VeraIt.ttf', 'fonts/Vera.ttf' );

// Instanciamos a classe, criando uma nova imagem

$oVisualCaptcha = new PhpCaptcha( $aFonts, 200, 60 );

$oVisualCaptcha -> Create();

?>

vê aí se da certo e qualquer dúvida posta novamente, o exemplo só vai funcionar se você baixar as fontes das letras no seu primeiro post.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado era isso mesmo.

 

Agora já entendi como funciona o esquema.

 

Você deixa os 2 forms junto e manda a ação para verificar se o código da imagem está correto e daí no:

if( PhpCaptcha::Validate( $_POST['verifica'] ) )

{

echo "sucesso";

}

 

no lugar de sucesso colocamos a ação que irá enviar o form pro e-mail (no caso se estiver correto a verificação de caracteres), e funciona perfeitamente.

 

Obrigado aew por toda ajuda e paciência hcar.

 

;)

 

E só pra complementar este tópico, uma vez li que havia uma função mais segura que a mail pra evitar spans ou algo do tipo, que fazia uma verificação smtp, etc... Você, ou alguém conhece sobre isso, tem como indicar a função para eu pesquisar e até mesmo passar a usar se for mais segura...?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo, inicialmente gostaria de parabenizar pelo tutorial, testei e funcionou 100%. VlwNo entanto tou com uma pequena dificuldade em implementar no meu site.Tenho um formulário:E resumindo tenho isso:Na página cadastro.php tenho isto:

<form action="cadastra_usuario.php" method="post" enctype="multipart/form-data" name="formcadastro"> <input name="login" type="text" id="login" size="40" maxlength="200" /><input type="submit" name="cadastrar" value="Cadastrar" id="cadastrar" /></form>

Na página cadastra_usuario.php tenho isso:

$login = htmlspecialchars($_POST['login']);$sql = "insert into dados_usuarios (Login) values ('','$login')";$consulta = mysql_query($sql);

Até tudo bem!! Esta funcionando certinho.NO entanto tentei inserir neste formulário o CAPTCHA como você mostrou aqui neste fórum.Só que aqui vieram os problemas...Neste seu código tem um<form action='" . $_SERVER['PHP_SELF'] . "'method='post' name='captcha'>também e precisa de clicar num botão para verificar o código. Daí como posso fazer para clicar num <input type="submit" /> e fazer as 2 rotinas, ou seja, VERIFICAR e CADASTRAR.Já tentei via onde tem o if( PhpCaptcha::Validate( $_POST['user_code'] ) ) colocar um head: location, mas dá erro. Sabe me dizer como solucionar isso?Muito obrigado pela ajuda.VlwAbsVOM

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.