Realizzazione by siti web firenze e web.at.work

contatti
realizzazione siti web

PHP chr e ord | codice ascii per proteggere email

All'interno di una pagina web è possibile imbattersi in un indirizzo e-mail: il codice HTML che segue mostra come questo possa essere indecifrabile: <a href="&#109; &#97; &#105; &#108; &#116; &#111; &#58; &#101; &#109; &#97; &#105; &#108; &#64; &#97; &#100; &#100; &#114; &#101; &#115; &#115; &#46; &#120; &#121; ">Invia mail</a>

<?php
function protectMail($s) {
$result = '';
$s = 'mailto:' . $s;
for ($i = 0; $i < strlen($s); $i++) {
$result .= '&#' . ord(substr($s, $i, 1)) . ';';
}
return $result;
}


echo '<a href="' .
protectMail('email@address.xy') .
'">Send mail</a>';
?>

Alcuni caratteri speciali sono difficili da utilizzare all'interno di una stringa poiché difficili da inserire utilizzando la tastiera. Nonostante ciò, questi possiedono un valore ASCII. PHP mette a disposizione due funzioni per gestire questa situazione:

  • chr() converte il codice ASCII nei caratteri corrispondenti.
  • ord() restituisce il codice ASCII per uno specifico carattere.

Questo può essere sfruttato per proteggere, per esempio, gli indirizzi e-mail. Dal momento che gli spammer scrivono software proprio per rintracciare all'interno delle pagine web precisi pattern (come ad esempio gli indirizzi e-mail), queste funzioni possono essere utilizzate per mantenere basso il livello di spam. Il trucco è utilizzare i corrispondenti codici di carattere degli indirizzi mail, rendendo così la ricerca degli spambot più complessa.

Il codice seguente utilizza l'indirizzo e-mail (nel formato email@address.xy) come se fosse un parametro e restituisce mailto: email@address.xy, ma convertito in entità HTML. Per esempio la m di mailto: corrisponde al codice ASCII 109; ne consegue che $#109; corrisponde alla m. A tale scopo un ciclo for loop percorre tutti i caratteri della stringa: in primo luogo è necessario determinare la lunghezza della stringa utilizzando la funzione strlen(). Successivamente la chiamata a ord() serve per calcolare il codice ASCII di ogni singolo carattere, che sarà utilizzato in seguito per ottenere il corrispettivo HTML. Quello illustrato non è sicuramente un sistema di protezione del tutto sicuro: è indispensabile considerare soluzioni alternative per oscurare gli indirizzi mail, come ad esempio la sintassi email at address dot xy.

Prova lo strumento per trovare la tabella ascii delle corrispondenze

 

separatore

Informazioni sull'autore

Sergio Ferraiolo

foto
Descrizione:

Web Master di webdesignfirenze.com, titolare di Siti web gallery che ha realizzato il sito.

Mansioni: Programmatore, web designer e Analista

Web design per la creazione siti web firenze insieme a tecniche di SEO Marketing per creare un sito di successo

Portfolio: gallery immobiliare per la vendita e l'acquisto di immobili di prestigio

Portfolio: impresa di pulizie per servizi di pulizia industriale