Existe-t-il un moyen élégant et simple de le faire en utilisant PHP, Javascript ou Jquery?Comment afficher une adresse e-mail pour les utilisateurs mais se cacher du robot? Existe-t-il un moyen simple de le faire en utilisant PHP, Javascript ou Jquery?
Répondre
sûrement 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, '[email protected]', $textcolor);
// Output the image
header('Content-type: image/png');
imagepng($im);
imagedestroy($im);
?>
vous pouvez essayer de changer [email protected] à: "nom à l'exemple dot com".
Cependant, les robots peuvent facilement en tenir compte.
Sinon, vous pouvez afficher une image dynamique de l'adresse e-mail si vous êtes vraiment motivé.
obscurcissement en utilisant les plus délicates entités HTML possible et urlencode, 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:[email protected]">
<script>[…] a.href = a.href.replace(/removethis\./,'');</script>
Il convient de noter que les deux techniques donner aux utilisateurs un lien cliquable parfaitement accessible.
Ce n'est pas une solution parfaite, mais l'Enkoder (http://hivelogic.com/enkoder) est très utile pour cela. Il utilise Javascript pour masquer l'adresse.
ce serait battu par un robot qui a fait un DOM rendu complet –
Vous voudrez peut-être regarder dans reCAPTCHA Mailhide. Il devrait être facile à utiliser depuis PHP.
ce qui semble être l'une des meilleures solutions que je l'ai vu. Cependant, il vient avec le coût d'être une légère douleur pour l'utilisateur –
@Richard. Oui, pour les utilisateurs qui vont réellement utiliser l'adresse, c'est :) – jensgram
Il y a plusieurs façons de le faire. Nous avons eu un peu de chance d'obscurcir la source via python/javascript. Une autre est la technique unicode-bidi CSS préférée plus simple:
div.contact { unicode-bidi:bidi-override; direction: rtl; }
<div class="contact">[email protected]</div>
Imprime:
jamais écrire les adresses électroniques sous forme de texte sur les pages Web, JAMAIS!
et les bots navigateur ont JS activé -_-
Peut-être que vous ne croyez pas, mais de nombreux clients veulent que les emails soient écrits en HTML, sous forme de texte. Je les avertis du spam, mais ils ne s'en soucient pas ... eh bien, prends-en soin seulement 3 mois plus tard;) – Strae
Est-ce que cela fonctionnerait aussi?
en utilisant quelquechose comme
<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é, toi. Vous pouvez 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 ...
cela serait pris en charge par tout robot faisant le minimum d'analyse DOM –
Cela est difficile à faire. Sauf si vous utilisez une image, tout ce qui est rendu lisible par votre navigateur peut être rendu humainement lisible par un robot. Donc, même en brouillant l'e-mail d'une manière ou d'une autre dans la source HTML et en utilisant une fonction javascript pour désembrouiller dynamiquement le rendu de la page, cela sera vaincu par un robot qui effectue également le rendu complet du DOM.
Jusqu'à récemment, j'ai eu un bon succès avec la méthode ci-dessus, et je n'ai vu aucun spam. Récemment cependant j'ai remarqué que les adresses semblent avoir été ramassées. Je ne peux donc que supposer que les chalutiers de messagerie font maintenant un rendu DOM complet.
à conclure - une image est probablement le meilleur (bien que même ce n'est pas 100%)
Ok. Donc, après un certain temps, j'ai trouvé cet article de blog sur la façon de le faire facilement. http://techblog.tilllate.com/2008/07/20/ten-methods-to-obfuscate-e-mail-addresses-compared/ Et quel impact fait-il sur le spam reçu ..
Je suppose que cela pourrait être complémentaire à l'information donnée ci-dessus .. Cheers!
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>
Et si je veux que le placement de l'image soit adaptable? – Steven
..save l'image sur le serveur Web, et le charger dans la page html simplement avec
–
Strae