1
0
mirror of https://github.com/php/doc-de.git synced 2026-03-24 15:22:14 +01:00
Files
Martin Samesch af760731c6 Sync with EN
2025-06-12 19:10:30 +02:00

504 lines
16 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: a124543dd3f6b1e5567b07420d23899e582514dc Maintainer: sammywg Status: ready -->
<!-- Reviewed:yes -->
<!-- Rev-Revision: cdaea0421544885f02ff3d36bd203dc01b78299e Reviewer: samesch -->
<refentry role="variable" xml:id="reserved.variables.server" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>$_SERVER</refname>
<refpurpose>Informationen über Server und Ausführungsumgebung</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<para>
<varname>$_SERVER</varname> ist ein &array;, das Informationen wie Header,
Pfade und die verschiedenen Wege, das Skript anzusprechen beinhaltet. Die
Einträge in diesem Array werden vom Webserver erstellt, weshalb es keine
Garantie dafür gibt, dass jeder Webserver alle diese Einträge unterstützt -
Server können einige weglassen oder andere Einträge unterstützen, die hier
nicht aufgeführt sind. Die meisten dieser Variablen werden jedoch in der
<link xlink:href="&url.rfc;3875">CGI/1.1-Spezifikation</link> ausgewiesen
und sind wahrscheinlich definiert.
</para>
<note>
<simpara>
Wenn PHP auf der <link linkend="features.commandline">Kommandozeile</link>
läuft, sind die meisten dieser Einträge nicht verfügbar oder haben keine
Bedeutung.
</simpara>
</note>
<para>
Zusätzlich zu den unten aufgelisteten Elementen erstellt PHP weitere
Elemente mit Werten aus Anfrage-Headern. Diese Einträge erhalten die
Bezeichnung <literal>HTTP_</literal>, gefolgt vom Namen des Headers in
Großbuchstaben und mit Unterstrichen anstelle von Bindestrichen. Zum
Beispiel wäre der <literal>Accept-Language</literal>-Header als
<code>$_SERVER['HTTP_ACCEPT_LANGUAGE']</code> verfügbar.
</para>
</refsect1>
<refsect1 role="indices">
&reftitle.indices;
<para>
<variablelist>
<varlistentry>
<term>'<varname>PHP_SELF</varname>'</term>
<listitem>
<simpara>
Der Dateiname des aktuell ausgeführten Skripts, relativ zum
Document-Root. Beispielsweise enthält
<varname>$_SERVER['PHP_SELF']</varname> in einem Skript, das über die
Adresse <filename>http://example.com/foo/bar.php</filename> aufgerufen
wird, den Wert <filename>/foo/bar.php</filename>. Die Konstante
<link linkend="language.constants.magic">__FILE__</link> enthält
den vollständigen Pfad und Dateinamen der aktuellen (&zb; via include
eingebundenen) Datei.
</simpara>
<simpara>
Falls PHP als Kommandozeilenprogramm läuft, enthält diese Variable den
Namen des Skripts.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<link linkend="reserved.variables.argv">argv</link>'</term>
<listitem>
<simpara>
Das Array der an das Skript übergebenen Argumente. Wenn das Skript auf
der Kommandozeile ausgeführt wird, ermöglicht dies den Zugriff auf die
Kommandozeilenparameter im C-Stil. Wird das Skript via GET aufgerufen,
enthält die Variable den Querystring.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<link linkend="reserved.variables.argc">argc</link>'</term>
<listitem>
<simpara>
Enthält die Anzahl der per Kommandozeile an das Skript übergebenen
Parameter (sofern das Skript auf der Kommandozeile ausgeführt wird).
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>GATEWAY_INTERFACE</varname>'</term>
<listitem>
<simpara>
Enthält die Version der vom Server verwendete CGI-Spezifikation, &zb;
<literal>'CGI/1.1'</literal>.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>SERVER_ADDR</varname>'</term>
<listitem>
<simpara>
Die IP-Adresse des Servers, auf dem das aktuelle Skript ausgeführt
wird.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>SERVER_NAME</varname>'</term>
<listitem>
<simpara>
Der Hostname des Servers, auf dem das aktuelle Skript ausgeführt wird.
Wenn das Skript auf einem virtuellen Host läuft, wird dieser Wert vom
virtuellen Host bestimmt.
</simpara>
<note>
<simpara>
Unter Apache 2 müssen <literal>UseCanonicalName = On</literal> und
<literal>ServerName</literal> gesetzt werden. Ansonsten reflektiert
dieser Wert den Hostnamen, der vom Client gesendet wurde und
vorgetäuscht werden kann. Es ist nicht sicher, sich in einem
sicherheitsabhängigen Umfeld auf diesen Wert zu verlassen.
</simpara>
</note>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>SERVER_SOFTWARE</varname>'</term>
<listitem>
<simpara>
Die Identifikation der verwendeten Server-Software, die bei einer
Antwort auf den eingegangenen Request verwendet wird.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>SERVER_PROTOCOL</varname>'</term>
<listitem>
<simpara>
Der Name und die Versionsnummer des verwendeten Übertragungsprotokolls,
mittels dessen die aktuelle Seite aufgerufen wurde, &zb;
<literal>'HTTP/1.0'</literal>.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>REQUEST_METHOD</varname>'</term>
<listitem>
<simpara>
Die Requestmethode, die verwendet wurde, um die Seite aufzurufen; &zb;
<literal>'GET'</literal>, <literal>'HEAD'</literal>,
<literal>'POST'</literal>, <literal>'PUT'</literal>.
</simpara>
<note>
<para>
Ist die Requestmethode <literal>HEAD</literal>, wird ein PHP-Skript
beendet, nachdem die Header gesendet wurden (sofern Ausgaben ohne die
Verwendung des Ausgabepuffers (output buffering) erzeugt werden).
</para>
</note>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>REQUEST_TIME</varname>'</term>
<listitem>
<simpara>
Der Timestamp des Zeitpunkts, an dem der Request eintraf.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>REQUEST_TIME_FLOAT</varname>'</term>
<listitem>
<simpara>
Der Timestamp des Zeitpunkts, an dem der Request eintraf, in
Mikrosekunden-Genauigkeit.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>QUERY_STRING</varname>'</term>
<listitem>
<simpara>
Sofern vorhanden, der Querystring, mittels dessen auf die Seite
zugegriffen wurde.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>DOCUMENT_ROOT</varname>'</term>
<listitem>
<simpara>
Das Document-Root-Verzeichnis, unter dem das aktuelle Skript ausgeführt
wird, so wie es in der Konfiguration des Servers festgelegt wurde.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>HTTPS</varname>'</term>
<listitem>
<simpara>
Wird auf einen nicht-leeren Wert gesetzt, wenn das Skript via HTTPS
aufgerufen wurde.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>REMOTE_ADDR</varname>'</term>
<listitem>
<simpara>
Die IP-Adresse, von der aus der Benutzer die aktuelle Seite ansieht.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>REMOTE_HOST</varname>'</term>
<listitem>
<simpara>
Der Name des Hosts, von dem aus der Benutzer die aktuelle Seite
ansieht. Der Auflösung der IP-Adresse (Reverse DNS Lookup) basiert auf
der <varname>REMOTE_ADDR</varname> des Benutzers.
</simpara>
<note>
<simpara>
Der Webserver muss so konfiguriert sein, dass er diese Variable
erzeugt. Zum Beispiel muss bei Apache in der &httpd.conf; die
Direktive <literal>HostnameLookups On</literal> gesetzt werden, damit
sie existiert. Siehe auch <function>gethostbyaddr</function>.
</simpara>
</note>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>REMOTE_PORT</varname>'</term>
<listitem>
<simpara>
Der vom Rechner des Benutzers verwendete Port, um mit dem Webserver zu
kommunizieren.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>REMOTE_USER</varname>'</term>
<listitem>
<simpara>
Der beglaubigte Benutzer.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>REDIRECT_REMOTE_USER</varname>'</term>
<listitem>
<simpara>
Der beglaubigte Benutzer, falls der Request intern weitergeleitet
wurde.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>SCRIPT_FILENAME</varname>'</term>
<listitem>
<para>
Der absolute Pfad des aktuell ausgeführten Skripts.
<note>
<para>
Wenn ein Skript als CLI mit einem relativen Pfad wie
<filename>file.php</filename> oder <filename>../file.php</filename>
ausgeführt wird, enthält
<varname>$_SERVER['SCRIPT_FILENAME']</varname> den vom Benutzer
angegebenen relativen Pfad.
</para>
</note>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>SERVER_ADMIN</varname>'</term>
<listitem>
<simpara>
Der Wert, der für die SERVER_ADMIN-Direktive (für Apache) im
Konfigurationsfile des Webservers eingestellt wurde. Wenn das Skript
auf einem Virtuellen Host läuft, wird der für diesen Virtuellen Host
definierte Wert verwendet.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>SERVER_PORT</varname>'</term>
<listitem>
<simpara>
Der Port, der auf dem Server vom Webserver für die Kommunikation
genutzt wird. In einer Standardumgebung ist dies
<literal>'80'</literal>; wenn Sie beispielsweise SSL verwenden, wird
dieser Wert auf den Port geändert, über den Sie Ihre verschlüsselte
HTTP-Kommunikation abwickeln.
</simpara>
<note>
<simpara>
Unter Apache 2 müssen <literal>UseCanonicalName = On</literal> sowie
<literal>UseCanonicalPhysicalPort = On</literal> gesetzt werden, um
den physikalischen (wirklichen) Port zu erhalten; andernfalls kann
dieser Wert gefälscht werden und gibt dann den Wert des physikalischen
Ports zurück oder auch nicht. Es ist nicht sicher, sich in einem
sicherheitsabhängigen Umfeld auf diesen Wert zu verlassen.
</simpara>
</note>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>SERVER_SIGNATURE</varname>'</term>
<listitem>
<simpara>
Ein String, der die Version der verwendeten Serversoftware und den
Namen des Virtuellen Hosts enthält, der, sofern die Option auf dem
Server aktiviert ist, an die servergenerierten Seiten angefügt wird.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>PATH_TRANSLATED</varname>'</term>
<listitem>
<simpara>
Auf dem Dateisystem (nicht dem Document-Root!) basierender Pfad zum
aktuellen Skript, nachdem der Server ein Virtual-to-Real-Mapping
durchgeführt hat.
</simpara>
<note>
<simpara>
Apache 2-Benutzer können die Direktive <literal>AcceptPathInfo =
On</literal> in der <filename>httpd.conf</filename> verwenden, um
einen Wert für <envar>PATH_INFO</envar> zu definieren.
</simpara>
</note>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>SCRIPT_NAME</varname>'</term>
<listitem>
<simpara>
Enthält den Pfad zum aktuellen Skript. Dies ist nützlich für Seiten,
die auf sich selbst verweisen sollen. Die Konstante
<link linkend="language.constants.magic">__FILE__</link> enthält
den vollständigen Pfad und Dateinamen der aktuellen (&zb; via include
eingebundenen) Datei.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>REQUEST_URI</varname>'</term>
<listitem>
<simpara>
Der URI, der angegeben wurde, um auf die aktuelle Seite zuzugreifen,
beispielsweise '<literal>/index.html</literal>'.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>PHP_AUTH_DIGEST</varname>'</term>
<listitem>
<simpara>
Wenn die Digest HTTP Authentication verwendet wird, wird diese Variable
mit dem Inhalt des vom Client gesendeten 'Authorization'-Headers
gefüllt, welchen Sie für eine adäquate Validierung nutzen sollten.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>PHP_AUTH_USER</varname>'</term>
<listitem>
<simpara>
Wenn die HTTP Authentication verwendet wird, wird diese Variable mit
dem vom Benutzer angegebenen Usernamen gefüllt.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>PHP_AUTH_PW</varname>'</term>
<listitem>
<simpara>
Wenn die HTTP Authentication verwendet wird, wird diese Variable mit
dem vom Benutzer angegebenen Passwort gefüllt.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>AUTH_TYPE</varname>'</term>
<listitem>
<simpara>
Wenn die HTTP Authentication verwendet wird, wird diese Variable mit
dem verwendeten HTTP-Authentifizierungsmechanismus gefüllt.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>PATH_INFO</varname>'</term>
<listitem>
<simpara>
Enthält, sofern vorhanden, den Teil des Pfadnamens hinter dem Namen des
PHP-Skripts, aber vor dem Query-String. Wenn zum Beispiel das aktuelle
Skript mittels dem URI
<filename>http://www.example.com/php/path_info.php/some/stuff?foo=bar</filename>
aufgerufen wird, würde <varname>$_SERVER['PATH_INFO']</varname>
<literal>/some/stuff</literal> enthalten.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>ORIG_PATH_INFO</varname>'</term>
<listitem>
<simpara>
Originalversion von '<varname>PATH_INFO</varname>' vor der Verarbeitung
durch PHP.
</simpara>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example xml:id="variable.server.basic">
<title><varname>$_SERVER</varname>-Beispiel</title>
<programlisting role="php">
<![CDATA[
<?php
echo $_SERVER['SERVER_NAME'];
?>
]]>
</programlisting>
&example.outputs.similar;
<screen>
<![CDATA[
www.example.com
]]>
</screen>
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
&note.is-superglobal;
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><link linkend="book.filter">Die Filter-Erweiterung</link></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->