CAPTCHA é uma ferramenta antispan muito útil para formulários Web e aqui eu mostrarei uma maneira de fazer um CAPTCHA simples que, pelo menos pra mim, ajudou e muito, sem precisar recorrer à códigos de terceiros.
No meu caso eu criei imagens de dados, ou seja, seis imagens com cada face de um dado, nomeando as imagens de 1 à 6, gerando os arquivos 1.png, 2.png... e assim por diante até 6.png, todas as imagens foram colocadas em uma pasta chamada "dice".
1) Na página do formulário eu criei um código PHP desta forma:
<?php
$control = rand(1,6);
?>
2) Seguido de um input hidden para enviar o número gerado:
<input type="hidden" id="control" name="control" value="<?=$control?>">
3) Depois segue o código que irá mostrar a imagem correspondente:
<img src="dices/<?=$control?>.png"><br>
4) E a seguir um campo onde o usuário deverá digitar o número do dado mostrado:
<label>Digite o número que aparece no Dado</label><br>
<input name="control_in" id="control_in" type="text">
5) Então seu formulário vai passar duas variáveis, a control e a control_in. Agora, em seu ACTION do Form, deve-se ter então a verificação se a informação é verdadeira, ficando, por exemplo, assim:
if ($control != $control_in)
{
echo "
<script>
alert('Houve um erro na verificação. Volte e tente novamente.');
window.history.go(-1);
</script>
";
exit;
}
Você pode parar por aí, mas vale também acrescentar mais uma ferramenta, que é a verificação de onde o formulário está sendo usado:
if ($_SERVER['SERVER_NAME'] != "seudominio_sem_o_www.com.br")
{
echo "
<script>
alert('Houve um erro de chamada de função.');
window.history.go(-1);
</script>
";
exit;
}
É um código simples e muito útil.
Comentários
Postar um comentário