Zend_Validate-Hostname.xml 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 18028 -->
  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. <para>
  13. <emphasis>Normale Verwendung</emphasis>
  14. </para>
  15. <para>
  16. Ein normales Beispiel der Verwendung ist anbei:
  17. <programlisting language="php"><![CDATA[
  18. $validator = new Zend_Validate_Hostname();
  19. if ($validator->isValid($hostname)) {
  20. // Hostname scheint gültig zu sein
  21. } else {
  22. // Hostname ist ungülig; Gründe dafür ausdrucken
  23. foreach ($validator->getMessages() as $message) {
  24. echo "$message\n";
  25. }
  26. }
  27. ]]></programlisting>
  28. Das prüft den Hostnamen <varname>$hostname</varname> und wird einen Fehler über
  29. <code>$validator->getMessages()</code> mit einer nützlichen Fehlermeldung
  30. auswerfen.
  31. </para>
  32. <para>
  33. <emphasis>Verschiedene Typen von Hostnamen prüfen</emphasis>
  34. </para>
  35. <para>
  36. Es kann gewünscht sein auch IP Adressen, lokale Hostnamen, oder eine Kombination aller drei
  37. erlaubten Typen zu prüfen. Das kann gemacht werden durch die Übergabe eines Parameters an
  38. <classname>Zend_Validate_Hostname</classname> wenn dieser initialisiert wird. Der Parameter
  39. sollte ein Integer sein, welcher die Typen von Hostnamen auswählt die erlaubt sind. Hierfür
  40. können die <classname>Zend_Validate_Hostname</classname> Konstanten verwendet werden.
  41. </para>
  42. <para>
  43. Die Zend_Validate_Hostname Konstanten sind: <constant>ALLOW_DNS</constant> um nur DNS
  44. Hostnamen zu erlauben, <constant>ALLOW_IP</constant> um IP Adressen zu erlauben,
  45. <constant>ALLOW_LOCAL</constant> um lokale Hostnamen zu erlauben, und
  46. <constant>ALLOW_ALL</constant> um alle drei Typen zu erlauben. Um nur IP Adressen zu prüfen
  47. kann das folgende Beispiel verwendet werden:
  48. <programlisting language="php"><![CDATA[
  49. $validator = new Zend_Validate_Hostname(Zend_Validate_Hostname::ALLOW_IP);
  50. if ($validator->isValid($hostname)) {
  51. // Hostname scheint gültig zu sein
  52. } else {
  53. // Hostname ist ungülig; Gründe dafür ausdrucken
  54. foreach ($validator->getMessages() as $message) {
  55. echo "$message\n";
  56. }
  57. }
  58. ]]></programlisting>
  59. </para>
  60. <para>
  61. Genau wie die Verwendung von <constant>ALLOW_ALL</constant> alle Typen von Hostnamen
  62. akzeptiert, können diese Typen kombiniert werden um Kombinationen zu erlauben. Um zum
  63. Beispiel DNS und lokale Hostnamen zu akzeptieren muß das Zend_Validate_Hostname Objekt wie
  64. folgt initialisiert werden:
  65. <programlisting language="php"><![CDATA[
  66. $validator = new Zend_Validate_Hostname(Zend_Validate_Hostname::ALLOW_DNS |
  67. Zend_Validate_Hostname::ALLOW_IP);
  68. ]]></programlisting>
  69. </para>
  70. <para>
  71. <emphasis>Internationale Domain Namen prüfen</emphasis>
  72. </para>
  73. <para>
  74. Einige Länder Code Top Level Domains (ccTLDs), wie 'de' (Deutschland), unterstützen
  75. internationale Zeichen in Domain Namen. Diese sind als Internationale Domain Namen (IDN)
  76. bekannt. Diese Domains können mit <classname>Zend_Validate_Hostname</classname> geprüft
  77. werden, mit Hilfe von erweiterten Zeichen die im Prüfprozess verwendet werden.
  78. </para>
  79. <para>
  80. Bis jetzt unterstützen mehr als 50 ccTLDs IDN Domains.
  81. </para>
  82. <para>
  83. Eine IDN Domain zu prüfen ist genauso einfach wie die Verwendung des standard Hostnamen
  84. Prüfers da IDN Prüfung standardmäßig eingeschaltet ist. Wenn IDN Prüfung ausgeschaltet
  85. werden soll, kann das entweder durch die Übergabe eines Parameters im
  86. <classname>Zend_Validate_Hostname</classname> Konstruktor, oder über die
  87. <code>$validator->setValidateIdn()</code> Methode gemacht werden.
  88. </para>
  89. <para>
  90. Die IDN Prüfung kann ausgeschaltet werden durch die Übergabe eines zweiten Parameters an den
  91. Zend_Validate_Hostname Konstruktor auf die folgende Art und Weise.
  92. <programlisting language="php"><![CDATA[
  93. $validator =
  94. new Zend_Validate_Hostname(
  95. array(
  96. 'allow' => Zend_Validate_Hostname::ALLOW_DNS,
  97. 'idn' => false
  98. )
  99. );
  100. ]]></programlisting>
  101. Alternativ kann entweder TRUE oder FALSE an <code>$validator->setValidateIdn()</code>
  102. übergeben werden, um die IDN Prüfung ein- oder auszuschalten.
  103. Wenn ein IDN Hostname geprüft wird, der aktuell nicht unterstützt wird, ist es sicher das
  104. die Prüfung fehlschlagen wird wenn er irgendwelche internationalen Zeichen hat. Wo keine
  105. ccTLD Datei in Zend/Validate/Hostname existiert, welche die zusätzlichen Zeichen definiert,
  106. wird eine normale Hostnamen Prüfung durchgeführt.
  107. </para>
  108. <para>
  109. Es sollte beachtet werden das IDNs nur geprüft werden wenn es erlaubt ist DNS Hostnamen zu
  110. prüfen.
  111. </para>
  112. <para>
  113. <emphasis>Top Leven Domains prüfen</emphasis>
  114. </para>
  115. <para>
  116. Normalerweise wird ein Hostname gegen eine Liste von bekannten TLDs geprüft. Wenn diese
  117. Funktionalität nicht benötigt wird kann das, auf die gleiche Art und Weise wie die IDN
  118. Unterstützung, ausgeschaltet werden Die TLD Prüfung kann ausgeschaltet werden indem ein
  119. dritter Parameter an den Zend_Validate_Hostname Konstruktor übergeben wird. Im folgenden
  120. Beispiel wird die IDN Prüfung durch den zweiten Parameter unterstützt.
  121. <programlisting language="php"><![CDATA[
  122. $validator =
  123. new Zend_Validate_Hostname(
  124. array(
  125. 'allow' => Zend_Validate_Hostname::ALLOW_DNS,
  126. 'idn' => true,
  127. 'tld' => false
  128. )
  129. );
  130. ]]></programlisting>
  131. Alternativ kann entweder TRUE oder FALSE übergeben an
  132. <code>$validator->setValidateTld()</code> übergeben werden um die TLD Prüfung ein- oder
  133. auszuschalten.
  134. </para>
  135. <para>
  136. Es sollte beachtet werden das TLDs nur geprüft werden wenn es erlaubt ist DNS Hostnamen zu
  137. prüfen.
  138. </para>
  139. </sect2>
  140. <!--
  141. vim:se ts=4 sw=4 et:
  142. -->