| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 15617 -->
- <!-- Reviewed: no -->
- <sect2 id="zend.validate.set.hostname">
- <title>Hostname</title>
- <para>
- Zend_Validate_Hostname 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 <code>$hostname</code> 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
- Zend_Validate_Hostname 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
- Zend_Validate_Hostname Konstanten verwendet werden.
- </para>
- <para>
- Die Zend_Validate_Hostname Konstanten sind: <code>ALLOW_DNS</code> um nur DNS Hostnamen zu
- erlauben, <code>ALLOW_IP</code> um IP Adressen zu erlauben, <code>ALLOW_LOCAL</code> um
- lokale Hostnamen zu erlauben, und <code>ALLOW_ALL</code> 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 <code>ALLOW_ALL</code> 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 Zend_Validate_Hostname geprüft werden, mit Hilfe von
- erweiterten Zeichen die im Prüfprozess verwendet werden.
- </para>
- <para>
- Zur Zeit beinhaltet die Liste der unterstützten ccTLDs:
- <itemizedlist>
- <listitem>
- <para>at (Österreich)</para>
- </listitem>
- <listitem>
- <para>ch (Schweiz)</para>
- </listitem>
- <listitem>
- <para>li (Liechtenstein)</para>
- </listitem>
- <listitem>
- <para>de (Deutschland)</para>
- </listitem>
- <listitem>
- <para>fi (Finnland)</para>
- </listitem>
- <listitem>
- <para>hu (Ungarn)</para>
- </listitem>
- <listitem>
- <para>no (Norwegen)</para>
- </listitem>
- <listitem>
- <para>se (Schweden)</para>
- </listitem>
- </itemizedlist>
- </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 Zend_Validate_Hostname
- 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(Zend_Validate_Hostname::ALLOW_DNS, 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(Zend_Validate_Hostname::ALLOW_DNS,
- true,
- 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:
- -->
|