Zend_Validate-Hostname.xml 9.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 21247 -->
  3. <!-- Reviewed: no -->
  4. <sect2 id="zend.validate.set.hostname">
  5. <title>Hostname</title>
  6. <para>
  7. <classname>Zend_Validate_Hostname</classname> erlaubt die Prüfung von Hostnamen mit einem
  8. Set von bekannten Spezifikationen. Es ist möglich drei verschiedene Typen von Hostnamen zu
  9. Prüfen: einen DNS Hostnamen (z.b. domain.com), IP Adressen (z.B. 1.2.3.4), und lokale
  10. Hostnamen (z.B. localhost). Standarmäßig werden nur DNS Hostnamen geprüft.
  11. </para>
  12. <sect3 id="zend.validate.set.hostname.options">
  13. <title>Unterstützte Optionen für Zend_Validate_Hostname</title>
  14. <para>
  15. Die folgenden Optionen werden für <classname>Zend_Validate_Hostname</classname>
  16. unterstützt:
  17. </para>
  18. <itemizedlist>
  19. <listitem>
  20. <para>
  21. <emphasis><property>allow</property></emphasis>: Definiert die Art des
  22. Hostnamens welche verwendet werden darf. Siehe <link
  23. linkend="zend.validate.set.hostname.types">Hostname Typen</link> für
  24. Details.
  25. </para>
  26. </listitem>
  27. <listitem>
  28. <para>
  29. <emphasis><property>idn</property></emphasis>: Definiert ob
  30. <acronym>IDN</acronym> Domains erlaubt sind oder nicht. Diese Option ist
  31. standardmäßig <constant>TRUE</constant>.
  32. </para>
  33. </listitem>
  34. <listitem>
  35. <para>
  36. <emphasis><property>ip</property></emphasis>: Erlaubt es eine eigene IP Prüfung
  37. zu definieren. Diese Option ist standardmäßig eine neue Instanz von
  38. <classname>Zend_Validate_Ip</classname>.
  39. </para>
  40. </listitem>
  41. <listitem>
  42. <para>
  43. <emphasis><property>tld</property></emphasis>: Definiert ob
  44. <acronym>TLD</acronym>s geprüft werden. Diese Option ist standardmäßig
  45. <constant>TRUE</constant>.
  46. </para>
  47. </listitem>
  48. </itemizedlist>
  49. </sect3>
  50. <sect3 id="zend.validate.set.hostname.basic">
  51. <title>Normale Verwendung</title>
  52. <para>
  53. <emphasis>Normale Verwendung</emphasis>
  54. </para>
  55. <programlisting language="php"><![CDATA[
  56. $validator = new Zend_Validate_Hostname();
  57. if ($validator->isValid($hostname)) {
  58. // Hostname scheint gültig zu sein
  59. } else {
  60. // Hostname ist ungülig; Gründe dafür ausdrucken
  61. foreach ($validator->getMessages() as $message) {
  62. echo "$message\n";
  63. }
  64. }
  65. ]]></programlisting>
  66. <para>
  67. Das prüft den Hostnamen <varname>$hostname</varname> und wird einen Fehler über
  68. <methodname>getMessages()</methodname> mit einer nützlichen Fehlermeldung
  69. auswerfen.
  70. </para>
  71. </sect3>
  72. <sect3 id="zend.validate.set.hostname.types">
  73. <title>Verschiedene Typen von Hostnamen prüfen</title>
  74. <para>
  75. Es kann gewünscht sein auch IP Adressen, lokale Hostnamen, oder eine Kombination aller
  76. drei erlaubten Typen zu prüfen. Das kann gemacht werden durch die Übergabe eines
  77. Parameters an <classname>Zend_Validate_Hostname</classname> wenn dieser initialisiert
  78. wird. Der Parameter sollte ein Integer sein, welcher die Typen von Hostnamen auswählt
  79. die erlaubt sind. Hierfür können die <classname>Zend_Validate_Hostname</classname>
  80. Konstanten verwendet werden.
  81. </para>
  82. <para>
  83. Die Zend_Validate_Hostname Konstanten sind: <constant>ALLOW_DNS</constant> um nur
  84. <acronym>DNS</acronym> Hostnamen zu erlauben, <constant>ALLOW_IP</constant> um IP
  85. Adressen zu erlauben, <constant>ALLOW_LOCAL</constant> um lokale Hostnamen zu erlauben,
  86. und <constant>ALLOW_ALL</constant> um alle drei Typen zu erlauben. Um nur IP Adressen zu
  87. prüfen kann das folgende Beispiel verwendet werden:
  88. </para>
  89. <programlisting language="php"><![CDATA[
  90. $validator = new Zend_Validate_Hostname(Zend_Validate_Hostname::ALLOW_IP);
  91. if ($validator->isValid($hostname)) {
  92. // Hostname scheint gültig zu sein
  93. } else {
  94. // Hostname ist ungülig; Gründe dafür ausdrucken
  95. foreach ($validator->getMessages() as $message) {
  96. echo "$message\n";
  97. }
  98. }
  99. ]]></programlisting>
  100. <para>
  101. Genau wie die Verwendung von <constant>ALLOW_ALL</constant> alle Typen von Hostnamen
  102. akzeptiert, können diese Typen kombiniert werden um Kombinationen zu erlauben. Um zum
  103. Beispiel DNS und lokale Hostnamen zu akzeptieren muß das Zend_Validate_Hostname Objekt
  104. wie folgt initialisiert werden:
  105. </para>
  106. <programlisting language="php"><![CDATA[
  107. $validator = new Zend_Validate_Hostname(Zend_Validate_Hostname::ALLOW_DNS |
  108. Zend_Validate_Hostname::ALLOW_IP);
  109. ]]></programlisting>
  110. </sect3>
  111. <sect3 id="zend.validate.set.hostname.idn">
  112. <title>Internationale Domain Namen prüfen</title>
  113. <para>
  114. Einige Länder Code Top Level Domains (ccTLDs), wie 'de' (Deutschland), unterstützen
  115. internationale Zeichen in Domain Namen. Diese sind als Internationale Domain Namen
  116. (<acronym>IDN</acronym>) bekannt. Diese Domains können mit
  117. <classname>Zend_Validate_Hostname</classname> geprüft werden, mit Hilfe von erweiterten
  118. Zeichen die im Prüfprozess verwendet werden.
  119. </para>
  120. <note>
  121. <title>IDN Domains</title>
  122. <para>
  123. Bis jetzt unterstützen mehr als 50 ccTLDs IDN Domains.
  124. </para>
  125. </note>
  126. <para>
  127. Eine <acronym>IDN</acronym> Domain zu prüfen ist genauso einfach wie die Verwendung des
  128. standard Hostnamen Prüfers da <acronym>IDN</acronym> Prüfung standardmäßig eingeschaltet
  129. ist. Wenn <acronym>IDN</acronym> Prüfung ausgeschaltet werden soll, kann das entweder
  130. durch die Übergabe eines Parameters im <classname>Zend_Validate_Hostname</classname>
  131. Constructor, oder über die <methodname>setValidateIdn()</methodname> Methode gemacht
  132. werden.
  133. </para>
  134. <para>
  135. Die <acronym>IDN</acronym> Prüfung kann ausgeschaltet werden durch die Übergabe eines
  136. zweiten Parameters an den <classname>Zend_Validate_Hostname</classname> Constructor auf
  137. die folgende Art und Weise.
  138. </para>
  139. <programlisting language="php"><![CDATA[
  140. $validator =
  141. new Zend_Validate_Hostname(
  142. array(
  143. 'allow' => Zend_Validate_Hostname::ALLOW_DNS,
  144. 'idn' => false
  145. )
  146. );
  147. ]]></programlisting>
  148. <para>
  149. Alternativ kann entweder <constant>TRUE</constant> oder <constant>FALSE</constant> an
  150. <methodname>setValidateIdn()</methodname> übergeben werden, um die
  151. <acronym>IDN</acronym> Prüfung ein- oder auszuschalten. Wenn ein <acronym>IDN</acronym>
  152. Hostname geprüft wird, der aktuell nicht unterstützt wird, ist sicher das die Prüfung
  153. fehlschlagen wird wenn er irgendwelche internationalen Zeichen hat. Wo keine ccTLD Datei
  154. in <filename>Zend/Validate/Hostname</filename> existiert, welche die zusätzlichen
  155. Zeichen definiert, wird eine normale Hostnamen Prüfung durchgeführt.
  156. </para>
  157. <note>
  158. <title>IDN Prüfung</title>
  159. <para>
  160. Es sollte beachtet werden das <acronym>IDN</acronym>s nur geprüft werden wenn es
  161. erlaubt ist <acronym>DNS</acronym> Hostnamen zu prüfen.
  162. </para>
  163. </note>
  164. </sect3>
  165. <sect3 id="zend.validate.set.hostname.tld">
  166. <title>Top Level Domains prüfen</title>
  167. <para>
  168. Normalerweise wird ein Hostname gegen eine Liste von bekannten
  169. <acronym>TLD</acronym>s geprüft. Wenn diese Funktionalität nicht benötigt wird kann
  170. das, auf die gleiche Art und Weise wie die <acronym>IDN</acronym> Unterstützung,
  171. ausgeschaltet werden Die <acronym>TLD</acronym> Prüfung kann ausgeschaltet werden
  172. indem ein dritter Parameter an den <classname>Zend_Validate_Hostname</classname>
  173. Constructor übergeben wird. Im folgenden Beispiel wird die <acronym>IDN</acronym>
  174. Prüfung durch den zweiten Parameter unterstützt.
  175. </para>
  176. <programlisting language="php"><![CDATA[
  177. $validator =
  178. new Zend_Validate_Hostname(
  179. array(
  180. 'allow' => Zend_Validate_Hostname::ALLOW_DNS,
  181. 'idn' => true,
  182. 'tld' => false
  183. )
  184. );
  185. ]]></programlisting>
  186. <para>
  187. Alternativ kann entweder <constant>TRUE</constant> oder <constant>FALSE</constant>
  188. übergeben an <methodname>setValidateTld()</methodname> übergeben werden um die
  189. <acronym>TLD</acronym> Prüfung ein- oder auszuschalten.
  190. </para>
  191. <note>
  192. <title>TLD Prüfung</title>
  193. <para>
  194. Es sollte beachtet werden das <acronym>TLD</acronym>s nur geprüft werden wenn es
  195. erlaubt ist <acronym>DNS</acronym> Hostnamen zu prüfen.
  196. </para>
  197. </note>
  198. </sect3>
  199. </sect2>