| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 22146 -->
- <!-- Reviewed: no -->
- <sect2 id="zend.validate.set.hostname">
- <title>Hostname</title>
- <para>
- <classname>Zend_Validate_Hostname</classname> erlaubt die Prüfung von Hostnamen mit einem
- Set von bekannten Spezifikationen. Es ist möglich drei verschiedene Typen von Hostnamen zu
- Prüfen: einen <acronym>DNS</acronym> Hostnamen (z.b. <filename>domain.com</filename>), IP
- Adressen (z.B. 1.2.3.4), und lokale Hostnamen (z.B. localhost). Standarmäßig werden nur
- <acronym>DNS</acronym> Hostnamen geprüft.
- </para>
- <sect3 id="zend.validate.set.hostname.options">
- <title>Unterstützte Optionen für Zend_Validate_Hostname</title>
- <para>
- Die folgenden Optionen werden für <classname>Zend_Validate_Hostname</classname>
- unterstützt:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <emphasis><property>allow</property></emphasis>: Definiert die Art des
- Hostnamens welche verwendet werden darf. Siehe <link
- linkend="zend.validate.set.hostname.types">Hostname Typen</link> für
- Details.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis><property>idn</property></emphasis>: Definiert ob
- <acronym>IDN</acronym> Domains erlaubt sind oder nicht. Diese Option ist
- standardmäßig <constant>TRUE</constant>.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis><property>ip</property></emphasis>: Erlaubt es eine eigene IP Prüfung
- zu definieren. Diese Option ist standardmäßig eine neue Instanz von
- <classname>Zend_Validate_Ip</classname>.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis><property>tld</property></emphasis>: Definiert ob
- <acronym>TLD</acronym>s geprüft werden. Diese Option ist standardmäßig
- <constant>TRUE</constant>.
- </para>
- </listitem>
- </itemizedlist>
- </sect3>
- <sect3 id="zend.validate.set.hostname.basic">
- <title>Normale Verwendung</title>
- <para>
- <emphasis>Normale Verwendung</emphasis>
- </para>
- <programlisting language="php"><![CDATA[
- $validator = new Zend_Validate_Hostname();
- if ($validator->isValid($hostname)) {
- // Hostname scheint gültig zu sein
- } else {
- // Hostname ist ungülig; Gründe dafür ausdrucken
- foreach ($validator->getMessages() as $message) {
- echo "$message\n";
- }
- }
- ]]></programlisting>
- <para>
- Das prüft den Hostnamen <varname>$hostname</varname> und wird einen Fehler über
- <methodname>getMessages()</methodname> mit einer nützlichen Fehlermeldung
- auswerfen.
- </para>
- </sect3>
- <sect3 id="zend.validate.set.hostname.types">
- <title>Verschiedene Typen von Hostnamen prüfen</title>
- <para>
- Es kann gewünscht sein auch IP Adressen, lokale Hostnamen, oder eine Kombination aller
- drei erlaubten Typen zu prüfen. Das kann gemacht werden durch die Übergabe eines
- Parameters an <classname>Zend_Validate_Hostname</classname> wenn dieser initialisiert
- wird. Der Parameter sollte ein Integer sein, welcher die Typen von Hostnamen auswählt
- die erlaubt sind. Hierfür können die <classname>Zend_Validate_Hostname</classname>
- Konstanten verwendet werden.
- </para>
- <para>
- Die <classname>Zend_Validate_Hostname</classname> Konstanten sind:
- <constant>ALLOW_DNS</constant> um nur <acronym>DNS</acronym> Hostnamen zu erlauben,
- <constant>ALLOW_IP</constant> um IP Adressen zu erlauben,
- <constant>ALLOW_LOCAL</constant> um lokale Hostnamen zu erlauben, und
- <constant>ALLOW_ALL</constant> um alle drei Typen zu erlauben. Um nur IP Adressen zu
- prüfen kann das folgende Beispiel verwendet werden:
- </para>
- <programlisting language="php"><![CDATA[
- $validator = new Zend_Validate_Hostname(Zend_Validate_Hostname::ALLOW_IP);
- if ($validator->isValid($hostname)) {
- // Hostname scheint gültig zu sein
- } else {
- // Hostname ist ungülig; Gründe dafür ausdrucken
- foreach ($validator->getMessages() as $message) {
- echo "$message\n";
- }
- }
- ]]></programlisting>
- <para>
- Genau wie die Verwendung von <constant>ALLOW_ALL</constant> alle Typen von Hostnamen
- akzeptiert, können diese Typen kombiniert werden um Kombinationen zu erlauben. Um zum
- Beispiel <acronym>DNS</acronym> und lokale Hostnamen zu akzeptieren muß das
- <classname>Zend_Validate_Hostname</classname> Objekt wie folgt initialisiert werden:
- </para>
- <programlisting language="php"><![CDATA[
- $validator = new Zend_Validate_Hostname(Zend_Validate_Hostname::ALLOW_DNS |
- Zend_Validate_Hostname::ALLOW_IP);
- ]]></programlisting>
- </sect3>
- <sect3 id="zend.validate.set.hostname.idn">
- <title>Internationale Domain Namen prüfen</title>
- <para>
- Einige Länder Code Top Level Domains (ccTLDs), wie 'de' (Deutschland), unterstützen
- internationale Zeichen in Domain Namen. Diese sind als Internationale Domain Namen
- (<acronym>IDN</acronym>) bekannt. Diese Domains können mit
- <classname>Zend_Validate_Hostname</classname> geprüft werden, mit Hilfe von erweiterten
- Zeichen die im Prüfprozess verwendet werden.
- </para>
- <note>
- <title>IDN Domains</title>
- <para>
- Bis jetzt unterstützen mehr als 50 ccTLDs <acronym>IDN</acronym> Domains.
- </para>
- </note>
- <para>
- Eine <acronym>IDN</acronym> Domain zu prüfen ist genauso einfach wie die Verwendung des
- standard Hostnamen Prüfers da <acronym>IDN</acronym> Prüfung standardmäßig eingeschaltet
- ist. Wenn <acronym>IDN</acronym> Prüfung ausgeschaltet werden soll, kann das entweder
- durch die Übergabe eines Parameters im <classname>Zend_Validate_Hostname</classname>
- Constructor, oder über die <methodname>setValidateIdn()</methodname> Methode gemacht
- werden.
- </para>
- <para>
- Die <acronym>IDN</acronym> Prüfung kann ausgeschaltet werden durch die Übergabe eines
- zweiten Parameters an den <classname>Zend_Validate_Hostname</classname> Constructor auf
- die folgende Art und Weise.
- </para>
- <programlisting language="php"><![CDATA[
- $validator =
- new Zend_Validate_Hostname(
- array(
- 'allow' => Zend_Validate_Hostname::ALLOW_DNS,
- 'idn' => false
- )
- );
- ]]></programlisting>
- <para>
- Alternativ kann entweder <constant>TRUE</constant> oder <constant>FALSE</constant> an
- <methodname>setValidateIdn()</methodname> übergeben werden, um die
- <acronym>IDN</acronym> Prüfung ein- oder auszuschalten. Wenn ein <acronym>IDN</acronym>
- Hostname geprüft wird, der aktuell nicht unterstützt wird, ist sicher das die Prüfung
- fehlschlagen wird wenn er irgendwelche internationalen Zeichen hat. Wo keine ccTLD Datei
- in <filename>Zend/Validate/Hostname</filename> existiert, welche die zusätzlichen
- Zeichen definiert, wird eine normale Hostnamen Prüfung durchgeführt.
- </para>
- <note>
- <title>IDN Prüfung</title>
- <para>
- Es sollte beachtet werden das <acronym>IDN</acronym>s nur geprüft werden wenn es
- erlaubt ist <acronym>DNS</acronym> Hostnamen zu prüfen.
- </para>
- </note>
- </sect3>
- <sect3 id="zend.validate.set.hostname.tld">
- <title>Top Level Domains prüfen</title>
- <para>
- Normalerweise wird ein Hostname gegen eine Liste von bekannten
- <acronym>TLD</acronym>s geprüft. Wenn diese Funktionalität nicht benötigt wird kann
- das, auf die gleiche Art und Weise wie die <acronym>IDN</acronym> Unterstützung,
- ausgeschaltet werden Die <acronym>TLD</acronym> Prüfung kann ausgeschaltet werden
- indem ein dritter Parameter an den <classname>Zend_Validate_Hostname</classname>
- Constructor übergeben wird. Im folgenden Beispiel wird die <acronym>IDN</acronym>
- Prüfung durch den zweiten Parameter unterstützt.
- </para>
- <programlisting language="php"><![CDATA[
- $validator =
- new Zend_Validate_Hostname(
- array(
- 'allow' => Zend_Validate_Hostname::ALLOW_DNS,
- 'idn' => true,
- 'tld' => false
- )
- );
- ]]></programlisting>
- <para>
- Alternativ kann entweder <constant>TRUE</constant> oder <constant>FALSE</constant>
- übergeben an <methodname>setValidateTld()</methodname> übergeben werden um die
- <acronym>TLD</acronym> Prüfung ein- oder auszuschalten.
- </para>
- <note>
- <title>TLD Prüfung</title>
- <para>
- Es sollte beachtet werden das <acronym>TLD</acronym>s nur geprüft werden wenn es
- erlaubt ist <acronym>DNS</acronym> Hostnamen zu prüfen.
- </para>
- </note>
- </sect3>
- </sect2>
|