Ankündigung

Einklappen
Keine Ankündigung bisher.

Mehrdimensionales Array in Session speichern

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Mehrdimensionales Array in Session speichern

    Hallo,

    hab da ein kleines Problem.

    Ich möchte ein mehrdimesionales Array in die Session speichern und das funktioniert bei mir nicht. Bei eindimensionalen gehts einwandfrei.

    Hier mein Problem in aller Kürze (Aussnitt):

    Code:
    $artikeldaten = array();
    
    // in Session einlesen
    $_SESSION[artkel] = artikeldaten;
    
    // aus Session auslesen
    $ artikeldaten = $_SESSION[artikel];
    Beim Auslesen sind keine Daten im Array.

    Ich kann natürlich das zweidimensionale Array in ein eindimensionales Array umwandeln und dann in die Session speichern und umgekehrt - dann klappt es.
    Aber vielleicht liegt mein Fehler ja auch wo anders oder es geht gar nicht.

    Vielleicht hat jemand eine Antwort oder eine Lösung.

    Danke im voraus.
    Gruss
    maik-e


  • #2
    AFAIK hatte keine PHP-Version der letzten Jahre Probleme mit mehrdimensionalen Arrays in der Session, die machst Du dir selber.
    Im Extremfall sollten serialize()/unserialize() helfen.

    Und ich würde mal Anführungszeichen um die Array-Schlüssel setzen.
    mod = master of disaster

    Kommentar


    • #3
      Hallo,

      für die schnelle Antwort.

      Also die Anführungszeichen sind bei mir vorhanden, hab sie nur beim abtippen vergessen.

      korr. Code:

      $artikeldaten = array();

      // in Session einlesen
      $_SESSION['artkel'] = artikeldaten;

      // aus Session auslesen
      $ artikeldaten = $_SESSION['artikel'];

      Funktionieren tut die Sache trotzdem nicht.

      Vielleicht liegts ja an meiner PHP-Version, fahre da immer noch mit der 4.1.1 auf meinem localen Syste. Das hat bis jetzt immer gereicht und war sehr stabil.

      Vielleicht liegt der Fehler ja noch wo anders?

      Gruss
      maik-e

      Kommentar


      • #4
        Sorry, noch ein Fehler beim Abtippen:

        korr. Code:

        $artikeldaten = array();

        // in Session einlesen
        $_SESSION['artkel'] = $artikeldaten;

        // aus Session auslesen
        $ artikeldaten = $_SESSION['artikel'];

        Kommentar


        • #5
          Also PHP 4.1.1 ist ja steinalt, funktionieren müsste es IIRC ab PHP 4.0.6, kann natürlich sein dass 4.1.1 die Sonntags-Version war, wo's mal nicht ging.
          mod = master of disaster

          Kommentar


          • #6
            Zitat von maik-e
            Sorry, noch ein Fehler beim Abtippen:

            korr. Code:

            $artikeldaten = array();

            // in Session einlesen
            $_SESSION['artkel'] = $artikeldaten;

            // aus Session auslesen
            $ artikeldaten = $_SESSION['artikel'];
            und $_SESSION['artkel'] bzw. $_SESSION['artikel']ist sicherlich auch ein tippfehler?

            Kommentar


            • #7
              Hallo,
              sorry, natürlich noch ein Schreibfehler, aber manchmal ist man eben zu schnell.

              Hier mal der komplette Code ():
              Code:
              $artikeldaten = array();
              
              if (isset($_SESSION['artikeldaten'])){
                  $artikeldaten = $_SESSION['artikeldaten'];
              } else {
                  $fp = fopen("e1.csv","r");
                  $i = 0;
                  while($artikelinput = fgetcsv($fp,1000,";")){
                      $artikeldaten[$i] = $artikelinput;
                      $artikeldaten[$i][count($artikelinput)] = 0;
                      $i++;
                  }
                  fclose($fp);
                  $_SESSION['artikeldaten'] = $artikeldaten;
              }
              
              if (isset($_POST['sendartikel'])){
                  for($i = 0; $i < count($artikeldaten); $i++){
                      $artikeldaten[$i][count($artikeldaten[$i])-1] = $_POST['sendartikel'][$i];
                  }
                  $_SESSION['artikeldaten'] = $artikeldaten;
              }
              Vielleicht liegt es aber doch an der PHP-Version, ich werd mal eine neue draufspielen.

              Danke
              Maik

              Kommentar

              Lädt...
              X