Wie kann ich Werte per Post/Get übermitteln (PHP)?

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.


Suiram1  17.01.2025, 18:06

Interessant. Wusste nicht das php das automatisch als array erkennt.

KarlRanseierIII  17.01.2025, 21:50
@Suiram1

Geht auch ohne Schlüssel, dann wird einfach ein normale Array erzeugt, die Werte sollten (hoffentlich) in Reihe der Formelemente sein.

dieTrolle 
Beitragsersteller
 17.01.2025, 18:03

super, funzt astrein

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

Woher ich das weiß:Hobby