| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166 |
- <sect2 id="zend.validate.set.email_address">
- <title>EmailAddress</title>
- <para>
- Klasa <code>Zend_Validate_EmailAddress</code> pozwala ci na
- przeprowadzenie weryfikacji adresu email. Weryfikator wpierw dzieli adres
- email na część lokalną oraz na nazwę serwera, a następnie próbuje
- sprawdzić je w oparciu o znane specyfikacje dla adresów email oraz
- adresów serwerów.
- </para>
- <para>
- <emphasis role="strong">Podstawowe użycie</emphasis>
- </para>
- <para>
- Poniżej podstawowy przykład użycia:
- <programlisting role="php"><![CDATA[
- $validator = new Zend_Validate_EmailAddress();
- if ($validator->isValid($email)) {
- // adres email wygląda na prawidłowy
- } else {
- // adres email jest nieprawidłowy; wyświetl powody
- foreach ($validator->getMessages() as $message) {
- echo "$message\n";
- }
- }
- ]]>
- </programlisting>
- Sprawdzi to adres email <code>$email</code> i w przypadku niepowodzenia
- wypełni <code>$validator->getMessages()</code> użytecznymi informacjami
- informującymi o błędach.
- </para>
- <para>
- <emphasis role="strong">Części adresu email</emphasis>
- </para>
- <para>
- <code>Zend_Validate_EmailAddress</code> dopasuje każdy prawidłowy adres email zgodny ze
- specyfikacją RFC2822.
- Na przykład, poprawnymi adresami będą <code>bob@domain.com</code>,
- <code>bob+jones@domain.us</code>, <code>"bob@jones"@domain.com</code>
- oraz <code>"bob jones"@domain.com</code>
- </para>
- <para>
- Niektóre przestarzałe formaty adresów email nie są obecnie weryfikowane
- (np. zawierające znak powrotu karetki, albo znak "\" w adresie email).
- </para>
- <para>
- <emphasis role="strong">Weryfikacja dla różnych typów adresów serwerów</emphasis>
- </para>
- <para>
- Część adresu email zawierająca adres serwera jest weryfikowana za pomocą
- <link linkend="zend.validate.set.hostname"><code>Zend_Validate_Hostname</code></link>.
- Domyślnie akceptowane są jedynie adresy DNS w stylu <code>domain.com</code>,
- ale jeśli chcesz, to możesz włączyć akceptowanie także adresów IP oraz
- adresów lokalnych.
- </para>
- <para>
- Aby to zrobić, musisz utworzyć instancję <code>Zend_Validate_EmailAddress</code>
- przekazując parametr określający typ adresów jakie chcesz akceptować.
- Więcej szczegółów znajdziesz w <code>Zend_Validate_Hostname</code>,
- jednak poniżej możesz zobaczyć przykład akceptowania zarówno adresów DNS
- jak i adresów lokalnych:
- <programlisting role="php"><![CDATA[
- $validator = new Zend_Validate_EmailAddress(Zend_Validate_Hostname::ALLOW_DNS | Zend_Validate_Hostname::ALLOW_LOCAL);
- if ($validator->isValid($email)) {
- // adres email wygląda na prawidłowy
- } else {
- // adres email jest nieprawidłowy; wyświetl powody
- foreach ($validator->getMessages() as $message) {
- echo "$message\n";
- }
- }
- ]]>
- </programlisting>
- </para>
- <para>
- <emphasis role="strong">Checking if the hostname actually accepts email</emphasis>
- </para>
- <para>
- Just because an email address is in the correct format, it doesn't necessarily mean that
- email address actually exists. To help solve this problem, you can use MX validation to
- check whether an MX (email) entry exists in the DNS record for the email's hostname.
- This tells you that the hostname accepts email, but doesn't tell you the exact email
- address itself is valid.
- </para>
- <para>
- MX checking is not enabled by default and at this time is only supported by UNIX platforms.
- To enable MX checking you can pass a second parameter to the <code>Zend_Validate_EmailAddress</code>
- constructor.
- <programlisting role="php"><![CDATA[
- $validator = new Zend_Validate_EmailAddress(Zend_Validate_Hostname::ALLOW_DNS, true);
- ]]>
- </programlisting>
- Alternatively you can either pass <code>true</code> or <code>false</code> to
- <code>$validator->setValidateMx()</code> to enable or disable MX validation.
- </para>
- <para>
- By enabling this setting network functions will be used to check for the presence of an
- MX record on the hostname of the email address you wish to validate. Please be aware
- this will likely slow your script down.
- </para>
- <para>
- <emphasis role="strong">Validating International Domains Names</emphasis>
- </para>
- <para>
- <code>Zend_Validate_EmailAddress</code> will also match international characters that exist in some domains.
- This is known as International Domain Name (IDN) support. This is enabled by default, though
- you can disable this by changing the setting via the internal <code>Zend_Validate_Hostname</code> object
- that exists within <code>Zend_Validate_EmailAddress</code>.
- <programlisting role="php"><![CDATA[
- $validator->hostnameValidator->setValidateIdn(false);
- ]]>
- </programlisting>
- Więcej informacji na temat użycia metody <code>setValidateIdn()</code>
- znajduje się w dokumentacji <code>Zend_Validate_Hostname</code>.
- </para>
- <para>
- Please note IDNs are only validated if you allow DNS hostnames to be validated.
- </para>
- <para>
- <emphasis role="strong">Validating Top Level Domains</emphasis>
- </para>
- <para>
- By default a hostname will be checked against a list of known TLDs. This is enabled by
- default, though you can disable this by changing the setting via the internal
- <code>Zend_Validate_Hostname</code> object that exists within <code>Zend_Validate_EmailAddress</code>.
- <programlisting role="php"><![CDATA[
- $validator->hostnameValidator->setValidateTld(false);
- ]]>
- </programlisting>
- Więcej informacji na temat użycia metody <code>setValidateTld()</code>
- znajduje się w dokumentacji Zend_Validate_Hostname.
- </para>
- <para>
- Please note TLDs are only validated if you allow DNS hostnames to be validated.
- </para>
- </sect2>
|