Wie kann ich Werte per Post/Get übermitteln (PHP)?
Ich möchte Werte aus einem Array weiter geben.
Da es per POST nicht funktionierte habe ich es per GET versucht um zu sehen was weitergegeben wird. Die entsprechenden Werte werden in der Browsereingabezeile angezeigt. Mir wird jedoch ein Fehler wiedergegeben wonach kein Wert übergeben wurde. Die Ausgabe habe ich erst mal auf diesen einen Wer ($vonTag[1]) beschränkt.
Zeile 55 / 56
$vonTag[1] = ($_GET['vonTag[1]']);
echo "Datum = $vonTag[1] <br>";
Wie kann ich diese Problem lösen?
2 Antworten
Wenn man solchen Problemen auf die Schliche kommen möchte, dann sollte man sich die Dinge einfach mal dumpen lassen - geht unabhängig von der Methode und hilft beim Verständnis
PHP instanziiert mitunter direkt arrays, wenn die Namen der Formelemente entsprechend aussehen.
$_GET['vonTag[1]'] #siehe dump, vonTag array?
$_GET['vonTag'] <- Sollte ein Array sein
$_GET['vonTag'][1] <- der gesuchte Wert
Ohne Gewäher, PHP verhält sich da manchmal unerwartet, wenn es versucht die Dinge möglichst einfach zu gestalten. Daher der Dump:
var_dump($_GET)
Ist wie gesagt mitunter ein nützlicher HElfer.
Geht auch ohne Schlüssel, dann wird einfach ein normale Array erzeugt, die Werte sollten (hoffentlich) in Reihe der Formelemente sein.
Der grund weshalb das nicht geht ist das URL Kodierung genutzt wird. Zeichen die in der URL stehen obwohl sie nicht erlaubt sind werden deshalb mit dieser Kodierung Kodiert. Das Zeichen [ wird z.B. in %5b kodiert und als solches dürftes du es auf dem Server auch empfangen.
Ein besserer Weg um ein array zu übergeben währe ein Daten format wie json zu nutzen. Du könntest egal ob mit GET oder POST ein json objekt das ein array enthält entgegen nehmen und aus diesem die Werte beziehen. JSON enthält zwar auch Zeichen die in der URL kodierung anders kodiert werden, allerdings müssten Werte automatisch dekodiert werden.
lg Suiram1
Interessant. Wusste nicht das php das automatisch als array erkennt.