Post Array Keys gehen verloren

Bash, Shell, PHP, Python, Perl, CGI
NickD
Posts: 3
Joined: 2010-04-16 23:14

Post Array Keys gehen verloren

Post by NickD » 2010-04-16 23:28

Hallo,

ich habe einen Root-Server mit PHP 5.2.6+lenny8 und dem Suhosin Patch 0.9.6.2.
Mir ist nun ein sehr merkwürdiges Problem aufgefallen...wenn ich über ein Formular (Post) ein Array versende, geht der Key verloren bzw. wird durch eine Nummer ersetzt (0,1,2,3...) und ich kann keine strings als Keys benutzen.

Beispiel:

Code: Select all

<form action="" method="post">
<input type="hidden" name="foo[bar]" value="true">
<input type="submit" name="senden" value="senden">
</form>


Beim senden des Forms sollte nun ein Post-Array "foo" enstehen, mit dem key "bar" und dem Value "true".
Daraus wird jedoch ein Post-Array "foo" mit dem key "0" und dem value "true".
Das gleich passiert wenn ich folgendes Formular absende:

Code: Select all

<form action="" method="post">
<input type="hidden" name="foo[4]" value="true">
<input type="submit" name="senden" value="senden">
</form>


oder aus einer nicht durchlaufenden key-nummerierung wird:

Code: Select all

<form action="" method="post">
<input type="hidden" name="foo[1]" value="true">
<input type="hidden" name="foo[3]" value="true">
<input type="hidden" name="foo[5]" value="true">
<input type="submit" name="senden" value="senden">
</form>


folgendes:

Code: Select all

{ ["foo"]=>  array(3) { [0]=>  string(4) "true",[1]=>  string(4) "true",[2]=>  string(4) "true",} ["senden"]=>  string(15) "senden" } 


Ich hatte den Verdacht das es am Suhosin Patch liegt und habe den Simulation mode aktiviert (suhosin.simulation = On), jedoch konnte ich keine Veränderung feststellen bzw. eine Änderung in der PHP.ini.

Hier habe ich mal ein Test-Script hinterlegt: Test

Eine stundenlange Suche über Google brachte ebenfalls keinen Erfolg....ich hoffe ihr könnt helfen!!!

LG

NickD
Posts: 3
Joined: 2010-04-16 23:14

Re: Post Array Keys gehen verloren

Post by NickD » 2010-04-17 16:10

Hat keiner eine Idee???

User avatar
Joe User
Project Manager
Project Manager
Posts: 11602
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Post Array Keys gehen verloren

Post by Joe User » 2010-04-17 16:33

Dat is kein Live-Chat hier...
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

NickD
Posts: 3
Joined: 2010-04-16 23:14

Re: Post Array Keys gehen verloren

Post by NickD » 2010-04-18 10:39

Joe User wrote:Dat is kein Live-Chat hier...

Ich bitte um Entschuldigung!

User avatar
Joe User
Project Manager
Project Manager
Posts: 11602
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Post Array Keys gehen verloren

Post by Joe User » 2010-04-18 12:43

Halb so wild, aber Dein Problem ist einfach zu speziell, so dass sich selbst bei Google auf die Schnelle keine Lösung finden lässt.
Hast Du schon versucht einen Bugreport zu erstellen?
Es wird vermutlich kein Bug sein, aber dort bekommst Du wahrscheinlich eher eine Lösung oder zumindest eine Erläuterung warum es nicht wie gewünscht funktioniert. Wäre einen Versuch wert...
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

jan10001
Anbieter
Posts: 727
Joined: 2004-01-02 12:17

Re: Post Array Keys gehen verloren

Post by jan10001 » 2010-04-18 15:23

Unterstützt PHP überhaupt verschachtelte Arrays? Ich glaube nicht und das ist dein Problem. (Das Array wird beim Senden in ein anderes Array gepackt.)
Nebenbei kann der Code ja auch gar nicht gehn, wenn man sich den Ablauf des Scripts vorstellt. Wundert mich das es da keine Error Meldung gab.

Warum machst du es nicht so?

Code: Select all

<form action="" method="post">
<input type="hidden" name="bar" value="true">
<input type="submit" name="senden" value="senden">
</form>


Den Wert fragst du dann mit ab:

Code: Select all

$_POST["bar"];
Last edited by jan10001 on 2010-04-18 16:07, edited 2 times in total.

Roger Wilco
Administrator
Administrator
Posts: 6001
Joined: 2004-05-23 12:53

Re: Post Array Keys gehen verloren

Post by Roger Wilco » 2010-04-19 08:36

jan10001 wrote:Unterstützt PHP überhaupt verschachtelte Arrays?

Code: Select all

$ cat test.php ; php test.php
<?php
$verschachtelt = array('Frage' => array('Unterstuetzt', 'PHP', 'ueberhaupt', 'verschachtelte', 'Arrays'),
  'Antwort' => array('Ja', 'Nebensatz' => array('Tut', 'es')));
var_dump($verschachtelt);
?>
array(2) {
  ["Frage"]=>
  array(5) {
    [0]=>
    string(12) "Unterstuetzt"
    [1]=>
    string(3) "PHP"
    [2]=>
    string(10) "ueberhaupt"
    [3]=>
    string(14) "verschachtelte"
    [4]=>
    string(6) "Arrays"
  }
  ["Antwort"]=>
  array(2) {
    [0]=>
    string(2) "Ja"
    ["Nebensatz"]=>
    array(2) {
      [0]=>
      string(3) "Tut"
      [1]=>
      string(2) "es"
    }
  }
}


Siehe auch http://www.php.net/manual/de/language.types.array.php und http://www.php.net/manual/de/language.variables.external.php.

jan10001
Anbieter
Posts: 727
Joined: 2004-01-02 12:17

Re: Post Array Keys gehen verloren

Post by jan10001 » 2010-04-19 19:07

Die Frage anders: Unterstützt das CGI Interface überhaupt verschachtelte Arrays? Ich glaube nicht, denn bei der Übertragung der Daten werden diese doch normalerweise als Key/Werte Paare zerlegt. Folglich hätten wir als Key "foo[bar]" und als Wert "true", feststellen das der Key eigentlich ein Array ist kann CGI nicht.

Roger Wilco
Administrator
Administrator
Posts: 6001
Joined: 2004-05-23 12:53

Re: Post Array Keys gehen verloren

Post by Roger Wilco » 2010-04-19 20:09

jan10001 wrote:Unterstützt das CGI Interface überhaupt verschachtelte Arrays?

Ja, tut es. Tatsächlich ist dem CGI bzw. dem HTTP sogar egal, ob das verschachtelte Arrays sind, da beide nicht "wissen", was Arrays überhaupt sind und die Daten ganz agnostisch verarbeiten.

getphp
Posts: 25
Joined: 2005-05-03 20:57

Re: Post Array Keys gehen verloren

Post by getphp » 2010-04-19 21:36

Es gab mal eine PHP-Version mit diesem Fehler - ich finde aber gerade nichts mehr online dazu. Hast du denn schon ein Update probiert?

User avatar
Joe User
Project Manager
Project Manager
Posts: 11602
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Post Array Keys gehen verloren

Post by Joe User » 2010-04-19 21:43

PHP-Updates bei Debian? Wieviele schwerwiegende PHP-Bugs sind bei Debian noch offen? Da wird dieser kleine Bug noch lange nicht gefixt sein...
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

getphp
Posts: 25
Joined: 2005-05-03 20:57

Re: Post Array Keys gehen verloren

Post by getphp » 2010-04-19 23:21

Also in der aktuellsten stable von Debian funktioniert es wie es sollte.

EdRoxter
Posts: 483
Joined: 2006-01-06 03:23
Location: Neben Bonn

Re: Post Array Keys gehen verloren

Post by EdRoxter » 2010-04-21 13:24

Deshalb: Dotdeb!

Anonymous

Re: Post Array Keys gehen verloren

Post by Anonymous » 2010-04-22 00:39

EdRoxter wrote:Deshalb: Dotdeb!

Sehr genial, Danke :)