Comment afficher une adresse e-mail pour les utilisateurs, mais cacher robot? Y at-il une façon simple de le faire en utilisant PHP, Javascript ou Jquery?

StackOverflow https://stackoverflow.com/questions/1873992

Question

Y at-il un élégant et facile / simple de le faire en utilisant PHP, Javascript ou Jquery?

Était-ce utile?

La solution

Vous pouvez utiliser la fonction imagestring () PHP pour créer une image.

<?php
// Create a 100*30 image
$im = imagecreate(120, 30);

// White background and blue text
$bg = imagecolorallocate($im, 255, 255, 255);
$textcolor = imagecolorallocate($im, 0, 0, 255);

// Write the email address at the top left
imagestring($im, 5, 0, 0, 'test@test.com', $textcolor);

// Output the image
header('Content-type: image/png');

imagepng($im);
imagedestroy($im);
?>

Autres conseils

Il y a plusieurs façons de le faire. Nous avons eu la chance som obscurcissant source via python / javascript. Un autre favori plus simple est la technique CSS unicode-bidi:

div.contact { unicode-bidi:bidi-override; direction: rtl; }
<div class="contact">moc.rab@oof</div>

Imprime:

foo@bar.com

Vous pouvez regarder dans reCAPTCHA Mailhide . Il devrait être facile à utiliser de PHP.

ne jamais écrire les adresses électroniques sous forme de texte sur les pages Web, JAMAIS!

et les robots collecteurs de navigateur ont sûrement JS activé -_-

obscurcissement en utilisant les plus délicates entités HTML et urlencode possible, mis en œuvre en PHP: http://hcard.geekhood.net/encode/

Source: http://code.google.com/p/ hcardvalidator / source / browse / trunk / encode / index.php

Une autre approche que j'utilise est:

<a href="mailto:me@myserver.removethis.com">
<script>[…] a.href = a.href.replace(/removethis\./,'');</script>

Il convient de noter que les deux techniques permettent aux utilisateurs, lien cliquable parfaitement accessible.

vous pouvez essayer de changer name@example.com à: "Nom à par exemple dot com".

Cependant, les robots peuvent facilement tenir compte.

Dans le cas contraire, vous pouvez afficher une image dynamique de l'adresse e-mail si vous êtes vraiment motivé.

Il est pas une solution parfaite, mais le Enkoder ( http://hivelogic.com/enkoder ) est très utile pour cela. Il utilise le Javascript pour obscurcir l'adresse.

Ok. Donc, après un certain temps, je l'ai trouvé cet article de blog sur la façon de le faire facilement. http: // Techblog .tilllate.com / 2008/07/20 / dix méthodes à obfuscate-e-mail-adresses-rapport / Et quel impact-t-il sur la réception de spam ..

Je suppose que cela pourrait être complémentaire à l'information donnée ci-dessus .. Vive!

Est-ce que ce travail aussi bien ??

En utilisant quelque chose comme ceci

<span>myaddress</span><span>@</span><span>mydomain.com</span>

Ce ne sera pas se présenter comme un lien, mais ce serait encore reconnaissable à l'œil humain sur une page, et probablement con't être analysé par un robot. Je n'ai pas vérifié dehors, tu. Vous pourriez probablement insérer cette chaîne dans un vide et le lier à une fonction qui compose l'adresse en analysant le contenu ..

Juste une pensée rapide ...

Il est difficile à faire. Sauf si vous utilisez une image, tout ce qui est rendu lisible par l'homme par votre navigateur peut être rendu lisible par l'homme par un robot. Ainsi, même brouillage l'e-mail d'une certaine façon dans la source HTML et en utilisant une fonction javascript pour désembrouiller dynamiquement à la page rendu, ce sera vaincu par un robot qui fait aussi plein rendu du DOM.

Jusqu'à récemment, j'ai eu un bon succès avec la méthode ci-dessus, et ne voit pas de spam. Récemment, toutefois, je constate que les adresses ne semblent avoir été repris. Donc, je ne peux que supposer que les chalutiers de courrier électronique font désormais pleinement rendu DOM.

Pour conclure - une image est probablement le meilleur (bien que même ce n'est pas 100%)

Voici une solution simple jquery à ce problème:

<script type="text/javascript">
$(document).ready(function() {
    str1="mailto:";
    str2="info";
    str3="@test.com";
    $("#email_a").attr("href", str1+str2+str3);

});
</script>

<a href="#" id="email_a"><img src="sample.png"/></a>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top