Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Luiz Otávio Foreba

[Resolvido] Criar antispam para formulários

Recommended Posts

Olá amigos, bom, estou aqui por um motivo muito chato. Semana passada decidi colocar um sistema de comentários nas postagens do sites, depois disso, eu consigui ter uma visão dos usuários, juntamente com suas opinioes. Aí vem o problema, desde então, eu passo mais de 1 hora por dia, apenas excluindo spams, aqueles comentários sem nenhuma ligação com o post e em outra links (além de estarem cheios de links), então procurei na internet, um sistema de antispam e encontrei o captcha, mas mesmo assim, o sistema que eu coloquei funciona para pessoas, tipo, os usuários não conseguem comentar sem digitar as letrinhas, mas os spam (eu naum tenho a minima ideia de como) ainda entram sem problema algum. Alguém pode me ajudar com isto?

 

Vou mostrar o codigo que estou utilizando (o codigo esta indexado no arquivo post.php, que é onde eu publico as postagens na integra):

 

Posts.php

 

			echo "<form method='post' action='comentarblog.php' onSubmit='return checa(this);'>";
			echo "<table class='comentario'>";
			echo "<tr><td>";
			echo "<input type='hidden' name='idpost' value='$id'>";
			echo "<input type='hidden' name='data' value='$date'>";
			echo "Nome:";
			echo "</td>";
			echo "<td><input class='comenta' type='text' name='nome'></td></tr>";
			echo "<tr><td>Comentário:</td>";
			echo "<td>";
			echo "<textarea class='comenta' name='comentario'></textarea><br>";
			echo "</td></tr>";
			echo "<tr>";
			echo "<td><img src='objetos/captcha.php'></td>";
			echo "<td><input type='text' name='captcha'>";
if ($_SESSION["errocaptcha"] == 1){
	echo " !ERRO: Digite os caracteres corretamente!";
	unset($_SESSION["errocaptcha"]);
}
			echo "</td>";
			echo "</tr>";
			echo "<tr>";
			echo "<td></td>";
			echo "<td>";
			echo "<input class='comenta1' name='enviar' type='submit' id='enviar' value='COMENTAR'> ";
			echo "<td>";
			echo "</tr>";
			echo "</table>";
			echo "</form>";


O arquivo que escreve os comentários no Mysql é o comentarblog.php, da uma olhada nele também:

 

<?php
session_start();

$idpost = $_POST["idpost"];
$nome = $_POST["nome"];
$data = $_POST["data"];
$comentario = $_POST["comentario"];
if ($_POST["captcha"] == $_SESSION["session_textoCaptcha"]){

$_SESSION['comentario'] = "$nome";

include "conexao.php";
$sql = "INSERT INTO blog_comenta (idpost, nome, data, comentario, publicar) VALUES ('$idpost', '$nome', '$data', '$comentario', 'nao')";
$sql = mysql_query($sql) or die ("Erro!");

echo "<meta HTTP-EQUIV='Refresh' CONTENT='0;URL=post.php?id=$idpost'>";

} else {
echo "<meta HTTP-EQUIV='Refresh' CONTENT='0;URL=post.php?id=$idpost'>";
$_SESSION["errocaptcha"] = 1;
}
?>

Desde já, agradeço a atenção!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma sessão no form e valide na hora de gravar.

assim q gravar troque ou apague a sessão, assim

quando for gravar novamente ele vai parar na validação e nao vai gravar nada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma sessão no form e valide na hora de gravar.

assim q gravar troque ou apague a sessão, assim

quando for gravar novamente ele vai parar na validação e nao vai gravar nada.

 

Cara, tem como você mostrar em códigos, baseando-se no código acima??

 

Grande Abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.