27.5. Walidacja adresów serwerów
Poprzedni | Rozdział 27. Zend_Validate | Następny

## 27.5. Walidacja adresów serwerów

Zend_Validate_Hostname pozwala ci na przeprowadzenie walidacji adresów serwerów w oparciu o zestaw znanych specyfikacji. Możliwe jest sprawdzenie trzech różnych typów adresów serwerów: adresu DNS (np. domain.com), adresu IP (np. 1.2.3.4), oraz adresu lokalnego (np. localhost). Domyślne będzie to sprawdzane jedynie w kontekście adresów DNS.

Podstawowe użycie

Poniżej podstawowy przykład użycia:

    <?php
    require_once 'Zend/Validate/Hostname.php';
    $validator = new Zend_Validate_Hostname();
    if ($validator->isValid($hostname)) {
        // nazwa serwera wygląda na prawidłową
    } else {
        // nazwa jest nieprawidłowa; wyświetl powody
        foreach ($validator->getMessages() as $message) {
            echo "$message\n";
        }
    }

Sprawdzi to nazwę serwera `$hostname` i w przypadku niepowodzenia wypełni `$validator->getMessages()` użytecznymi informacjami informującymi o błędach.

Walidacja różnych typów adresów serwerów

Może się okazać, że chcesz zezwolić na użycie adresów IP, adresów lokalnych lub kombinacji dozwolonych typów. Możesz to zrobić przekazując parametr do obiektu Zend_Validate_Hostname gdy tworzysz jego instancję. Parametr powinien być liczbą całkowitą określającą, ktorego typu adresy są dozwolone. Zalecamy użycie stałych klasy Zend_Validate_Hostname w tym celu.

Stałe klasy Zend_Validate_Hostname to: `ALLOW_DNS` aby zezwalać tylko na adresy DNS, `ALLOW_IP` aby zezwalać tylko na adresy IP, `ALLOW_LOCAL` aby zezwalać tylko na adresy lokalne, oraz `ALLOW_ALL` aby zezwalać na wszystkie typy. Aby tylko sprawdzić adres dla adresów IP możesz użyć poniższego przykładu:

    <?php
    require_once 'Zend/Validate/Hostname.php';
    $validator = new Zend_Validate_Hostname(Zend_Validate_Hostname::ALLOW_IP);
    if ($validator->isValid($hostname)) {
        // nazwa serwera wygląda na prawidłową
    } else {
        // nazwa jest nieprawidłowa; wyświetl powody
        foreach ($validator->getMessages() as $message) {
            echo "$message\n";
        }
    }

Tak samo dobrze jak używając stałej `ALLOW_ALL` do określenia akceptacji adresów wszystkich typow, możesz użyć dowolnej kombinacji tych typów. Na przykład aby akceptować adresy DNS oraz adresy lokalne, uwtórz instancję obiektu Zend_Validate_Hostname w taki sposób:

    <?php
    $validator = new Zend_Validate_Hostname(Zend_Validate_Hostname::ALLOW_DNS | Zend_Validate_Hostname::ALLOW_IP);
    }

Poprzedni | Początek rozdziału | Następny
27.4. Walidacja adresów email | Spis treści | Rozdział 28. Zend_View