| |
| * Link führt ins Internet |
|
| |
Arbeiten mit dem $QUERY_STRING
|
|
Ein anderes Problem tritt auf, wenn Sie Formularfelder und Variablen im URL mit denselben Namen verwenden. In solchen Fällen wird vorrangig die URL dekodiert. Sie können dennoch auf den Inhalt der Variablen zugreifen.
In diesem Fall steht Ihnen die globale Variable $QUERY_STRING zur Verfügung, die den gesamten Teil nach dem ?-Zeichen enthält. Hier müssen Sie sich zwar selbst um die Analyse der einzelnen Elemente kümmern, umgehen damit jedoch die automatische Auswertung des PHP-Interpreters. Da Ihnen der Zugriff auf die Formularvariable verwehrt ist, bleibt auch hier die Nutzung der Servervariablen. Das folgende Beispiel zeigt die Anwendung:
<html>
<head>
<title>Formular</title>
</head>
<body>
<?php
echo "Daten aus gesendet: $gesendet<p>";
echo "Daten aus $QUERY_STRING: $QUERY_STRING<P>";
if (is_array($_POST)) {
foreach($_POST as $key=>$element) {
echo "<b>$key</b>: $element<br>";
}
}
?>
<form action="<?php echo $PHP_SELF?>?gesendet=ja" method="post">
<input type="hidden" name="gesendet" value="no">
<input type="submit">
</form>
</body>
</html>
|
Ausgabe
Daten aus gesendet: no
Daten aus $QUERY_STRING: gesendet=ja
gesendet: no
|
Sie sehen zusätzlich, wie Sie die URL zur Datenübertragung auch innerhalb eines Formulars nutzen können. Interessant ist die Reaktion bei der Anwendung der Übertragungsmethode GET im Formular:
<form action="<?php echo $PHP_SELF?>?gesendet=ja" method="get">
<input type="hidden" name="gesendet" value="no">
<input type="submit">
|
Ausgabe
Daten aus gesendet: no
Daten aus $QUERY_STRING: gesendet=no
|
In diesem Fall nehmen die Formularelemente den Platz der Daten im URL ein, die bereits im action-Attribut angelegten Parameter werden ignoriert. Dieses Verhalten hat nichts mit PHP zu tun, sondern basiert auf HTTP und den Vorschriften zur Verarbeitung von Daten mit Hilfe der Methoden GET und POST.
Beim weiterreichen von Daten ist die Anwendung von $QUERY_STRING sogar besonders bequem. Wenn Sie auf Cookies verzichten müssen und eine Anwendung erstellen, die aus mehreren Skripten besteht, ist eine "Verfolgung" des Anwenders unerlässlich. Es werden dann meist so genannte Session-IDs verwendet, welche per Zufallsprinzip aus zufällig erzeugten Nummern und Zeichenfolgen zusammengesetzt sind, die den Anwender immer wieder eindeutig zuordnen.
| Hinweis: Zu den Themen Cookies und Sessions erfahren Sie im Abschnitt Cookies und Sessions-Management mehr. |
|
|
|
|
|
|
|