Homepage-Webhilfe Event-Banner

Umgebungsinformationen und Formulardaten

In PHP gibt es drei wichtige assoziative Arrays, mit welchen Umgebungsinformationen, URL-Parameter sowie Formulardaten abgerufen werden können. Des Weiteren kann man von PHP aus, einige Seiteninformationen ändern, um somit z. B. eine Weiterleitung durchzuführen.


Servervariablen-Screenshot PHP bietet den Zugriff auf verschiedene Umgebungsinformationen an. Hierfür wird das assoziative Array $_SERVER genutzt. Bei $_SERVER handelt es sich um eine sogenannte Superglobale. Superglobale sind in jedem Gültigkeitsbereich (Scope) verfügbar. Um alle verfügbaren Umgebungsinformationen zu sehen, können Sie entweder das Array mittels print_r ausgeben oder sich den Bereich „PHP Variables“ in der Ausgabe der Funktion phpinfo() anschauen (siehe Bild).

Das untenstehende Beispiel sollte selbsterklärend sein. Ein paar Informationen noch, was Sie mit den Informationen anfangen können: Der User-Agent kann z. B. für einfache serverseitige Statistiken genutzt werden, da dieser, sofern er vom Benutzer nicht verändert wurde, den Browser und das Betriebssystem enthält. Die Remote-Adresse enthält die IP-Adresse des Besuchers und kann z. B. beim Dokumentieren von Anmeldungen auf der Webseite verwendet werden (bitte lokal geltendes Gesetz beachten!). Des Weiteren finden sich in den Umgebungsinformationen einige Pfadangaben, um den Dateinamen des aktuellen Skripts / der aktuellen Anfrage bzw. dessen Pfad zu ermitteln.

<?php
echo 'Host: '.$_SERVER['HTTP_HOST'].'<br />';
echo 'User-Agent: '.$_SERVER['HTTP_USER_AGENT'].'<br />';
echo 'Server-Adresse: '.$_SERVER['SERVER_ADDR'].'<br />';
echo 'Remote-Adresse: '.$_SERVER['REMOTE_ADDR'].'<br />';
echo 'Protokoll: '.$_SERVER['SERVER_PROTOCOL'];
?>
Vorschau

Eine Weiterleitung oder andere Änderungen am HTTP-Header können Sie mittels der Funktion header() durchführen. Um mit der Funktion header() eine Weiterleitung durchzuführen, übergeben Sie der Funktion eine Zeichenkette mit dem Inhalt 'Location: pfad/zur/datei.php'. Alle weiteren Header haben einen identischen Aufbau: Name des Header-Felds, Doppelpunkt, Leerzeichen und der Wert für das Header-Feld. Alle verfügbaren Header-Felder entnehmen Sie RFC 2616. Der Aufruf der Funktion header() muss zwingend vor allen anderen Ausgaben und jeglichem HTML-Code erfolgen, andernfalls kann die Weiterleitung nicht mehr erfolgen, da der HTTP-Header bereits vollständig versendet wurde. Nach dem Aufruf der header()-Funktion muss die Funktion exit() aufgerufen werden, um somit die Skriptausführung zu stoppen. exit ist ein Sprachkonstrukt, weshalb die Klammern weggelassen werden können.

<?php
header('Location: umgebung.php');
exit();
?>
Vorschau

URL-Parameter werden, wie der Name schon sagt, in der URL mitgegeben. Dabei wird hinter dem Ordner- und Dateiname ein Fragezeichen ? angehängt. Anschließend folgt eine Angabe in der Form name=wert. Werden mehrere Werte übergeben, so wird dazwischen ein Und-Zeichen & angegeben. Dies sieht dann z. B. so aus: ?name1=wert1&name2=wert2&name3=wert3. Diese URL-Parameter können Sie z. B. in HTML-Links mitgeben. Des Weiteren werden solche Parameter zur Weitergabe von Formulardaten verwendet, sofern die Methode im form-Element auf GET eingestellt ist (bzw. das Attribut weggelassen wird). Der Zugriff auf die URL-Parameter von PHP aus, erfolgt mittels des assoziativen Arrays $_GET, wobei es sich um eine Superglobale handelt. Möchten Sie prüfen, ob ein URL-Parameter mitgesendet wurde, so können Sie die Funktion isset() verwenden. Der Funktion isset() übergeben Sie als Parameter die zu prüfende Variable (siehe Beispiel). Als Rückgabewert gibt die Funktion einen Wert vom Typ Boolean zurück.

<?php
echo 'Wert a: '.(isset($_GET['a']) ? $_GET['a'] : '-').'<br />';
echo 'Wert b: '.(isset($_GET['b']) ? $_GET['b'] : '-').'<br />';
?>
<br />
<b>Links:</b><br />
<a href="url-parameter.php">A: -, B: -</a><br />
<a href="url-parameter.php?a=7">A: 7, B: -</a><br />
<a href="url-parameter.php?b=4">A: -, B: 4</a><br />
<a href="url-parameter.php?a=8&b=3">A: 8, B: 3</a>
Vorschau

Bei den meisten HTML-Formularen wird als Methode POST verwendet. Der Vorteil von POST ist, dass die Daten „unsichtbar“ versendet werden. Des Weiteren ist es dem Besucher dadurch z. B. nicht möglich, einen Link der Seite zu speichern, in welcher die Formulardaten mit enthalten sind (was in den meisten Fällen unerwünscht wäre). Die URL-Parameter und somit die Methode GET wird hauptsächlich bei der Filterung von Daten (z. B. aus einer Datenbank) oder auch für die in Shops, Foren und Blogs verbreiteten Blätter-Funktionen verwendet. Auf die (POST-)Formulardaten können Sie in PHP mittels dem superglobalen assoziativen Array $_POST zugreifen. Die Funktion isset() kann auch hier zur Prüfung, ob der Wert vorhanden ist, verwendet werden.

<?php
echo 'Wert "anrede": '.(isset($_POST['anrede']) ? $_POST['anrede'] : '-').'<br />';
echo 'Wert "vorname": '.(isset($_POST['vorname']) ? $_POST['vorname'] : '-').'<br />';
echo 'Wert "nachname": '.(isset($_POST['nachname']) ? $_POST['nachname'] : '-').'<br />';
?>
<br />
<form action="formulardaten.php" method="post">
	<table>
		<tr>
			<td style="width: 100px;">Anrede:</td>
			<td>
				<select name="anrede">
					<option value="H">Herr</option>
					<option value="F">Frau</option>
				</select>
			</td>
		</tr>
		<tr>
			<td style="width: 100px;">Vorname:</td>
			<td><input type="text" name="vorname" /></td>
		</tr>
		<tr>
			<td style="width: 100px;">Nachname:</td>
			<td><input type="text" name="nachname" /></td>
		</tr>
		<tr>
			<td></td>
			<td><input type="submit" value="Absenden" /></td>
		</tr>
	</table>
</form>
Vorschau
Um unsere Webseite für Sie optimal zu gestalten und fortlaufend verbessern zu können, verwenden wir Cookies. Durch die weitere Nutzung der Webseite stimmen Sie der Verwendung von Cookies zu. Weitere Informationen OK