Ciao a tutti,
se vi siete stufati di ricevere spamming negli indirizzi e-mail che pubblicate nelle vostre pagine forse potete trovare utile questa soluzione.
L'indirizzo e-mail viene criptato con PHP e decriptato con Javascript on-the-fly
Esempiocodice:class MailEncoder { function MailEncoder($baseString) { $this->baseStr = $baseString ; //separo la stringa in un array di caratteri $arrayChars = preg_split('//', $baseString, -1, PREG_SPLIT_NO_EMPTY); //ordino l'array in modo casuale mt_srand((float)microtime() * 1000000); shuffle($arrayChars) ; //ricreo la stringa $this->encodedStr = implode('', $arrayChars) ; } function encode($mailAddr) { //"cripta" l'indirizzo $len = strlen($mailAddr) ; $crypted = '' ; for($i=0; $i<$len; $i++) { $crypted.= $this->encodedStr{strpos($this->baseStr, $mailAddr{$i})} ; } return($crypted) ; } function jsCode() { //il codice JS da inserire nell'head della pagina $jsStr = "var CONFIGkeyStr = '0123456789:@.-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz' ; \n var ENCODEDStr = '{$this->encodedStr}' ; \n function mailDecode(encodedMail) { var decoded = '' ; for(var i=0; i<encodedMail.length; i++) { decoded += CONFIGkeyStr.charAt(ENCODEDStr.indexOf(encodedMail.charAt(i))) ; } return(decoded); } \n function sendMail(encoded) { document.location.href='mailto:'+mailDecode(encoded) ; } \n function viewMail(encoded) { return('Scrivi a ' + mailDecode(encoded)) ; } " ; return($jsStr) ; } function jsLink($email, $text, $cssClass='') { //Genera il link con il mailto $encoded = $this->encode($email) ; $link = '<a href="javascript:void(0)" class="'.$cssClass.'"' . ' onClick="sendMail(\''.$encoded.'\')" onMouseOver="this.title=viewMail(\''.$encoded.'\')" title=\'\'">' . $text.'</a>'; return($link) ; } } ?>
Lo potete vedere operativo (in realtà in quel caso l'ho fatto po' diverso perchè freephp non utilizza PHP) negli articoli di freephp.html.itcodice:<?php include('MailEncoder.php') ; $CONFIGkeyStr = '0123456789:@.-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'; $antispam = new MailEncoder($CONFIGkeyStr) ; ?> <html> <head> <script> <?php echo($antispam->jsCode()) ;?> </script> </head> <body> <?php echo $antispam->jsLink('tuo_indirizzo@host.it','cliccami','pippoCss') ?> </body> </html>
Fino a quando, spero mai, gli spider che cacciano indirizzi sul WEB non integreranno un motore Javascript, con questo sistema siamo al sicuro.

Rispondi quotando
