Peter Mairhofer: PHP Sessions und Arrays

Beitrag lesen

Hallo,

Ich will in meiner Session ein Array der Form
$MEINE_ARRAY[$ID][$i] speichern.

Für meine Webapplikation hab ich mir einen ganzen Apparat von Code geschrieben, um Variablen in PHP sozusagen als "global" zu definieren. (Bitte keine Kommentar dazu, dass die Sicherheit darunter leidet, Variablen die als Parameter übergeben worden sind direkt zu verwenden, ich hab meinen Grund wieso ich das so will).

Dazu habe ich folgendes gemacht:

// MEINE_ARRAY als Sessionvariable definieren.
// session_register funktioniert irgendwie leider nicht;
// ich will das Array leer initialisieren
if(!isset($_SESSION["MEINE_ARRAY"]))
{
$_SESSION["MEINE_ARRAY"] = array();
}

// falls die gleiche variable über GET übergeben wird, die globale variable updaten
while(list($value, $key) = each($_GET))
{
if(isset($_SESSION["MEINE_ARRAY"]))
eval('$'.$value.'='.'"'.$key.'";');
}

Das funktioniert perfekt. So hab ich alle wichtigen Variablen als "global" definiert und wenn ich sie ändern will, übergebe ich sie einfach mit GET oder POST.

Jetzt will ich das aber beim oben genannten Array machen:

echo $MEINE_ARRAY[$var1][$var2];

echo "<input type="text" name="MEINE_ARRAY[".$var1."][".$var2."]" value="$var3">\n";

wenn ich die Sessions ausgeschaltet habe und das Formular abschicke, funktioniert es prächtig. Wenn ich den oben ganannten Sessioncode dazuschalte, dann gibt mir das
echo $MEINE_ARRAY[$var1][$var2];
nix mehr aus.

Wie könnte ich das richtig machen? Wieso funktioniert das bei solchen (2D) Arrays nicht??

Vielen Dank,

*Ptr