Björn: Arrays mit session_register() versenden ??

Hallo,

gibt es ein Problem Array's mit session_register() an ein Dokument zu übergeben ???

hab nämlich 3 Arrays deren Inhalt ich im 1.Dokument lesen kann,
bsp.:

for ($i = 0; $i < 10; $i++){
        echo "$anzahl[$i]";
    }

sobald ich sie aber losschicke:

@session_start();
   session_register('$anzahl[$i]','$größe[$i]','$code[$i]');
   $loc= "somewhere.php?".SID;
   Header("Location: $loc");

und sie mir im Empfangs-Dokument (somewhere.php)
auch wieder mit "for(...)" auslesen will ist nichts vorhanden

session_start();
session_register('$anzahl[$i]','$größe[$i]','$code[$i]');

Danke für jeden Hinweis
Gruß

Björn

  1. hi,

    gibt es ein Problem Array's mit session_register() an ein Dokument zu übergeben ???

    bin nich sicher, ob man komplette arrays in die session packen kann.
    hast du es schon mal mit serialize()/ unserialize() versucht? (array in string wandeln, string in die session schreiben, und auf nächster seite string wieder in array wandeln.)

    gruss,
    wahsaga

  2. for ($i = 0; $i < 10; $i++){
            echo "$anzahl[$i]";
        }

    @session_start();
       session_register('$anzahl[$i]','$größe[$i]','$code[$i]');
       $loc= "somewhere.php?".SID;
       Header("Location: $loc");

    Zweierlei Dinge grundsätzlich dazu:
    1. Ich würde grundsätzlich dazu raten, nicht mehr mit session_register() zu arbeiten. Die Verwendung der Superglobals (in diesem Fall $_SESSION) ist zum einem oftmals durchaus komfortabler und macht zum anderen den Code auch leichter nachvollziehbar, da der Ursprung einer Variable eindeutig ist.
    2. Du willst doch eigentlich die kompletten Arrays in der Session speichern? Warum also das Registrieren einzelner Elemente?

    Konkret würde der passende Aufruf mittels $_SESSION so aussehen:

    $_SESSION["anzahl"] = $anzahl;
    $_SESSION["code"] = $code;
    ...

    session_start();
    session_register('$anzahl[$i]','$größe[$i]','$code[$i]');

    Der Aufruf von session_start() ist vollkommen ausreichend, um die Session-Variablen wiederherzustellen. Entsprechend dem obigen Aufruf, kannst Du die Variablen dann wieder über $_SESSION["variablenname"] wieder zugreifen.
    Im Übrigen wäre $i bei diesem Aufruf ja auch undefined...

    @wahsaga: Das Sessionmanagement von PHP tut letztlich (stark vereinfacht) nichts anderes als für die Sessionvariablen serialize() bzw. unserialize() aufzurufen und diese Information aus einer Datei zu lesen bzw. in diese zu schreiben (plain ASCII).