Übergebene Arrays verlieren alle außer dem ersten Element

8

Ich habe ein seltsames Problem. Ich habe kürzlich meine Anwendung von meiner lokalen xampp-Installation auf einen SUSE Enterprise Server 11 migriert und alles funktioniert, aber dieses eine Ding macht mich verrückt und ich kann keine Lösung finden.

Bei der Übergabe von Arrays entweder über GET oder POST mit dieser Syntax:

%Vor%

Ich bekomme nur das erste Element von Latom. Beachten Sie, dass dies nur ein einfaches Beispiel ist, das ich versucht habe, nachdem der Fehler an anderen Stellen aufgetreten ist, an denen die Weitergabe von Arrays erforderlich ist.

%Vor%

Ausgaben

%Vor%

aber

%Vor%

gibt

%Vor%

Genau das gleiche passiert mit allen POST-Anfragen.

Ich benutze PHP Version 5.3.8. Ich vermute, das Problem ist eine Serverkonfiguration, aber ich konnte nichts über dieses Problem finden.

Antwort auf Kommentare:

Das Gleiche passiert, wenn ich eine beliebige Anzahl von Variablen übergebe.

%Vor%

gibt

%Vor%

php.ini kann hier

gefunden werden

Sie sollten das Verhalten in Aktion sehen können hier

Die Quelldatei dieser PHP-Datei ist

%Vor%     
cpaulik 05.04.2012, 09:38
quelle

6 Antworten

5

Nun, mein Systemadministrator hat ein Systemupdate und einen Neustart durchgeführt und das Problem ist nun behoben. Keine Konfigurationsdateien wurden geändert.

    
cpaulik 12.04.2012 14:48
quelle
4

Getestet auf meinem Server und es funktioniert gut für mich:

%Vor%

Schauen Sie in Ihrer php.ini im Bereich Datenverarbeitung nach und sehen Sie sich die Werte an. Setzen Sie alles auf die Standardeinstellungen zurück, starten Sie den Webserver neu und versuchen Sie es erneut. PHP.ini-Standardeinstellungen für die Datenverarbeitung

    
gspatel 09.04.2012 17:26
quelle
2

Ein Beispiel im Link gibt Array ( [0] => 52.447529 ) jedes Mal aus, wenn keine Variablen übergeben wurden. So scheint es, dass Sie ein Problem mit Code haben, der nicht mit diesem Code verknüpft ist: "

%Vor%

'

    
rdo 12.04.2012 08:21
quelle
0

Hmm .. vielleicht hängt es irgendwie damit zusammen kritischer Schwachstellen-Fehler ? Hat Ihr XAMPP dieselbe PHP-Version wie die Produktion? Ich weiß, dass es ähnliche Probleme geben könnte, wenn Sie zu viele Daten posten (sowohl in Bezug auf die Datei- / Postgröße als auch auf die Anzahl der Params). Wie wäre es mit einem Upgrade auf 5.3.10?

    
Artjom Kurapov 11.04.2012 10:08
quelle
0

Versuchen Sie $_REQUEST anstelle von $_GET und / oder $_POST

    
A.N.M. Saiful Islam 15.04.2012 18:03
quelle
0

Der wahrscheinlichste Grund für diesen Fehler ist, dass jemand "max_input_vars" auf 0 oder 1 in php.ini gesetzt hat. "max_input_vars" ist standardmäßig auf 1000 eingestellt und kann in php.ini überschrieben werden.

Ich habe in letzter Zeit das gleiche Verhalten mit einer anderen Ursache festgestellt - ein Sicherheitspatch, der auf eine PHP 5.2-Installation zurückportierte, implementierte teilweise "max_input_vars", verpasste aber einige wichtige Bits. Unterschiedliche Ursache, gleiches Ergebnis.

Relevanter PHP-Quellcode kann in main / php_variables.c gefunden werden. In PHP 5.3.8 kam der Gummi in der Funktion php_register_variable_ex auf die Straße.

Es gibt einen SAPI "treat_data" -Hook, den PHP benutzt, wenn er Strings wie "foo = bar & amp; asdf [] = 1 & amp; asdf [] = 2" analysiert - Ein anderes SAPI könnte eine eigene Implementierung haben.

>     
Noah Balmer 03.05.2012 23:58
quelle

Tags und Links