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: