Come visualizzare un indirizzo email per gli utenti, ma nascondersi da robot? C'è un solo modo per farlo utilizzando PHP, Javascript o Jquery?

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

Domanda

C'è un / modo semplice ed elegante e facile da fare utilizzando PHP, Javascript o Jquery?

È stato utile?

Soluzione

È possibile utilizzare la funzione PHP imagestring () per creare un'immagine.

<?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);
?>

Altri suggerimenti

Ci sono molti modi per farlo. Abbiamo avuto la fortuna som offuscando sorgente tramite python / javascript. Un altro favorito più semplice è la tecnica CSS unicode-bidi:

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

Stampa in:

foo@bar.com

Si potrebbe voler guardare in reCAPTCHA Mailhide . Dovrebbe essere facile da usare da PHP.

mai scrivere indirizzi e-mail come testo su pagine web, MAI!

e bot del browser sicuramente hanno JS abilitato -_-

L'offuscamento utilizzando più difficili le entità possibili HTML e urlencode, realizzati in PHP: http://hcard.geekhood.net/encode/

Fonte: http://code.google.com/p/ hcardvalidator / source / browse / trunk / codifica / index.php

Un altro approccio che uso è:

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

E 'importante notare che entrambe le tecniche offrono agli utenti perfettamente accessibile, link cliccabile.

si può provare a cambiare name@example.com a: "Nome a esempio dot com".

Tuttavia, i robot possono facilmente tenere conto di questo.

In caso contrario, è possibile visualizzare un'immagine dinamica dell'indirizzo di posta elettronica se siete veramente motivati.

Non è una soluzione perfetta, ma l'Enkoder ( http://hivelogic.com/enkoder ) è molto utile per questo. Esso utilizza Javascript per nascondere l'indirizzo.

Ok. Così, dopo un po ', ho trovato questo articolo del blog su come farlo facilmente. http: // TechBlog .tilllate.com / 2008/07/20 / dieci-metodi-di-offuscare-posta elettronica-indirizzi-confronto / E quanto impatto fa fare a ricevere spam ..

Credo che questo potrebbe essere complementare alle informazioni di cui sopra .. Cheers!

Sarebbe questo lavoro così ??

Usando qualcosa di simile

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

Questo non sta in piedi come un link, ma sarebbe comunque riconoscibile dall'occhio umano in una pagina, e probabilmente cont essere analizzato da un robot. Non hanno controllato fuori, tu. Probabilmente si potrebbe inserire la stringa in un vuoto e associarlo ad una funzione che compone l'indirizzo analizzando il contenuto ..

Solo un pensiero veloce ...

Questo è difficile da fare. A meno che non si utilizza un'immagine, tutto ciò che è reso leggibile dal browser può essere resa leggibile da un robot. Quindi, anche rimescolando l'e-mail in qualche modo nel codice HTML e quindi utilizzando una funzione javascript per de-scramble dinamicamente il rendering delle pagine, questo sarà sconfitto da un robot che fa anche il pieno prestazione del DOM.

Fino a poco tempo ho avuto un buon successo con il metodo di cui sopra, e non ho visto alcun spam. Recentemente, tuttavia ho notato che gli indirizzi non sembrano essere stati prelevati. Quindi posso solo supporre pescherecci di posta elettronica stanno facendo pieno il rendering DOM.

Quindi, per concludere - l'immagine è probabilmente meglio (anche se anche questo non è al 100%)

Ecco una soluzione semplice jquery a questo problema:

<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>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top