GET, wo ist da der Fehler?

kevkev

Erfahrenes Mitglied
Hallo,

Ich habe ein Array in dem alle formularfelder (name) drinstehen, die von der vorherigen seite per GET abgesendet wurden.

In array1 wäre z.b.
[Array ( [0] => Name [1] => farbe [2] => farbe2 [3] => title [4] => mail [5] => )

Wenn ich diese aber nun per schleife ausgeben will:
PHP:
for ($d=0; $d<count($array); $d++){
		echo $_GET[$array[$d]]."<br>";
}

kommen nur <br>´s raus, aber keine infos die in der url steht.

In der URL steht das:
index.php?Name=1&farbe=green&farbe2=yellow&title=3&mail=4&submit=Abschicken

Aber wieso gibt er mir nicht die übergebenen GET Veriablen aus? Wenn ich es mit $_GET["Name"] probiere, gibt er mir "1" aus, aber in der schleife eben nicht.

Gruß kevin
 
Ei ist doch klar. in der URL steht eindeutig
Name=1

Du kannst per $_GET oder $_POST keine Arrays übermitteln, kannst aber direkt auf die Werte zugreifen:
$_GET['farbe'] gibt dir "green" zurück,
$_GET['farbe2'] gibt dir "yellow" zurück,
usw...
 
Zuletzt bearbeitet:
Moritz123 hat gesagt.:
Ei ist doch klar. in der URL steht eindeutig
Name=1

Du kannst per $_GET oder $_POST keine Arrays übermitteln, kannst aber direkt auf die Werte zugreifen:
$_GET['farbe'] gibt dir "green" zurück,
$_GET['farbe2'] gibt dir "yellow" zurück,
usw...

Hi,

Ja, das ist klar, aber im array steht doch z.b. nur "farbe". Da die ganzen sache 100% dynamisch sein müssen, muss dort irgendwie ein array hin.

$array[3] ist ja gleich title, title ist laut URL 3.
Wenn ich nun echo $_GET ["title"] eingebe, kommt 3 raus.
Wenn ich aber $_GET[$array[3]] eingebe, kommt nix raus. $array[3] soll "title" ersetzen, da das ja dynamisch sein muss.

gruß kevin
 
Wie ich bereits gesagt habe, kannst du per $_GET oder $_POST keine Arrays übergeben.
Wenn du unbedingt einen Array auf der Ergebnisseite brauchst, musst Du dir Ihn wieder aus dem Query-String zusammensetzen lassen.
 
Moritz123 hat gesagt.:
Wie ich bereits gesagt habe, kannst du per $_GET oder $_POST keine Arrays übergeben.
Wenn du unbedingt einen Array auf der Ergebnisseite brauchst, musst Du dir Ihn wieder aus dem Query-String zusammensetzen lassen.
Mhh, ok.
Wie heißt den der QueryString? ist der immer verfügbar, oder ist das browser abhängig?

gruß kevin
 
Der Query-String is das, was hinter dem Datei-Namen steht.
Also in deinem Fall:
Name=1&farbe=green&farbe2=yellow&title=3&mail=4&submit=Abschicken

Um den kompletten Query-String in eine Variable zu laden kannst Du beispielsweise so etwas machen:
PHP:
$qs = $_SERVER['QERY_STRING'];
Wenn du nur die einzelnen Teile des Query-Strings haben möchtest, fragst Du sie so ab, wie ich bereits weiter oben beschrieben habe.
Du musst einfach abwägen, was für dich günstiger/einfacher ist.
 
Moritz123 hat gesagt.:
Der Query-String is das, was hinter dem Datei-Namen steht.
Also in deinem Fall:
Name=1&farbe=green&farbe2=yellow&title=3&mail=4&submit=Abschicken

Um den kompletten Query-String in eine Variable zu laden kannst Du beispielsweise so etwas machen:
PHP:
$qs = $_SERVER['QERY_STRING'];
Wenn du nur die einzelnen Teile des Query-Strings haben möchtest, fragst Du sie so ab, wie ich bereits weiter oben beschrieben habe.
Du musst einfach abwägen, was für dich günstiger/einfacher ist.

Ok, danke.
Ich würde dann das ganze mit explode splitten,gibt es da noch eine leichtere alternative?

gruß kevin
 
hi,

ich denke mal, du hast einen Denkfehler beim Zugriff auf das Get-Array.

Der Zugriff erfolg nicht über $_GET[$array[3]], sondern über $_GET[3]. Damit sollte er dir den vierten Eintrag ausgeben.
 
Hi,

Ist dann in der query-variable diese get-variablen gespichert?

z.b.
$qs = $_SERVER['QERY_STRING'];

echo $qs[3];

meinst du das so?

gruß kevin
 
Holla!
ich sehe grade, ich habe in Query das U vergessen.
Es muss natürlich heißen:
PHP:
$_SERVER['QUERY_STRING']
 
Zurück