La solución en la mayoría de los formularios al spam es simplemente poner captcha pero la verdad es hay algunos trucos que nos puedes ayudar a evitar toda esa cantidad de emails basura que rellenan nuestros formularios sin complicarnos mucho la vida y sin que los usuarios tengas que pasar por rellenar un captcha.
El campo mágico que todos los bots rellenan es el campo email, suele ser obligatorio por norma general y así se aseguran que ese mail llegue a su destinatario. Lo que podemos hacer es mostrar ese campo solamente a los bots mientras que a los usuarios mostrarle otro que sea campook, de esta forma todos los bots que rellenen el campo email serán spam.
¿Como ocultar el campo email solo a los usuarios? Lo primero que se nos puede venir a la cabeza es poner type=»hidden» pero sería un error ya que esto lo detectarían los bots y no lo rellenarían la clave es poner una clase a este campo en los formularios y ocultarlo desde nuestra hoja de estilos.
En el formulario pondremos:
<form method="post"> <input class="claseparaocultar" type="text" name="email" placeholder="Tu email" /> <input class="classedelinpput" type="text" name="campook" placeholder="Tu email" /> <form> |
En la hoja de estilos:
.claseparaocultar {display:none} |
Después con php lo único que tenemos que hacer antes de la función mail es detectar que nos llega por POST desde el campo email y si tiene algo diferente a «» pues devolver un mensaje como por ejemplo : Se ha detectado este mensaje como spam, en caso de no ser así contacte con … .