carsten schlichting: array in einer session

Hallo

bei folgender Sache bin ich nicht 100% sicher:

SESSION['dfg'] = $dfg[]

wird hier jetzt automatisch in das Sessionfeld [dfg]ein array mit den Werten von $[dfg]gelegt???

Ist sowas möglich??

Grüße von mir

carsten

  1. p.S.

    oder soll ich einfach all meine Werte in die session schreiben?

    kann ich z. B. mit in_array (5, $_SESSION) auch in einer Session nachprüfen, ob der wert 5 in dem Session_Array ist?

    viele Grüße von mir

    carsten

    1. hi,

      oder soll ich einfach all meine Werte in die session schreiben?

      kommt drauf an - wie es für den jeweligen anwendungsfall günstiger ist.

      kann ich z. B. mit in_array (5, $_SESSION) auch in einer Session nachprüfen, ob der wert 5 in dem Session_Array ist?

      $_SESSION ist m.W. ein ganz stinknormales assoziatives array, das alles mit sich machen lässt, was auch die normalen tun.

      gruß,
      wahsaga

      --
      /voodoo.css:
      #GeorgeWBush { position:absolute; bottom:-6ft; }
      1. Hello,

        $_SESSION ist m.W. ein ganz stinknormales assoziatives array, das alles mit sich machen lässt, was auch die normalen tun.

        aber trotzdem darf auf der rechten Seite der Zuweisung an $_SESSION nicht eine implizite Deklaration stehen, oder? Allerdings habe ich auch schon mal was von Kettenzuweisungen gelesen ...

        Harzliche Grüße vom Berg
        esst mehr http://www.harte-harzer.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau
        1. hi,

          aber trotzdem darf auf der rechten Seite der Zuweisung an $_SESSION nicht eine implizite Deklaration stehen, oder?

          natürlich, dahingehend äußerte ich mich ja auch schon in der vorherigen antwort.

          die aussage, dass $_SESSION ein stinknormales assoziatives array ist, bezog sich allein auf die frage, ob man die "normalen" array-funktionen darauf anwenden kann.

          gruß,
          wahsaga

          --
          /voodoo.css:
          #GeorgeWBush { position:absolute; bottom:-6ft; }
          1. Hi danke für die Antworten

            jetzt habe ich nocheinmal eine ganz doofe Frage.

            wie schreibe ich werte in eine session ohne assoziationen.
            z.B. Bild_1_3, Bild_2_4, usw

            eventuell einfach so:???

            $_SESSION[]= Bild_1_3;
            $_SESSION[]= Bild_2_4;

            Zuerst wollte ich all diese werte in einen array innerhalb der SESSION schreiben, aber wenn ich z. B. $_SESSION [Bilder] = Bild_1_3; schreibe, würde ich die werte ja immer überschreiben-oder?

            grüße von mir

            carsten

            1. Hello,

              eventuell einfach so:???

              $_SESSION[]= Bild_1_3;
              $_SESSION[]= Bild_2_4;

              Lass Dir das Array nachher mal ausgeben mit der pint_r()-Funktion und schau, ob Du 'was damit anfangen kannst. Dann sollte sich Deine Frage fast von selbst beantworten.

              Das Stichwort heißt 'Name' oder 'Bezeichner' oder 'Index'...

              Harzliche Grüße vom Berg
              esst mehr http://www.harte-harzer.de

              Tom

              --
              Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
              Nur selber lernen macht schlau
              1. habs mit einem normlen Array ausprobiert und so werden die Werte nicht überschrieben. sondern es werden Indexe angelgt; wobei bei einer genauen Assoziation die Werte natürlich schon überschrieben werden -wenn man nicht ,wie wahsaga es beschrieben hat, bei der Session ein array einfügt.

                also danke an alle

                grüße von mir

                carsten

            2. hi,

              Zuerst wollte ich all diese werte in einen array innerhalb der SESSION schreiben, aber wenn ich z. B. $_SESSION [Bilder] = Bild_1_3; schreibe, würde ich die werte ja immer überschreiben-oder?

              jetzt wird's aber langsam auch mal zeit, dass eben (hoffentlich doch) gelernte nicht immer wieder sofort zu vergessen, sondern auch anzuwenden.

              was sagte ich dir eben?

              die schreibweise $array_xyz[] = wert erstellt ein neues element in diesem array mit dem inhalt wert.

              $_SESSION['bilder'] = array();
              $_SESSION['bilder'][] = $wert1;
              $_SESSION['bilder'][] = $wert2;
              ...
              ist also problemlos möglich.

              gruß,
              wahsaga

              --
              /voodoo.css:
              #GeorgeWBush { position:absolute; bottom:-6ft; }
          2. Hello,

            natürlich, dahingehend äußerte ich mich ja auch schon in der vorherigen antwort.

            Na, dedlfix hat es ja auf den Punkt gebracht.

            Ich gehe jetzt zum Schluss noch davon aus, dass die Kettenzuweisung von rechts nach links aufgelöst wird.

            Harzliche Grüße vom Berg
            esst mehr http://www.harte-harzer.de

            Tom

            --
            Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
            Nur selber lernen macht schlau
            1. echo $begrüßung;

              Ich gehe jetzt zum Schluss noch davon aus, dass die Kettenzuweisung von rechts nach links aufgelöst wird.

              Nur ganz rechts darf ein Ausdruck stehen. Links davon dürfen nur Variablen stehen. Das Ergebnis vom Ausdruck wird durchgereicht. Meine weiteren Versuche, weiter links noch was zu manipilieren erzeugen nur Fehler.

              echo "$verabschiedung $name";

              1. Hello,

                Ich gehe jetzt zum Schluss noch davon aus, dass die Kettenzuweisung von rechts nach links aufgelöst wird.

                Nur ganz rechts darf ein Ausdruck stehen. Links davon dürfen nur Variablen stehen. Das Ergebnis vom Ausdruck wird durchgereicht. Meine weiteren Versuche, weiter links noch was zu manipilieren erzeugen nur Fehler.

                was dann ja auch solche konstruktionen wie

                if (false !== ($pos = strpos($haystack, $needle)))
                  {
                    echo "gesuchtes Zeichen <b>$needle</b> wurde an der Position ".($pos+1)." in $haystack gefunden";
                  }

                ermöglicht

                Harzliche Grüße vom Berg
                esst mehr http://www.harte-harzer.de

                Tom

                --
                Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
                Nur selber lernen macht schlau
                1. Hello,

                  ... sollte natürlich ein Scherz zum Nachdenken werden ;-)

                  Harzliche Grüße vom Berg
                  esst mehr http://www.harte-harzer.de

                  Tom

                  --
                  Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
                  Nur selber lernen macht schlau
        2. echo $begrüßung;

          aber trotzdem darf auf der rechten Seite der Zuweisung an $_SESSION nicht eine implizite Deklaration stehen, oder? Allerdings habe ich auch schon mal was von Kettenzuweisungen gelesen ...

          $a = $b = 42;
          $a = $b[] = 42;

          Beides geht. Das $var[] darf nur nicht ganz rechts stehen.

          echo "$verabschiedung $name";

  2. hi,

    SESSION['dfg'] = $dfg[]

    wird hier jetzt automatisch in das Sessionfeld [dfg]ein array mit den Werten von $[dfg]gelegt???

    was ist denn $[dfg] ...?

    und nein, ein vorhandenes array legst du so nicht in die session - $dfg[] erzeugt ein neues array-element, und steht normalerweise auf der linken seite einer zuweisung. ob es so überhaupt durch den parser geht, bezweifle ich (ohne es überprüft zu haben.)

    wenn du den inhalt des arrays $dfg in der session ablegen willst, schreibst du einfach
    $_SESSION['xyz'] = $dfg;

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. echo $begrüßung;

      $dfg[] erzeugt ein neues array-element, und steht normalerweise auf der linken seite einer zuweisung. ob es so überhaupt durch den parser geht, bezweifle ich (ohne es überprüft zu haben.)

      Richtig bezweifelt. Das ergibt einen: Fatal error: Cannot use [] for reading

      echo "$verabschiedung $name";

  3. Hello,

    bei folgender Sache bin ich nicht 100% sicher:

    Dann mach einen Test und kassier ein paar Fehlermeldungungen ;-)

    <?php
      error_reporting(E_ALL);

    $dfg = array('a'=>'1','b'=>'2');
      ...

    $_SESSION['dfg'] = $dfg[];    ## hier erwarte ich einen Fehler...

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

    ?>

    Harzliche Grüße vom Berg
    esst mehr http://www.harte-harzer.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau