logo

INTERNETNE STORITVE

- IZDELAVA SPLETNIH STRANI - OBLIKOVANJE - PROGRAMIRANJE DODATKOV

Javascript - PHP - antispam - dekodiranje - fromCharCode - ASCII

Vsi imamo težave s spamom oz. nezaželeno pošto. S pomočjo Javascript jezika lahko uporabimo trik, ki oteži (onemogoči) spam iskalnikom (webcrawler) branje vašega e-poštnega naslova s spletne strani.

Naprej s PHP-jem podani e-poštni naslov spremenimo v zaporedje ASCII kod:

PHP:
  1. function encodeString($string) {
  2.     for($x = 0, $y = strlen($string); $x <$y; $x++ ) {
  3.         $ord[] = ord($string[$x]);
  4.     }
  5.  
  6.     return implode(',', $ord);
  7. }

Potem pa pri izpisu (v templatu) vrnemo Javascript kodo, ki linku (HTML a element), ko kliknemo na njega, določi href atribut kjer Javascript sestavi e-poštni naslov z zaporedja ASCII kod. Za pretvorbo iz zaporedja ASCII kod uporabimo Javascript fromCharCode, ki je implementirana v String razredu.

PHP:
  1. function encodeEmailTo($address) {
  2.     return "this.href=(String.fromCharCode(".encodeString('mailto:'.$address)."));";
  3. }

Uporaba funkcije pri izpisu oz. v templatu:

PHP:
  1. $encodedEmail = encodeEmailTo('rok.meglic@gmail.com');
  2. echo "<a onclick='$encodedEmail'>Rok Meglič</a>";

Ko se template izvede pa dobimo sledečo kodo:

JAVASCRIPT:
  1. <a onclick='this.href=(String.fromCharCode(109,97,105,108,116,111,58,114,111,107,46,109,101,103,108,105,99,64,103,109,97,105,108,46,99,111,109));'>Rok Meglič</a>

Preizkusite. Ko uporabnik klikne se odpre njihov privzeti poštni odjemalec in dobi pravi e-poštni naslov, spam web crawlerji pa težje pridobijo naš e-poštni naslov. Imate vi boljšo rešitev? Sporočite pod komentarje.

Dodatne informacije:

Delodajalec: Pangaea.si

3x komentirano na “Javascript - PHP - antispam - dekodiranje - fromCharCode - ASCII”

  1. smottt je napisal:

    Zanimiva rešitev!

  2. Boštjan je napisal:

    Kaj pa http://bandrej.com/?url=knjiznica/start&a=odpri&id=29 ?

  3. Roky je napisal:

    Tut ena možnost ja, sej je na podoben način.

Dodaj komentar