En nuestro footer de página tenemos un email que estamos extrayendo de la base de datos, en php blade se verá así:
<a href="mailto:{{ $email }}">{{ $email }}</a>Necesito protegerlo de los spambots.
Escuché que en php se puede dividir y luego ensamblar a través de un javascript , y se verá así:
<a href="" data-first="" deta-second="">{{ $email }}</a> Donde data son las partes del propio correo electrónico. Pero no entendía cómo separarlo y luego recogerlo. alguien puede decirme cómo hacer esto?
O dígame características similares, cómo protegerse contra spambots.
Los raspadores web generalmente solo descargarán una respuesta HTML simple.
En este caso, estará protegido siempre que su código no contenga correo electrónico como texto sin formato y el correo electrónico se vuelva a armar en la onload .
Algunos incluso podrían ejecutar JS al raspar su página.
Para evitar esto, puede solicitar al usuario que presione algo para juntar el correo electrónico. Hice un ejemplo rápido:
function showEmail (element) { const infoData = document.querySelector('[data-target="'+element.id+'"]').dataset; const mail = infoData.p1 + '@' + infoData.p2 + "." + infoData.p3; element.href = "mailto:" + mail; element.text = mail; } <a href="" id="mailOutput1" onclick="showEmail(this)">Send Email</a> <!--p1, p2, p3 are filled in PHP --> <span data-target="mailOutput1" data-p1="john.doe" data-p2="example" data-p3="com"></span>no hay nada que ver con PHP con eso, ya que PHP es un lenguaje del lado del servidor.
puede hacer esto con Javascript (usará jquery aquí para simplificarlo)
esto agregará el correo electrónico que está almacenado en data-mail al atributo href y una vez que su cliente haga clic en él, el atributo se eliminará nuevamente.
<a class="email" data-mail="{{ $email }}">{{ $email }}</a> $('.email').click(function () { let t = $(this); t.attr('href', 'mailto:' + t.data('mail')); setTimeout(() => t.removeAttr('href'), 1); });