Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Avatar do usuário
ADMIN
ADMIN
Tópico Autor
Mensagens: 17520
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Criando seu CAPTCHA 1+1=???

24-09-2007 02:45

Vou explicar aqui como fazer o famoso captcha para validar seus formulários.

Explico no código:

<?php // aqui iniciamos as perguntas, note que é ("pergunta", "resposta") $pergunta[] = array("1+1", "2"); $pergunta[] = array("2+2", "4"); $pergunta[] = array("20-15", "5"); // abaixo a cada refresh é mostrado uma pergunta/resposta $troca = array_rand($pergunta, count($pergunta)); ?> <?php // se ouver uma requisição via POST "envio do formulário" if($_POST) { // $calculo e $resultado são descriptografados  // * foram criptografados no form para que o visitante não veja o resultado pelo código-fonte $calculo = base64_decode($_POST['calculo']); $resultado = base64_decode($_POST['resultado']); // obtendo o que o visitante respondeu $valor = $_POST['valor']; // fazendo a comparação entre o $resultado e o que o visitante respondeu if($resultado==$valor) { // aqui coloque sua ação de envio de formulário echo "envia o formulário"; } else { // aqui coloque a mensagem de erro que desejar echo "o calculo está incorreto"; } } ?> <!-- abaixo segue um form de exemplo, onde tem os dados necessários para o funcionamento do CAPTCHA //--> <form action="" method="POST"> <input type="hidden" name="calculo" value="<?php echo base64_encode($pergunta[$troca[0]][0]); ?>"> <input type="hidden" name="resultado" value="<?php echo base64_encode($pergunta[$troca[0]][1]); ?>"> <?php echo $pergunta[$troca[0]][0]; ?> =<input type="text" name="valor" value="" size="1"> <input type="submit"> </form>

1
A melhor hospedagem para o seu site HostGator!
 
Avatar do usuário
ADMIN
ADMIN
Tópico Autor
Mensagens: 17520
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Criando seu CAPTCHA 1+1=???

12-02-2015 09:46

O script não estava gerando os valores da forma correta, abaixo segue o script corrigido.

<?php // aqui iniciamos as perguntas, note que é ("pergunta", "resposta") $pergunta[] = array("1+1", "2"); $pergunta[] = array("2+2", "4"); $pergunta[] = array("20-15", "5"); // abaixo a cada refresh é mostrado uma pergunta/resposta $troca = array_rand($pergunta, count($pergunta)); // se ouver uma requisição via POST "envio do formulário" if($_POST) { // $calculo e $resultado são descriptografados // * foram criptografados no form para que o visitante não veja o resultado pelo código-fonte $calculo = base64_decode($_POST['calculo']); $resultado = base64_decode($_POST['resultado']); // obtendo o que o visitante respondeu $valor = $_POST['valor']; // fazendo a comparação entre o $resultado e o que o visitante respondeu if($resultado==$valor) { // aqui coloque sua ação de envio de formulário echo "envia o formulário"; } else { // aqui coloque a mensagem de erro que desejar echo "o calculo está incorreto"; } } ?> <!-- abaixo segue um form de exemplo, onde tem os dados necessários para o funcionamento do CAPTCHA //--> <?php $aleatorio = rand(0, count($pergunta)-1); ?> <form action="" method="POST"> <input type="hidden" name="calculo" value="<?php echo base64_encode($pergunta[$aleatorio][0]); ?>"> <input type="hidden" name="resultado" value="<?php echo base64_encode($pergunta[$aleatorio][1]); ?>"> <?php echo $pergunta[$aleatorio][0]; ?> =<input type="text" name="valor" value="" size="1"> <input type="submit"> </form>

1
A melhor hospedagem para o seu site HostGator!

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado