Aktive Sessions im Array ausgeben

  • Hallo,


    kann mir jemand erklären, warum mit diesem Code immer nur die LETZTE Session die gesetzt wurde ausgegeben wird, anstatt alle aktiven Sessions?


    Simples Beispiel:


    PHP
    $_SESSION[] = "blau";$_SESSION[] = "gelb";$_SESSION[] = "lila";if($_SESSION)        {        foreach ($_SESSION as $session_index => $session_inhalt);            {            echo "Inhalt von $session_index ist $session_inhalt <br />";            }        }


    Ausgabe davon ist dann einfach nur:


    Code
    Inhalt von 2 ist lila


    Gebe ich das aber mit <pre> und print_r aus, dann erhalte ich den ganzen Inhalt von S_SESSION


    PHP
    echo "<pre>"; print_r($_SESSION); echo "</pre>";


    Ergebnis:


    Code
    Array(    [0] => blau    [1] => gelb    [2] => lila)


    Sollten da nicht also aufgrund meiner foreach-Schleife alle Session (Array) Inhalte aufgelistet werden?


    Gruß

  • Gerade ausprobiert - gleiches Ergebnis.


    Sehr seltsam. Ich verwende SESSIONs öfters (ohne Bildschirmausgabe) und bin Kontrollfreak.
    Heißt - gerechnet wird mit SESSION und foreach richtig, es laufen wohl alle schleifen wie sie sollen,
    aber die Ausgabe ist "kaput" ;D


    EDIT:
    gerade noch mal experimantiert.


    "Fatal error: [] operator not supported for strings in "
    Kommt mir so vor, als könne man in SESSIONs keine [] verwenden. Ist mir nie aufgefallen, da ich die Felder immer benenne.

  • Nein, generell ist in der foreach-Schleife bei Arrays kein [] zu setzen (korrigiert mich wenn ich falsch liege)...


    Hab auch schon alle möglichen Array-Varianten getestet, im Internet geschaut und da wird auch meine obige Variante vorgeschlagen die angeblich auch funktioniert, nur bei mir irgendwie nicht :)


    Edit: Wenn man es so macht, bekomme ich ein Ergebnis:


    PHP
    session_start();
    $_SESSION = array ("Partys", "Frauen", "Bier" );
    
    
    
    
        foreach ($_SESSION as $session_index => $session_inhalt ) {
            echo "Eintrag $session_index ist $session_inhalt<br />";
        }


    Allerdings bin ich mir nicht sicher, ob meine S_SESSION dann wirklich noch das original PHP array ist oder eine von mir definierte Variable welche ein Array beinhaltet... ich denke mal letzteres... Außerdem will ich ja kein Array vordefinieren, sondern mir anzeigen lassen welche aktive Sessions ich grade benutze.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!