Pular para o conteúdo principal

CAPTCHA - Faça você mesmo

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

Postagens mais visitadas deste blog

Windows 10 pedindo credenciais para acessar rede local

Em uma rede com acesso estabelecido entre computadores rodando Windows 7 e Windows 10, um novo micro foi inserido e ocorreu este pequeno problema, ao acessar um micro da rede a partir deste novo Windows 10, havia o pedido de credenciais. O que estava diferente neste Windows 10 para outros da rede é que este não entrava com uma conta local, mas sim com uma conta Microsoft. Como os demais micros de rede não contavam com senha e sabemos que as credenciais para contas locais necessitam de senha para funcionar é aqui que está a solução. Neste caso, onde há pedido de credenciais a partir de um micro que faz login com uma conta Microsoft ao invés de uma conta local, o sistema de credenciais aceita a entrada sem senha , apenas com o nome do usuário. Portanto, ao se deparar com este detalhe, entre com o nome do usuário do micro, deixe a senha em branco e marque para salvar as informações.

Habilitar o usuário Administrador e acessar C$ via rede.

Em algumas versões do Windows é possível, por meio do Gerenciador do Computador, ativar e desativar contas de usuários incluindo a conta Administrador, porém em algumas versões isso somente é possível por meio de linha de comando. Com o usuário Administrador ativo, além de outras coisas, pode-se acessar todas as pastas do micro via rede por meio do compartilhamento padrão C$, mas o Administrador deverá obrigatoriamente estar configurado com uma senha. Este acesso pode ser feito com o seguinte caminho: \\nomedocomputador\c$\ Para ativar o usuário Administrador abra o prompt de comando como administrador do sistema clicando sobre o ícone com o botão de direito do mouse e escolhendo “Executar como Administrador”. (Iniciar » Todos os Programas » Acessórios » Prompt de comando). Digite a linha de comando: net user administrador /active:yes No menu Inciar » Executar, digite o comando “ control userpasswords2 ” (sem as aspas) para abrir o gerenciador de contas de usuário...

Tela do Notebook piscando na bateria

Em notebooks mais novos tem ocorrido o erro da tela piscando quando o equipamento está trabalhando somente na bateria após a troca do sistema operacional de Linux para Windows ou de Windows 10 para versões menores do Windows. O problema é resolvido alterando a frequência de atualização da tela de 60Hz, padrão, para 40Hz. Siga os passos: 1. Clique com o botão direito do mouse em qualquer área vazia do Desktop ou Área de Trabalho; 2. Clique em Resolução de Tela; 3. Escolha "Opções Avançadas"; 4. Na aba Monitor altere a "Freqüência de atualização da tela" para 40Hz, aplique e Ok. NOTA (2020): Não testei, mas para aqueles que estão passando por problema, procurem, nos drivers do fabricante do equipamento, o DRIVER-CHIPSET. Ter este do Driver oriundo do fabricante é mais interessante que ter o do Windows. Façam o teste.