Dreidimensionale Session-Variable?

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

  • Dreidimensionale Session-Variable?

    Hallo,

    ich habe ein kleines Problem mit meiner Session-Variablen.

    Bislang wollte ich in einer Session-Variablen ganz normal mehrere Werte speichern (Abfrage über Checkboxen)

    PHP-Code:
    $fo_auswahl = array();

       if (isset (
    $_POST['fo_auswahl']))
       {
         foreach (
    $_POST['fo_auswahl'] as $v)
         {
             
    $fo_auswahl[] = $v;
         }

         for(
    $i=0$i<count($fo_auswahl); $i++)
         {
             
    $_SESSION['mitglieder'][$i] = $fo_auswahl[$i];
         }

       } 
    Jetzt will ich das ganze aber in eine for-Schleife einbinden, und zwar so, dass das Formular einfach mehrfach aufgerufen werden kann. Dazu muss ich aus dem zweidimensionales Array ein dreidimensionales machen, oder nicht?

    Habe das jetzt so probiert
    PHP-Code:
    $fo_auswahl[$j] = array();

       if (isset (
    $_POST['fo_auswahl[$j]']))
       {
         foreach (
    $_POST['fo_auswahl[$j]'] as $v[$j])
         {
             
    $fo_auswahl[][$j] = $v[$j];
         }

         for(
    $i=0$i<count($fo_auswahl[$j]); $i++)
         {
             
    $_SESSION['mitglieder'][$i][$j] = $fo_auswahl[$i][$j];
         }

       } 
    So funktioniert es aber absolut nicht, es wird jetzt nämlich gar nichts gespeichert. Es gibt keine Session-Variable mit dem Namen "Mitglieder".

    Könnt ihr mir sagen, wo mein Fehler liegt?

    Gruß, cerry

  • #2
    überall session gestartet? id bei deinem script angekommen?
    Man lernt nie aus...

    ...und wenn man's doch tut braucht man sich auch nicht schämen!

    Kommentar


    • #3
      Hallo,

      ja Sessions sind überall gestartet.

      Ich speichere im gleichen Skript noch andere Session-Variablen, und diese werden auch gespeichert. Nur dieses spezielle fehlt am Ende.

      Gruß, cerry

      Kommentar


      • #4
        haste die komplette variable mal ausgegeben?

        Kommentar


        • #5
          Hallo,

          zur Überprüfung habe ich am Ende der Formulare ein

          PHP-Code:
          echo '<pre>';
              
          print_r($_SESSION);
              echo 
          '</pre>'
          eingefügt.
          Es werden alle anderen Variablen angezeigt, eben nur nicht dieses eine. Sie wird erst gar nicht angelegt, und von daher kann ich auch nicht darauf zugreifen.

          Gruß, cerry

          Kommentar


          • #6
            wie sieht denn dein html dazu aus?
            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


            Kommentar


            • #7
              vertsehe denn sinn von deinem Code noch nicht so ganz:
              PHP-Code:
              $fo_auswahl = array();

              if (isset (
              $_POST['fo_auswahl'])) {
                foreach (
              $_POST['fo_auswahl'] as $v) {
                  
              $fo_auswahl[] = $v;
                  
              $_SESSION['mitglieder'][] = $v;
                }

              Sieht schon mal besser aus!

              Kommentar


              • #8
                Zweite Code ist auch ziemlich sinnlos. möchte den nicht auch verbessern, aber ich zeig dir mal die Fehler:

                $fo_auswahl[][$j] = $v[$j];

                for($i=0; $i<count($fo_auswahl[$j]); $i++)

                Die beíden fo_vars sind nicht gleich, odeR?

                Kommentar


                • #9
                  Hallo,

                  danke für die Hinweise.

                  Der Code ist nicht direkt von mir, ich habe in gefunden, ausprobiert und er hat funktioniert.

                  Ich habe jetzt deine Verbesserung hergenommen und werde daraus versuchen eine dreidimensionale Session-Variable zu basteln, weil irgendwie muss das ja zu machen sein.

                  Gruß, cerry

                  Kommentar


                  • #10
                    da ich nicht weiß, welchen wert $j hat, war mein letztes Post eher spekulativ. Trifft es denn zu?

                    Kommentar


                    • #11
                      Wenn ich ehrlich bin, weiß ich das nicht so ganz.

                      $j ist die Zählvariable einer for-Schleife, die noch drumherum gebaut ist. Sie zählt die Aufrufe des gleichen Formulars.

                      $i ist die Zählvariable der Anzahl der Checkboxen, die angelickt wurden. Sie war damals so in dem Skript, was ich gefunden habe, eingebaut.

                      Es soll folgendermaßen funktionieren.

                      Am Anfang habe ich ein Formular, auf dem ich eine gewisse Anzahl eingeben kann. Nach dieser Anzahl richtet sich, wie oft dieses bestimmte eben aufgerufen werden soll -> Zählindex = $j

                      Auf dem Formular sind einige Textfelder und dann eben auch einige Checkboxen, diese heißen alle gleich haben aber unterschiedliche Werte bei value="".
                      Jetzt will ich eben für jedes j ein Array anlegen, was wiederum in einem Array, die value-Werte speichert.

                      Wenn $j immer 1 wäre, dann könnte ich ohne Probleme ja mein erstes gepostetes Skript verwenden, aber ist $j>1 dann würden mir dann ja die vorherigen Werte überschrieben werden, und dass will ich ja nicht.

                      Aus diesem Grund habe ich halt in dem alten Skript an den Variablen ein [$i] angehängt und raus kam dies:

                      PHP-Code:
                      $fo_auswahl[$j] = array();

                         if (isset (
                      $_POST['fo_auswahl[$j]']))
                         {
                           foreach (
                      $_POST['fo_auswahl[$j]'] as $v[$j])
                           {
                               
                      $fo_auswahl[][$j] = $v[$j];
                           }

                           for(
                      $i=0$i<count($fo_auswahl[$j]); $i++)
                           {
                               
                      $_SESSION['mitglieder'][$i][$j] = $fo_auswahl[$i][$j];
                           }

                         } 
                      Aber das funktioniert ja nicht, wie schon beschrieben.

                      Gruß, cerry

                      Kommentar


                      • #12
                        Jetzt habe ich ein ganz neues Problem.

                        Jetzt schaffe ich es überhaupt nicht mehr die geklickten Checkboxen in einer Session-Variablen zu speichern.

                        Ich habe alles wieder in den alten Zustand versetzt, aber es hilft nichts. Auch mit dem Code von TobiaZ
                        PHP-Code:
                        $fo_auswahl = array();

                        if (isset (
                        $_POST['fo_auswahl'])) {
                          foreach (
                        $_POST['fo_auswahl'] as $v) {
                            
                        $fo_auswahl[] = $v;
                            
                        $_SESSION['mitglieder'][] = $v;
                          }

                        funktioniert es nicht. Ich habe überall noch sie Session geöffnet, aber tortzdem wird nicht gespeichert. Hat jemand eine Idee??

                        Gruß, cerry

                        Kommentar


                        • #13
                          der code ist ja korrekt. also hast du garantiert was geändert!

                          Kommentar


                          • #14
                            Hallo,

                            nachdem ich der Versuch über ein dreidimensionales Array nicht funktioniert hat, habe ich meinen Code durch deinen ersetzt, aber es funktioniert nicht.

                            Wieso, weshalb, warum, ich weiß es nicht. Ich weiß nur, dass ich gerade ein rießiges Problem habe.

                            Wenn aber dein Code das bei dir macht, werde ich also noch mal alles durchforsten.

                            Danke für deine Hilfe.

                            Gruß, cerry

                            Kommentar


                            • #15
                              nee, der code ist ausm kopf. was passiert denn, wenn du deinen alten code wieder einsetzt.

                              Kommentar

                              Lädt...
                              X