Zend_Validate-Hostname.xml 9.5 KB

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