2009-08-29 4 views
2

J'ai un formulaire "contactez-nous" qui utilise Ajax (c'est-à-dire qui repose sur des requêtes asynchrones).Masquage d'un e-mail à partir de spambots sans utiliser javascript

Dans le cas où l'utilisateur a désactivé javascript, je veux afficher un message, disant quelque chose comme:

Vous devez activer JavaScript pour utiliser ce formulaire de contact. Si vous ne pouvez pas, ou ne savez pas ce que Javascript est, alors utilisez votre email et contactez-nous au <the_email_address>.

Mais bien sûr, je veux cacher the_email_address à partir de spambots.

Comme cette adresse électronique doit être affichée à l'intérieur d'un <noscript>, cela n'a aucun sens de la brouiller avec Javascript, étant donné que certains utilisateurs ne savent même pas ce qu'est Javascript.

Je pensais que d'une solution, mais je n'ai pas moyen de le tester: Insertion vides <span></span> balises, comme dans

my_em<span></span>[email protected]<span></span>mail.com

Ou, un peu plus intelligent

my_em<span style="display:none">garbage</span>[email protected]

Cela fonctionnerait-il? Si non, de meilleures idées?

Mise à jour

Merci RichieHindle pour le ansewr. Je pensais partager une implémentation simple de l'idée en python:

def html_nospam(string): 
    def ent(char): 
     return "&#%d;" % ord(char) 
    return ''.join([ent(c) for c in string]) 
+1

Note: Attention, avec ces "trucs", non seulement vous cachez votre e-mail aux robots, mais aussi aux personnes handicapées. – Zed

+0

@Zed, bon point, bien que pour mon cas particulier (lire: mon public), ils ne sont pas susceptibles d'utiliser le formulaire de toute façon, ou ils auraient quelqu'un pour les aider ou le faire pour eux. – hasen

Répondre

4

Utilisez les entités HTML pour l'obfusciter. [email protected] devient &#120;&#64;&#121;&#46;&#99;&#111;&#109;.

Vous penseriez que les moissonneurs d'adresses seraient sages à cela, mais beaucoup ne le sont pas. Le résultat final pour l'utilisateur (qu'il utilise un navigateur ou un lecteur d'écran) est impossible à distinguer du texte normal.

Il existe online tools vous pouvez utiliser pour faire la conversion pour vous.

+0

Génial. Cela ressemble à la façon de le faire. – hasen

+0

@hasen, c'est - je l'ai vu assez souvent. –

+0

sarnath'd à cela - mais je pense que c'est la voie à suivre ou comme Shoban suggéré, vous pouvez essayer la façon Facebook - les adresses e-mail dans leurs profils sont des images. – pageman

0

Créez une image. Ou utilisez Flash (ou Silverlight, ActiveX, peu importe).

4

Qu'en est-il d'une image?

alt text http://www.codegeeks.net/wp-content/uploads/2009/08/s.png

ou utilisez microsoft tag :) l'air cool

alt text http://www.codegeeks.net/wp-content/uploads/2009/08/My_Contact_2009829838261.jpeg

Edit: Il suffit de lire vos commentaires ci-dessus au sujet de votre public. On dirait que MS tag sera trop pour eux :)

+0

+1, Utilisez un crayon au lieu d'inventer un stylo qui fonctionne en 0 gravité. Eh? Bon. –

+0

+1, bien sûr! Pourquoi je n'y ai pas pensé? – hasen

+0

Oh, attends, je pense que je l'ai fait. Le problème est qu'il n'est pas possible de copier-coller – hasen

Questions connexes