MudGuard: Kompletten REQUEST ausgeben

Beitrag lesen

Hi,

Es wird also einer der Parameter von PHP in $_GET unterschlagen, obwohl die letzte Zeile der Ausgabe zeigt, daß PHP durchaus Kenntnis von dem ersten Parameter hat.
Nein. Es wird nicht wirklich ein Parameter unterschlagen.

Doch. Es wird der erste Parameter namens a unterschlagen.
Wieso sollten verschiedene Parameter nicht denselben Namen haben dürfen?

Worin unterscheidet sich diesbezüglich der Name "a" von "a[]"?

Es tritt genau das ein, was (meines Erachtens nach) auch zu erwarten ist.

Du erwartest, daß bei a=b&a=c die Hälfte unterschlagen wird, bei a[]=b&a[]=c dagegen nicht? Warum?

Erst wird a der Wert "b" zugewiesen und dieser dann gleich wieder durch die neue Zuweisung (a=c) mit dem Wert "c" überschrieben.
Wenn man dieses Verhalten kennt, dann sollte es keine Probleme geben.

Bei Perl stehen alle Werte zur Verfügung über die normalerweise für den Parameterzugriff verwendete CGI::param($name);

In Java-Servlets stehen alle Werte zur Verfügung über die normalerweise für den Parameterzugriff verwendete Klasse HttpServletRequest.

Bei PHP steht nur der letzte Wert zur Verfügung über das normalerweise für den Parameterzugriff verwendete $_GET, es sei denn, der Name endet auf [].

Ich wüßte jetzt auch nicht, welchen Sinn es hätte, zweimal den gleichen Parameter mit unterschiedlichen Werten zu übergeben...

Siehe Antwort von dedlfix, <select multiple="multiple">.

Da muß man dann halt den Query-String selbst zerlegen, wenn man so etwas macht...

Wenn man PHP benutzt, ja.

cu,
Andreas

--
Warum nennt sich Andreas hier MudGuard?
O o ostern ...
Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.