[PHP] Evitar SPAM en enlaces mailto

Estado
No está abierto para más respuestas.

Bleed

Diamante
Usuario de Bronce
Mensajes
2,408
Puntuación de reacción
1
Los enlaces mailto se utilizan para enlazar a un correo electronico en lugar de una pagina web. El problema es que para un robot que se dedique a recopilar estos datos leyendo el codigo de las paginas es muy facil obtener las direcciones. Convirtiendo a ASCII buena parte del correo podemos evitar esto sin que el usuario real note cambio alguno.

PHP:
<?php
function email($mail,$nombre=null){
	if (empty($mail)) return null;
	$mailascii = '';
	for($x=0,$y=strlen($mail);$x<$y;$x++){
		if($x%2 OR $mail{$x}=='@'){
			$mailascii .= '&#'.ord($mail{$x}).';';
		}else{
			$mailascii .= $mail{$x};
		}
	}
	return '<a href="mailto:'.$mailascii.'">'.(isset($nombre)?$nombre:$mailascii).'</a>';
}
?>

string email( string $mail [, string $nombre]);

Los parametros de la funcion serian $mail y $nombre, el primero y obligatorio para el correo electronico a mostrar y $nombre para el anchor text del enlace.

Algunos ejemplos, previa declaracion de la funcion :
PHP:
<?php
echo email("no_mas_spam@foro20.com"); //Sin anchor text muestra por efecto la direccion de email
echo "<br/><br/>";
echo email("no_mas_spam@foro20.com","NO SPAM"); //Si se especifica $nombre se muestra este como anchor text
?>

Si observais el codigo fuente vereis...
<a href="m&#97;i&#108;t&#111;:n&#111;

Espero que os sirva de algo. :mola:

EDITO:
Aunque así funciona perfecto, el foro no deja incrustar codigo correctamente y me está interpretando algunos codigos ASCII. xD
Os dejo aqui el pastebin de la funcion con el codigo correcto : http://pastebin.com/DhC1qZeR
 
Última edición:

lobogris

Platino
Usuario de Bronce
Mensajes
1,537
Puntuación de reacción
0
Interesante aporte! De todas formas, siempre está la opción de añadir un formulario de contacto y olvidarse de ello :)
 

Bleed

Diamante
Usuario de Bronce
Mensajes
2,408
Puntuación de reacción
1
Interesante aporte! De todas formas, siempre está la opción de añadir un formulario de contacto y olvidarse de ello :)

Bueno, eso ya depende de cada uno. Yo como primera opción también hago un formulario, pero si este falla suelo mostrar el mail original para que envíen el correo de forma manual.

Si a alguien le interesa os pongo también como enviar un mail con PHP, es realmente sencillo.

Enviado desde mi LG-P700 usando Tapatalk 2
 

franquicias

Piedra
Usuario de Piedra
Mensajes
36
Puntuación de reacción
0
Muchas gracias por compartir el código, voy a probarlo y contar mi experiencia.
 

lobogris

Platino
Usuario de Bronce
Mensajes
1,537
Puntuación de reacción
0
Bueno, eso ya depende de cada uno. Yo como primera opción también hago un formulario, pero si este falla suelo mostrar el mail original para que envíen el correo de forma manual.

Si a alguien le interesa os pongo también como enviar un mail con PHP, es realmente sencillo.

Enviado desde mi LG-P700 usando Tapatalk 2
Si incluye como automatizarlos interesa ;)
 
Estado
No está abierto para más respuestas.
Arriba