PHP: ochrona adresu e-mail przed SPAMem

Autor: Arkadiusz Tobiasz 6 marca 2010

Zmorą osób programistów są spamerzy i większość czasu programisty poświęcana jest na zabezpieczenie adresów e-mail na stronach, skryptach przed robotami spamowymi. Pisałem już o wyświetlaniu adresu e-mail na stronie w postaci obrazka, a teraz chciałbym pokazać Ci prostą funkcję, która choć trochę zabezpieczy Cię przed spamerami.

W tym celu tworzymy sobie funkcję protect_email(), która zawiera następujący kod:

1
2
3
4
5
function protect_email($email)
{
    for ($i = 0; $i < strlen($email); $i++) { $output .= '&#'.ord($email[$i]).';'; }
    return $output;
}

Powyższa funkcja zamienia podany argument (zmienna $email), który jest adresem e-mail na odpowiedni ciąg znaków w kodzie ANSII. Pętla w powyższej funkcji przechodzi litera po literze, która jest zamieniana na swój odpowiednik w kodzie ANSII. Wynikiem jest zakodowany w kodzie ANSII adres e-mail. Na stronie wyświetlany jest poprawny adres e-mail, natomiast w podglądzie strony mamy kod ANSII. Oczywiście rozwiązanie nie będzie w 100% zabezpieczać Twojej strony przed spamem. Funkcji używamy bardzo prosto, a mianowicie:

1
echo protect_email('arek@tobiasz.org');

Standardowo demo możecie zobaczyć tutaj.

Odpowiedz

 

Arkadiusz Tobiasz student Akademii Ekonomicznej im. Karola Adamieckiego w Katowicach na specjalnościach informatyka ekonomiczna oraz rachunkowość. Więcej...

jQuery Validation i funkcja remote

Jakiś czas temu zwrócił się do mnie użytkownik z problemem. Chodzi o to, że korzysta on z pluginu walidacji jQuery, […]

Zend Framework: integracja z Uploadify

W tym wpisie postaram się przedstawić Wam w jaki sposób zintegrować skrypt Uploadify z Zend Frameworkiem. Dzięki temu będziemy mogli […]

Javascript: Czasowe wyświetlanie reklamy

Czasami chcemy, aby na pewnym elemencie naszej strony wyświetlała się reklama przez jakiś czas, a następnie zniknęła. W tym wpisie […]

Linux: backup wszystkich baz danych MySQL

Swego czasu pisałem o tym jak z poziomu konsoli można szybko i przyjemnie zrobić backup bazy MySQL. Wszystko jest ładnie […]