Tach!
Vielmehr ist es PHP was die Regeln missachtet. Z.B. dadurch, daß sich in $_GET Daten befinden obwohl die Requestmethode eine ganz Andere ist.
Grundsätzlich ist es nunmal so, daß PHPs $_GET Daten hat, wenn es einen QUERY_STRING gibt. Und ein Solcher ist bekanntlich von der Requestmethode unabhängig. Daß das Array $_GET nun heißt ist nicht gerade eine zweckmäßige Wahl für diesen Namen.
$_GET ist ein Name. Welche Regel besagt, dass der korrekt sein muss? Oder dass sich Querystring-Daten nicht in $_GET befinden dürfen?
Aber Du kannst Dich auch davon trennen indem Du einen eigenenen Parser für den QUERY_STRING schreibst, das ist überhaupt kein Problem,
urldecode()
gibt es und wo Du splitten musst, ist auch klar.
Der Sinn dahinter ist konkret welcher? parse_url() und parse_str() gibt es ebenfalls, wenn man den Automatismus namens $_GET nicht nutzen möchte.
dedlfix.