Función de PHP para evitar SPAM

Como muchos han de saber, una de las manera en que los asquerosos Spammers obtienen cuentas de correo es por medio de aplicaciones que buscan emails en las páginas.

Para evitar exponer tu cuenta de correo existen varias técnicas… he aquí una solución que hice en PHP en la cual estoy mezclando 3 de las prevenciones más comunes.

En pocas palabras lo que hace mi funcion es:

  1. Convertir los caracteres . (punto) y @ (aroba) en sus equivalentes de HTML.
  2. Romper el email y el texto del link en pedacitos.
  3. Genera un javascript que finalmente muestra el link.

Para utilizarlo solo es necesario agregar la función a tu código y llamarla en una de las siguientes maneras:

echo encode_email();
echo encode_email('micorreo@midominio.com');
echo encode_email('micorreo@midominio.com', 'Mandame un mail');
echo encode_email('micorreo@midominio.com', 'Mandame un mail', 'title="No seas malito escribeme"');

Puedes darle como parametros la cuenta de email, el texto que quieres que aparezca en link y finalmente los atributos a incluir dentro del tag A de HTML.

Aquí esta la famosa función:

function encode_email($email='default@domain.com', $linkText='Contacto', $attrs ='class="emailencoder"' )
{
// remplazar aroba y puntos
$email = str_replace('@', '@', $email);
$email = str_replace('.', '.', $email);
$email = str_split($email, 5);
$linkText = str_replace('@', '@', $linkText);
$linkText = str_replace('.', '.', $linkText);
$linkText = str_split($linkText, 5);

// html
$part1 = ‘<a href=”ma’;
$part2 = ‘ilto:’;
$part3 = ‘” ‘. $attrs .’ >’;
$part4 = ‘</a>’;

// generamos el Javascript
$encoded = ‘<script type=”text/javascript”>’;
$encoded .= “document.write(‘$part1′);”;
$encoded .= “document.write(‘$part2′);”;
foreach($email as $e)
{
$encoded .= “document.write(‘$e’);”;
}
$encoded .= “document.write(‘$part3′);”;
foreach($linkText as $l)
{
$encoded .= “document.write(‘$l’);”;
}
$encoded .= “document.write(‘$part4′);”;
$encoded .= ‘</script>’;
return $encoded;
}

Solo les recuerdo cambiar los valores default (por lo menos el email) si piensan utilizarla.

This entry was posted in Tecnología. Bookmark the permalink.

5 Responses to Función de PHP para evitar SPAM

  1. ed says:

    Muy buen tip. Felicitaciones, de seguro nos servira a muchos.

  2. italo says:

    jejeje muy buen tipo, lo pondre en practica tal vez! saludos!!

  3. Karlitoss says:

    Buena función, la probaré a ver q tal funciona

  4. andres cruz says:

    pues yo trate de probar y me dice q solo funciona desde php 5 como puedo trabajar desde el php 4

  5. Andres:

    Revisa la compatibilidad de las funciones de PHP que se utilizan para ver con cual es compatible.

    Solamente se utilizan str_replace y str_split asi que no debe de a ver mucho problema para buscar alternativas.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>