SELFPHP

SELFPHP-Druckversion
Original Adresse dieser Seite:
http://www.selfphp.de/praxisbuch/praxisbuchseite.php?site=196&group=33
© 2001-2024 E-Mail SELFPHP Inh. Damir Enseleit, info@selfphp.de
© 2005-2024 E-Mail PHP5 Praxisbuch - Matthias Kannengiesser, m.kannengiesser@selfphp.de


Gleichlautende Variablen


Bei der automatischen Generierung von Daten kann es vorkommen, dass mehrere gleichlautende Variablen unterschiedliche Werte enthalten:

<a href="liste.php?x=1&x=2&x=3">Liste</a>

In diesem Fall extrahiert PHP nur die letzte Variable und den dazugehörigen Wert. Die Ausgabe von echo $x; würde im vorliegenden Beispiel 3 ausgeben. Wenn Sie sich jedoch alle Daten mithilfe von $QUERY_STRING ausgeben lassen,echo $_SERVER[QUERY_STRING];

werden Sie feststellen, dass tatsächlich sämtliche Daten übertragen wurden. Sie müssten in diesem speziellen Fall die Daten selbst mithilfe der Funktion explode() dekodieren. Die Funktion zerlegt eine Zeichenkette anhand eines Trennzeichens in ein eindimensionales Array. Anschließend erfolgt die nochmalige Trennung durch Gleichheitszeichen.

Beispiel – link.php

<html>
<head>
<title>Verweis</title>
</head>
<body>
<a href="liste.php?x=1&x=2&x=3">Liste</a>
</form>
</body>
</html>
Beispiel – liste.php
<?php

$daten = explode("&",$_SERVER[QUERY_STRING]);

foreach ($daten as $element) {
  $werte[] = explode("=",$element);
}

foreach ($werte as $element) {
  echo "$element[0]: $element[1]<br>";
}

?>

Ausgabe
x: 1
x: 2
x: 3

Hinweis: Sie sollten gleichnamige Variablen möglichst vermeiden und es erst gar nicht zu einer solchen Situation kommen lassen.