| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 18028 -->
- <!-- 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 DNS Hostnamen (z.b. domain.com), IP Adressen (z.B. 1.2.3.4), und lokale
- Hostnamen (z.B. localhost). Standarmäßig werden nur DNS Hostnamen geprüft.
- </para>
- <para>
- <emphasis>Normale Verwendung</emphasis>
- </para>
- <para>
- Ein normales Beispiel der Verwendung ist anbei:
- <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>
- Das prüft den Hostnamen <varname>$hostname</varname> und wird einen Fehler über
- <code>$validator->getMessages()</code> mit einer nützlichen Fehlermeldung
- auswerfen.
- </para>
- <para>
- <emphasis>Verschiedene Typen von Hostnamen prüfen</emphasis>
- </para>
- <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 Zend_Validate_Hostname Konstanten sind: <constant>ALLOW_DNS</constant> um nur DNS
- 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:
- <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>
- <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 DNS und lokale Hostnamen zu akzeptieren muß das Zend_Validate_Hostname Objekt wie
- folgt initialisiert werden:
- <programlisting language="php"><![CDATA[
- $validator = new Zend_Validate_Hostname(Zend_Validate_Hostname::ALLOW_DNS |
- Zend_Validate_Hostname::ALLOW_IP);
- ]]></programlisting>
- </para>
- <para>
- <emphasis>Internationale Domain Namen prüfen</emphasis>
- </para>
- <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 (IDN)
- 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>
- <para>
- Bis jetzt unterstützen mehr als 50 ccTLDs IDN Domains.
- </para>
- <para>
- Eine IDN Domain zu prüfen ist genauso einfach wie die Verwendung des standard Hostnamen
- Prüfers da IDN Prüfung standardmäßig eingeschaltet ist. Wenn IDN Prüfung ausgeschaltet
- werden soll, kann das entweder durch die Übergabe eines Parameters im
- <classname>Zend_Validate_Hostname</classname> Konstruktor, oder über die
- <code>$validator->setValidateIdn()</code> Methode gemacht werden.
- </para>
- <para>
- Die IDN Prüfung kann ausgeschaltet werden durch die Übergabe eines zweiten Parameters an den
- Zend_Validate_Hostname Konstruktor auf die folgende Art und Weise.
- <programlisting language="php"><![CDATA[
- $validator =
- new Zend_Validate_Hostname(
- array(
- 'allow' => Zend_Validate_Hostname::ALLOW_DNS,
- 'idn' => false
- )
- );
- ]]></programlisting>
- Alternativ kann entweder TRUE oder FALSE an <code>$validator->setValidateIdn()</code>
- übergeben werden, um die IDN Prüfung ein- oder auszuschalten.
- Wenn ein IDN Hostname geprüft wird, der aktuell nicht unterstützt wird, ist es sicher das
- die Prüfung fehlschlagen wird wenn er irgendwelche internationalen Zeichen hat. Wo keine
- ccTLD Datei in Zend/Validate/Hostname existiert, welche die zusätzlichen Zeichen definiert,
- wird eine normale Hostnamen Prüfung durchgeführt.
- </para>
- <para>
- Es sollte beachtet werden das IDNs nur geprüft werden wenn es erlaubt ist DNS Hostnamen zu
- prüfen.
- </para>
- <para>
- <emphasis>Top Leven Domains prüfen</emphasis>
- </para>
- <para>
- Normalerweise wird ein Hostname gegen eine Liste von bekannten TLDs geprüft. Wenn diese
- Funktionalität nicht benötigt wird kann das, auf die gleiche Art und Weise wie die IDN
- Unterstützung, ausgeschaltet werden Die TLD Prüfung kann ausgeschaltet werden indem ein
- dritter Parameter an den Zend_Validate_Hostname Konstruktor übergeben wird. Im folgenden
- Beispiel wird die IDN Prüfung durch den zweiten Parameter unterstützt.
- <programlisting language="php"><![CDATA[
- $validator =
- new Zend_Validate_Hostname(
- array(
- 'allow' => Zend_Validate_Hostname::ALLOW_DNS,
- 'idn' => true,
- 'tld' => false
- )
- );
- ]]></programlisting>
- Alternativ kann entweder TRUE oder FALSE übergeben an
- <code>$validator->setValidateTld()</code> übergeben werden um die TLD Prüfung ein- oder
- auszuschalten.
- </para>
- <para>
- Es sollte beachtet werden das TLDs nur geprüft werden wenn es erlaubt ist DNS Hostnamen zu
- prüfen.
- </para>
- </sect2>
- <!--
- vim:se ts=4 sw=4 et:
- -->
|