Schorsch: Mehrdimensionales Array per Formular übergeben

Guten Morgen Forumsleute

Ich habe:

a.php                        b.php
 -------------                   -------------
|             |    Formular     |             |
| mehrdimens- |            >    | Zugriff/    |
| inoales     | ------------->  | Ausgabe     |
| Array       |            >    | des Arrays  |
|             |                 |             |
 -------------                   -------------

Frage:

Wie bringe ich ein mehrdimensionales Array von einer PHP Seite auf eine andere?
Ist es möglich?
Wenn nicht, wie bringt man dann einen mehrdimensionalen Array von a nach b?

Was bisher geschah:

Im Archiv und bei Google tönt es ziemlich unterschiedlich:
-speichere den Array in eine Datei und binde diese in b.php ein...
-produziere massenhaft <input type="hidden" name="testarray[]"....
-Kann man nicht
-Kann man nur für 1 Dimensionale Arrays
-Arbeite mit explode <-> implode
-Kann man, aber man muss mit zwei Funktionen (vergass, wie sie heissen) codieren und anschliessend decodieren... (klappte bei mir aber nicht)

Das soll funktionieren:

<?php
$gesendet = $_POST['gesendet'];
$testarray = $_POST['testarray'];

if((!empty($gesendet)) AND ($gesendet == "gesendet")){print "<pre>"; print_r($testarray); print "</pre>";}
else{
$testarray = array( array(1 => 'a', 'three' => 1),
     array(1 => 'b', 'three' => 2),
                    array(1 => 'c', 'three' => 3),
                    array(1 => 'd', 'three' => 4),
                    array(1 => 'e', 'three' => 5)
    );
echo <<<gilegile

<FORM METHOD=POST ACTION="b.php">
  <INPUT TYPE="hidden" name="gesendet" value="gesendet">
  <INPUT TYPE="hidden" name="testarray" value="$testarray">
  Wenn ich hier klicke, moechte ich den Testarray per Formular senden und auf der naechsten Seite ausgeben...<BR><BR>
  <INPUT TYPE="submit" value="und ab die Post!">
 </FORM>
gilegile;
}
?>

=================================================================

Dieses Skript gibt mir nur

Array

aus, anstelle des Inhaltes des Arrays.

Seid gegrüsst
Schorsch

  1. Moin!

    Was bisher geschah:

    Im Archiv und bei Google tönt es ziemlich unterschiedlich:
    -speichere den Array in eine Datei und binde diese in b.php ein...
    -produziere massenhaft <input type="hidden" name="testarray[]"....
    -Kann man nicht
    -Kann man nur für 1 Dimensionale Arrays
    -Arbeite mit explode <-> implode
    -Kann man, aber man muss mit zwei Funktionen (vergass, wie sie heissen) codieren und anschliessend decodieren... (klappte bei mir aber nicht)

    Codieren und in einem Hidden-Feld übertragen funktioniert. Genauso funktionieren auch Sessions (wäre aber, wenn du nur dieses eine Array übertragen willst, etwas zuviel des Guten).

    serialize() setzt dir jede beliebige Variable in einen Textstring um.
    base64_encode() setzt dir alle Sonderzeichen eines Strings in vernünftige Buchstaben-ASCII-Werte um.

    base64_decode() macht die Umsetzung der Sonderzeichen rückgängig.
    unserialize() setzt dir einen String in eine Variable um.

    In dieser Reihenfolge angewandt, kriegst du ein Array durch ein hidden-Feld an die Seite 2 übermittelt.

    - Sven Rautenberg

    --
    "Beim Stuff für's Web gibts kein Material, was sonst das Zeugs ist, aus dem die Sachen sind."
    (fastix®, 13. Oktober 2003, 02:26 Uhr -> </archiv/2003/10/60137/#m338340>)
    1. moin...

      schläft der sven eigentlich nie? ;-)

      ... und gute nacht

      Oggy

      1. Moin!

        schläft der sven eigentlich nie? ;-)

        Doch, von 3 bis 9 etwa.

        Außerdem könnte ich die Frage zurückgeben. ;)

        ... und gute nacht

        Ebenso.

        - Sven Rautenberg

        --
        "Beim Stuff für's Web gibts kein Material, was sonst das Zeugs ist, aus dem die Sachen sind."
        (fastix®, 13. Oktober 2003, 02:26 Uhr -> </archiv/2003/10/60137/#m338340>)
    2. Moin!

      Wow! Danke Sven! Entgegen meinen Erwartungen klappte es tasächlich, ist ja wunderbar.

      1. serialize()
      2. base64_encode()
      3. im hidden Feld abschicken
      4. base64_decode()
      5. unserialize()

      E voilà der Array steht in seiner mehrdimensionalen unversehrten Jungfräulichkeit erneut vor einem... genauso wie Mann sich's wünscht.

      Schöner Tag allerseits

      Schorsch

      1. Hello,

        Wow! Danke Sven! Entgegen meinen Erwartungen klappte es tasächlich, ist ja wunderbar.

        Hättest Du mitgelesen, wärst Du schon eher drauf gestoßen.
        [pref:t=63455&m=360065]

        Leider lässt sich das aktuelle Forum noch nicht durchsuchen, oder?

        Grüße (auch an die fleißigen Forengeister)

        Tom