$HTTP_POST_VARS ausgeben
Ralf Rapude
- php
0 J0J00 AlexBausW0 Ralf Rapude
Hallo Forum,
ich kämpfe hier schon den ganzen Tag mit der Versendung eines Formulars über PHP. Das Problem ist, dass ich irgendwie auf den Inhalt von "HTTP_POST_VARS" zugreifen möchte und das nicht hinkriege.
Gebe ich z.B "echo count($HTTP_POST_VARS);" im script an, wird mir 7 ausgegeben. Wunderbar und richtig scheint mir. Gebe ich allerdings "echo $HTTP_POST_VARS" im script an, bekomme ich als Meldung immer nur "Array". Das weiß ich aber selber. Was ich möchte, ist der Inhalt dieses Arrays. Und das habe ich heute den lieben langen Tag versucht hinzukriegen und zwar in allen Variationen. Sämtliche in Frage kommenden Möglichkeiten zum Beackern von Arrays sind durchprobiert, ich habe versucht das Array über eine Schleife auszulesen, ich habs über each(), list() und alles mögliche andere probiert. Nix geht. Ab und zu habe ich nochmal die Fehlermeldung gekriegt, HTTP_POST_VARS sei kein richtiges Array und deshalb ginge dieses und jenes nicht, oder ich habe keine Fehlermeldung bekommen aber auch keine Ausgabe. Das einzige was geklappt hat, war, wenn ich das Array "direkt" anspreche. Also z.B. "echo $HTTP_POST_VARS['bezeichnung1']". Und das heißt doch eigentlich, das es diese Array Elemente auch gibt. Was auch prima hingehauen hat war folgendes:
for($i=0;$i<count($HTTP_POST_VARS);$i++){
echo "huhu<br>";
};
Wird mir siebenmal "huhu" ausgegeben. Ist ja wohl auch richtig. Aber das kann ich ja auch nicht brauchen, obwohl der Ansatz richtig scheint.
Was ich gerne hätte, wäre folgendes:
Einfach eine Liste, was das Array HTTP_POST_VARS denn nun in Gottes Namen für values enthält. Das muß doch irgendwie machbar sein. Wenn mir da jemand weiterhelfen könnte, wäre ich diesem Forum noch dankbarer, als ich es sowieso schon bin, denn das würde zwar mein Problem noch nicht lösen, aber ich wäre schon mal einen großen Schritt weiter.
Vielen Dank für die Hilfe
Gruß Ralf
alle Variablen und ihre Werte bekommst du so raus - $HTTP_POST_VARS ist halt ein stinknormales Array:
foreach($HTTP_POST_VARS as $key => $value) echo "Variable: $key => Value: $value";
ich benutze aber gerne diese Kontruktion, damit hat man mehr Kontrolle:
if (isset($HTTP_POST_VARS))
{$get = array("ersteVariable", "zweite");
foreach ($get as $k) ${$k} = $HTTP_POST_VARS[$k];}
Hallo Ralf,
Was ich gerne hätte, wäre folgendes:
Einfach eine Liste, was das Array HTTP_POST_VARS denn nun in Gottes Namen für values enthält. Das muß doch irgendwie machbar sein. Wenn mir da jemand weiterhelfen könnte, wäre ich diesem Forum noch dankbarer, als ich es sowieso schon bin, denn das würde zwar mein Problem noch nicht lösen, aber ich wäre schon mal einen großen Schritt weiter.
Es gibt mindestens zwei Lösungen, von denen die ersten imho mit Vorsicht zu genießen ist :-)
a) extract( $assocarray ); // erzeugt für jedes Element eine Variable mit dem Bezeichner des keys und dem Wert des values.
b) while( $key = key( $assocarray ) ) { print "$key: $assocarray[$key]<br>\n"; }
Ich hoffe das hilft Dir weiter.
Gruß AlexBausW
Moin Joe ;)
[php]
Gruß AlexBausW
he, hast du das Lager gewechselt? *g*
Viele Gruesse,
n.d.p.
Moin Joe ;)
hind ;-)
[php]
he, hast du das Lager gewechselt? *g*
Nein, nein, nur ergänzt :-) Das Webverzeichnis (http://ahnenforschung.net/), daß ich anfang letzten Jahres für einen Freund entwickelt hatte, wurde komplett umgeschrieben.
Dabei ist das "Backend" (also Suchmaschine bzw. Katalog) in "Perl->mySQL" und die Administrativen Seiten, bzw. diverse Userformulare in PHP entwickelt, weil es sich irgendwie anbot (*g*), und ich es für eine anstehende Auftragsbarbeit irgendwann mal können muss ;-)
Allerdings ist mir PHP immer noch ein wenig suspect. Vor allem das Handling der Parameterübergabe (besonders bei gleichnamigen Feldern) ist gewöhnungsbedürftig.
Gruß AlexBausW
Hi,
Vielen Dank. Das hat mir sehr weitergeholfen. Wenn man ewig an solchen Sachen rumfrickelt, dreht es sich irgendwann nur noch im Kopf. Ist dann ziemlich gut, wenn man Hilfe bekommt, um die Richtung die das Denken nehmen sollte wieder zu erkennen.
Gruß Ralf