Gleiche Variablen übergeben

Hallo,

ich habe in einer Dokumentation gesehen, dass sich jemand Variablen mit dem gleichen Namen übergeben lässt und diese danach auch noch unterscheiden kann. Wenn ich dass in PHP versuche und mir mit:

while (list($var, $value) = each($HTTP_GET_VARS)) {
$send_vars .= "$var=$value ";
}

ausgeben lasse, bekomme ich immer nur die letzte Variable zurück. Bei dem Beispiel wurde Perl benutzt, derjenige greift über ein Array auf die Variablen zu. Kann man so etwas auch in PHP programmieren? Ok, ich könnte mir den kompletten Query String nehmen und auseinander splitten. Gibts noch etwas eleganteres? Es sollte auch mit der POST Methode funktionieren.

Gruß
Till

while (list($var, $value) = each($HTTP_GET_VARS)) {
$send_vars .= "$var=$value ";
}

foreach ($HTTP_GET_VARS as $var => $value)
{
$send_vars .= „$var=$value“;
}

Deine Version müsste aber auch funktionieren. Bei POST musst Du statt dessen $HTTP_POST_VARS statt $HTTP_GET_VARS nehmen.

Gruß
Marian

Wie es prinzipiell mit POST geht ist klar. Nur was ist wenn zwei Variablennamen gleich sind?

http://domain.de/script.php?test=1&test=2

Wenn du im Formular an den Namen folgendes hinhängst: []
(Zwei sich anschauende eckige Klammern) also:

dann kannst du auf der aufgerufenen Seite diese Variable als array benutzen.

ob dies auch tut wenn die PHP Einstellung register_globals auf off steht weiss ich nicht, aber die ist meistens eh auf on.

MFG
Thomas

Hi,

danke für den Tipp. Die Variablen werden aber nicht durch ein Formular übergeben, sondern auf der Kommandozeile. Das Skript dient zum Austausch von Daten in Backendsystemen.

Gruß
Till

PS: Lustige email Adresse hast du :smile:

wenn du die var-namen auf der shell mehrfach mit [] uebergibst baut php automatisch arrays. genauso, wie oben schon erwaehnt wurde. wenn du den var-namen mehrfach uebergibst ueberschriebt er den var-namen jeweils.
wenn du arrays uebergeben willst, koenntest du diese vorher serialisieren

09.22:je@1@booster:/var/www/html-projects
$ cat test.php
#!/usr/lib/cgi-bin/php4

<?php phpinfo(); ?>

09.22:je@1@booster:/var/www/html-projects
$ ./test.php foo[]=eins foo[]=zwei |html2text |grep -2 foo
 Array
 (
\_REQUEST["foo"] [0] =\> eins
 [1] =\> zwei
 )
 Array
 (
\_GET["foo"] [0] =\> eins
 [1] =\> zwei
 )
--
 (
\_SERVER["argv"] [0] =\> ./test.php
 [1] =\> foo[]=eins
 [2] =\> foo[]=zwei
 )
\_SERVER["argc"] 3
09.22:je@1@booster:/var/www/html-projects
$