Captcha - protegendo formulários contra ataques automatizados
Pra finalizar esta é a página que processa os dados do formulário!
Note que se ao testar você estiver sempre vendo a mensagem:
Token EXPIRADO! é porque você pode estar demorando demais para digitar os caracteres de validação.
Tente modificar na linha 22:
if ($_POST[ 'token' ] == $_SESSION[ 'token' ] && $tempo_decorrido < 10 )
aumentando o valor de 10 para 30, por exemplo.
(processa.php)
Boa sorte! E aproveitem!
Note que se ao testar você estiver sempre vendo a mensagem:
Token EXPIRADO! é porque você pode estar demorando demais para digitar os caracteres de validação.
Tente modificar na linha 22:
if ($_POST[ 'token' ] == $_SESSION[ 'token' ] && $tempo_decorrido < 10 )
aumentando o valor de 10 para 30, por exemplo.
(processa.php)
<?php session_start(); ?>
<html>
<head> <title>Captcha</title> </head>
<style>
<!--
body{
font-family:Geneva, Arial, Helvetica, sans-serif;
font-size:12px;
}
-->
</style>
<?php
// verificação do token de formulário.
$tempo_decorrido = time( ) - $_SESSION[ 'hora_token' ];
if( !$_SESSION[ 'formulario_enviado' ] ) {
// para fins de teste o tempo de expiração do token foi definido como 10 segundos.
if ($_POST[ 'token' ] == $_SESSION[ 'token' ] && $tempo_decorrido < 10 ) {
echo " Token válido<br> ";
if ($_SESSION[ 'texto_captcha' ] == $_POST[ 'cod_confirmacao' ] ) {
echo " Dados conferem!<br> ";
//limpando as variáveis de sessão.
$_SESSION[ 'texto_captcha' ] = "";
$_SESSION[ 'token' ] = "";
$_SESSION[ 'texto_captcha '] = "";
} else {
echo " Dados NÃO CONFEREM!<br><a href=\"form.php\">Voltar</a> ";
}
} else {
echo " Token EXPIRADO!<br><a href=\"form.php\">Voltar</a> ";
}
} else {
echo " Formulario já processado!<br><a href=\"form.php\">Voltar</a> ";
}
//essa variável de sessão será verificada na página form.php
$_SESSION[ 'formulario_enviado' ] = TRUE;
?>
</body>
</html>
Boa sorte! E aproveitem!
Novo Comentário: