De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.

Ocultando e-mails com PHP e JavaScript

Colaboração: Glaydson Lima

Data de Publicação: 06 de Janeiro de 2005

Um dos grandes problemas na publicação de e-mails em sites, fóruns e lista de discussão, é a possibilidade de programas robôs de spammers capturarem este e-mails. E aí, uma vez capturados, os e-mail publicados tendem a receber cada vez mais lixos eletrônicos. Em muitos fóruns ficou comum a modificação da escrita do e-mail para formas similares. Por exemplo:

<fulano (a) provedor com br> torna-se fulano [!arroba!] provedor [ponto] com [ponto] br

Os programas dos spammers buscam nas páginas informações com o símbolo arroba e montam os e-mails.

Para segurança das pessoas que postam mensagens, existe a possibilidade de usar uma combinação de PHP e Java Script que camuflam os e-mails. Para este modelo, é necessário ter a biblioteca GD do PHP instalada.

Iremos desenvolver com 3 arquivos:

inc_vars.php

Arquivo que contém a codificação dos caracteres arroba e ponto. Esta codificação não pode conter sequência de caracteres comuns e deve variar sempre que possível.

  <?php
         # Define as constantes de substituição do arroba e ponto dos e-mails
         define("CONS_ARROBA","_arroba_");
         define("CONS_PONTO","_pt_");
  ?>

imagemEmail.php

Criará uma imagem com o e-mail codificado. Esta imagem será normalmente legível pelos usuários.

  <?php
  
  require("inc_vars.php");
  
  // define tamanho da imagem de acordo com o e-mail
  $largura = strlen($_GET["email"])*6;
  
  // cria uma imagem
  $im = imagecreate($largura, 13);
  
  // Define cor de fundo e cor do texto
  $bg = imagecolorallocate($im, 255, 255, 255);
  $textcolor = imagecolorallocate($im, 39, 104, 124);
  
  // Escreve a string do e-mail
  imagestring($im, 3, 0, 0, str_replace(CONS_PONTO,".",str_replace(CONS_ARROBA,"@",$_GET["email"])), $textcolor);
  
  // Retorna a imagem
  header("Content-type: image/png");
  imagepng($im);
  ?>
  
  3.arquivo.php   Será o arquivo principal, contendo a chamada para o script de imagem e o JavaScript que montará o  mailto  correto.
  
  <?php
         require("inc_vars.php");
  
          function ocultaEmail($PEmail) {
                 $emailCodificado = str_replace("@",CONS_ARROBA,$PEmail);
                 $emailCodificado = str_replace(".",CONS_PONTO,$emailCodificado);
                 return "<a href=\"#\" onClick=\"converteMailTo(this,'$emailCodificado')\"><img border=\"0\" src=\"imagemEmail.php?email=" . $emailCodificado ."\"></a>";
         }
  
  ?>
  <html>
  <head>
         <script language="JavaScript">
                 function converteMailTo(PObj,PEmail) {
                         PEmail = String(PEmail).replace(new RegExp("<? echo CONS_ARROBA; ?>","gi"),"@");
                         PEmail = String(PEmail).replace(new RegExp("<? echo CONS_PONTO; ?>","gi"),".");
                         PObj.href = "mailto:" + PEmail;
                 }
         </script>
  </head>
  <body>
         <p>
         <? echo ocultaEmail("fulano@provedor.com.br");?>
         </p>
  </body>
  </html>

Veja um exemplo do resultado desta combinação.

Adicionar comentário

* Campos obrigatórios
5000
Powered by Commentics

Comentários

Nenhum comentário ainda. Seja o primeiro!


Veja a relação completa dos artigos de Glaydson Lima