Estoy reforzando la seguridad de mis formularios de contacto, ya me ocupe de las validaciones por javascript y ahora quiero evitar el spam (sin captcha).
Encontre esta función en muchos sitios, incluído foros del web, pero no se cómo usarlo.
Código PHP:
<?php
function ValidarDatos($campo){
//Array con las posibles cabeceras a utilizar por un spammer
$badHeads = array("Content-Type:",
"MIME-Version:",
"Content-Transfer-Encoding:",
"Return-path:",
"Subject:",
"From:",
"Envelope-to:",
"To:",
"bcc:",
"cc:");
//Comprobamos que entre los datos no se encuentre alguna de
//las cadenas del array. Si se encuentra alguna cadena se
//dirige a una página de Forbidden
foreach($badHeads as $valor){
if(strpos(strtolower($campo), strtolower($valor)) !== false){
header("HTTP/1.0 403 Forbidden");
exit;
}
}
}
//Ejemplo de llamadas a la funcion
ValidarDatos($_POST['email']);
ValidarDatos($_POST['asunto']);
ValidarDatos($_POST['mensaje']);
?>
Código PHP:
<?php
if($Submit){
@$Nombre = $_POST['Nombre'];
@$Email = $_POST['Email'];
@$Consulta = $_POST['Consulta'];
//************************************************************************/
$header = "From:[email protected]>\n";
$header .= "To: ".$receptor."\n";
$header .= "X-Mailer: PHP4\n"; //mailer
$header .= "MIME-Version: 1.0\n";
$header .= "Reply-To: ".$Email."\n";
$header .= "Content-type: text/html; charset=iso-8859-1\n";
//************************************************************************/
$cuerpo = "todos los datos";
mail($receptor,'asunto',$cuerpo,$header);
}
?>
muchas gracias
Germán