Ejemplo PHP: evitar spam en formularios de contacto sin CAPTCHAs

logo de php

Ejemplo de código fuente en php que consiste en evitar spam en un formulario de contacto, sin tener que implementar un famoso CAPTCHA (con los quebraderos de cabeza que conlleva a veces, que no hay ni dios que entienda algunos carácteres  😀   ).

 

 

Descripción del ejemplo

Lo que haremos es mediante CSS, ocultar dos campos del formulario, y verificar por php, si el dichoso robocito o bot de spam ha metido datos en esos dos campos, cosa que suelen hacer casi todos, ya que escanean el formulario sin css, y no distinguen si ese campo es un campo “trampa” que le hemos puesto.

Aunque he de decir, que cada vez son más listos estos robots 😈

 

Código

Éste sería el código para el HTML donde tengamos nuestro formulario de contacto:

		<div id="spam">
			<label>Dejar esto en blanco</label>
			<input type="text" id="dejarenblanco" name="dejarenblanco" />
			<label>No cambiar esto</label>
			<input type="text" value="http://" name="nocambiar" />
		</div>

 

Éste sería el código del CSS:

/* Hacemos display a none para que no se muestre al usuario los campos antispam */

#spam{display:none;}

 

Y éste sería el código para el php:

<?php

if(isset($_POST['dejarenblanco'])){
    $dejarenblanco = $_POST['dejarenblanco'];
}
if(isset($_POST['nocambiar'])){
    $nocambiar = $_POST['nocambiar'];
}


if ($dejarenblanco == '' && $nocambiar == 'http://') { 
    // código para enviar el formulario

	// Enviarlo
	mail('javier@ejemplocodigo.com', 'Asunto: Probando formulario de contacto...', $msj);



}
	
	
?>

 

Previsualización del ejemplo

Éste sería el formulario de contacto que verían los robots de spam:

 

Formiulario para spamers

 

Nosotros como usuarios, lo veríamos sin la zona del cuadrito rojo.

 

 

Valoración General

[Valoraciones:  1    Promedio:  5 de 5]