Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá estou querendo criar um formulário anti-spam, que só possa postar de 1 em 1 minuto.
Dados da minha tabela sql
id int(11), usuario varchar(20), texto text(500), data int(20).
para fazer o antispam utilizarei a coluna data, mas não se como fazer isso, alguém pode ajudar?
>
Na hora que você for inserir o cadastro na tabela, grava a data/hora.
Quando outro usuário for tentar cadastrar no site, faz uma consulta antes e verifica se passaram x minutos ..
Ou coloca um captcha, até a pessoa preencher ele se passaram "x minutos" rs
Essa parte de verificar a hora atual e a hora que foi postado que eu não sei fazer, pode postar um exemplo?
<?php
$data = date("d/m/Y");
$query = mysql_query("SELECT * FROM tabela WHERE data='$data'");
$dados = mysql_fetch_array($query);
$hora = $dados['hora'];
?>
<?php
$data = date("d/m/Y");
$query = mysql_query("SELECT * FROM tabela WHERE data='$data'");
$dados = mysql_fetch_array($query);
$hora = $dados['hora'];
?>
Creio que seria +/- assim, você pega consulta no banco se tem algum cadastro com a data do dia atual, logo você pega a hora desse cadastro e faz uma verificação (if) se ela é superior aos minutos que você deseja, pensa um pouco ! :thumbsup:
Obs: precisa tratar a data, pois depende como você vai cadastra ela, a mesma é inserida em forma inversa ..
Acho que consegui fazer, não testei ainda
$ultima = "SELECT * FROM tabela WHERE id = '$id' LIMIT 1";
$ultima = mysql_query($ultima) or die(mysql_error());
$ultima_c = mysql_num_rows($ultima);
if($ultima_c){
$ultima = mysql_fetch_array($ultima);
$ultima = (int)time() - $ultima['data'];
}else{
$ultima = '9000';
}echo 'Espere 1 minutos.';
}
Na hora que você for inserir o cadastro na tabela, grava a data/hora.
Quando outro usuário for tentar cadastrar no site, faz uma consulta antes e verifica se passaram x minutos ..
Ou coloca um captcha, até a pessoa preencher ele se passaram "x minutos" rs