[Variablen] array in SESSION übermitteln

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

  • [Variablen] array in SESSION übermitteln

    Ich möchte gerne ein mehrdimensionales array in einer SESSION übergeben.

    ich habe folgenden Aufbau:

    ich fülle das array wie folgt mit Inhalten:
    while ($zeige_daten = @mysql_fetch_row ($lese_versuch)) {
    $array_[2][] = $zeige_daten[2];
    $array_[3][] = $zeige_daten[3];
    $array_[4][] = $zeige_daten[4];
    $array_[5][] = $zeige_daten[5];
    $array_[6][] = $zeige_daten[6];
    $array_[7][] = $zeige_daten[7];
    $array_[8][] = $zeige_daten[8];
    $array_[9][] = $zeige_daten[9];
    $array_[11][] = $zeige_daten[11];
    $array_[12][] = $zeige_daten[12];
    $array_[13][] = $zeige_daten[13];
    $array_[14][] = $zeige_daten[14];
    $m++;
    }

    registriere mit:
    $_SESSION['array_'] = $array_;

    und versuche mit...
    $array = $_SESSION['array_']; ...das array in dem anderen Skript wieder für mich zur Verfügung zu stellen.

    Leider wird nichts übergeben und auch mit is_array() wird mir angezeigt, dass kein array vorhanden ist.

    Bitte um Tipps und Hilfen...

  • #2
    hast du die session gestartet?

    edit:
    was soll eigentlich diese leere eckige klammer?
    Die Milch bleibt ranzig!

    Kommentar


    • #3
      ja, habe in allen skripten session_start(); direkt am Anfang, bevor etwas anderes kommt...

      Kommentar


      • #4
        omg warum auch immer merk ich grad erst dass du da ja völligen humbug machst
        probiers ma mit:

        $array_[$m] = $zeige_daten[$m];
        Die Milch bleibt ranzig!

        Kommentar


        • #5
          Ja, aber das Array war schon richtig mit Werten gefüllt, aber Du hast natürlich Recht, dass es wie folgt besser aussieht:

          $m = 0;
          while ($zeige_daten = @mysql_fetch_row ($lese_versuch)) {
          $array_[2][$m] = $zeige_daten[2];
          $array_[3][$m] = $zeige_daten[3];
          $array_[4][$m] = $zeige_daten[4];
          $array_[5][$m] = $zeige_daten[5];
          $array_[6][$m] = $zeige_daten[6];
          $array_[7][$m] = $zeige_daten[7];
          $array_[8][$m] = $zeige_daten[8];
          $array_[9][$m] = $zeige_daten[9];
          $array_[11][$m] = $zeige_daten[11];
          $array_[12][$m] = $zeige_daten[12];
          $array_[13][$m] = $zeige_daten[13];
          $array_[14][$m] = $zeige_daten[14];
          $m++;
          }

          Das Problem besteht weiterhin. Das array ist in dem Skript, in dem es erstellt und gefüllt wurde so wie es sein soll, nur die Übergabe an ein anderes Skript funktioniert nicht...

          Kommentar


          • #6
            Hast du nach der schleife mal den Wert in m ausgeben lassen? Wenn er 0 ist, war deine query falsch. Sie hat entweder einen Fehler erzeugt oder sie war erfolgreich, aber hat keine Rückgabe erzeugt.

            Wenn die Schleife wirklich so funktioniert wie sie soll, könnte es sein, dass die Verbindung zur Datenbank vorher nicht richtig aufgebaut wurde.

            Du schreibst in deinem zweiten Skript (also da, wo die daten hin sollen) wirklich $array = $_SESSION['array_']; ? Prüfst du dann auch, ob $array ein array ist und nicht $array_ ? Mir fallen die verschiedenen Namen auf.

            Kommentar


            • #7
              ja ich weiß zwar net warum du 13 mal den gleichen wert speichern willst aber is deine sache

              was bekommst du denn für fehlermeldungen?
              enthält session überhaupt irgendwelche werte?
              Die Milch bleibt ranzig!

              Kommentar


              • #8
                13 mal der gleiche Wert ist es nicht, er nimmt array_[index] als Spalte und schreibt in array_[2] alle Werte rein, die bei seinen Ergebnissen in Spalte 2 stehen. Also in etwa so:

                Durchlauf mit m = 0:

                array_[2][0] = "Mama";
                array_[3][0] = 50;

                Durchlauf mit m = 1:

                array_[2][1] = "Papa";
                array_[3][1] = 55;

                Kommentar


                • #9
                  es gibt keine Fehler beim erstellen des array, also auch nicht mit der Datenbank oder der Verbindung damit, das array ist auch richtig erstellt, nur die Übermittlung bzw. das 'Weiterbenutzen' in einem anderen Skript funktioniert nicht.

                  Ich habe auch mit...
                  print_r($_SESSION['array_']);
                  ... überprüft, ob das array richtig angelegt, gefüllt und in der session gespeichert wurde. Das ist soweit alles in Ordnung.

                  ... nur das Übergeben irgendwie nicht...

                  Kommentar


                  • #10
                    Original geschrieben von Donbuffi
                    13 mal der gleiche Wert ist es nicht, er nimmt array_[index] als Spalte und schreibt in array_[2] alle Werte rein, die bei seinen Ergebnissen in Spalte 2 stehen. Also in etwa so:

                    Durchlauf mit m = 0:

                    array_[2][0] = "Mama";
                    array_[3][0] = 50;

                    Durchlauf mit m = 1:

                    array_[2][1] = "Papa";
                    array_[3][1] = 55;
                    OffTopic:

                    oh ja bin noch net ganz da ich glaub ich enthalt mich jetzt ersmal bis die kaffeetasse leer ist
                    Die Milch bleibt ranzig!

                    Kommentar


                    • #11
                      Spoocky dann setz mal vor dein session_start() überall ein error_reporting(E_ALL) und zeig uns die Fehlermeldungen. Wenn du beim Einsortieren deines Arrays und beim Prüfen auf der nächsten Seite keinen Fehler machst, wird es an der Session liegen, und dafür braucht man die Fehlermeldungen.

                      Kommentar


                      • #12
                        hie sind die Fehlermeldungen:

                        Notice: Undefined variable: array_ in C:\Programme\xampp\htdocs\bevat\readtests.php on line 176

                        Notice: Undefined variable: array_ in C:\Programme\xampp\htdocs\bevat\readtests.php on line 177

                        Notice: Undefined variable: array_ in C:\Programme\xampp\htdocs\bevat\readtests.php on line 183

                        und die Zeilen 176-184 dazu:
                        $_SESSION['array_'] = $array_;
                        if (is_array($array_) == true) {
                        echo 'Es ist ein Array!';
                        }
                        printf('<a href="test.php?%s">und hier geht es weiter</a>','');
                        print_r($_SESSION['array_']);

                        if ($_SESSION['array_'] == $array_ ){
                        echo 'Das Array ist in Ordnung!';
                        }
                        ?>


                        und in dem anderen Skript:

                        Notice: Undefined variable: array_ in C:\Programme\xampp\htdocs\bevat\test.php on line 14

                        Zeile 14-16:
                        if (is_array($array_) == true) {
                        echo 'Es ist ein Array!';
                        }

                        Kommentar


                        • #13
                          sagtest du nicht du hättest das array geprüft?
                          so wie das ausschaut scheint deine datenbankabfrage net zu funzen
                          Die Milch bleibt ranzig!

                          Kommentar


                          • #14
                            In der ersten Seite:

                            Notice: Undefined variable: array_ in C:\Programme\xampp\htdocs\bevat\readtests.php on line 176
                            In deinem Code wird in dieser Zeile der array in die Session kopiert. Das geht aber nicht, da offenbar vorher kein array gesetzt wurde. Das sollte aber in deiner while { } geschehen, und deswegen schließe ich mich der ranzigen Milch an.

                            In der zweiten Seite:

                            Notice: Undefined variable: array_ in C:\Programme\xampp\htdocs\bevat\test.php on line 14
                            Diese Fehlermeldung kommt in einer Zeile, wo du $array_ schon aus der Session hättest zurückkopieren müssen. Hast du aber nicht, denn sonst hättest du eine ähnlich Fehlermeldung schon beim kopieren bekommen.

                            $array_ = $_SESSION['array_']

                            scheint zu fehlen.

                            Edit: Müll rausgenommen und Tippfehler korrigiert
                            Zuletzt geändert von Donbuffi; 02.07.2007, 11:14.

                            Kommentar


                            • #15
                              Das array in der ersten Seite ist auch ein array, das ist ja überprüft!


                              Der Ausdruck:
                              $array_ = $_SESSION['array_']
                              fehlt NICHT in der zweiten Seite!

                              und in der while-scheife wird das array ja auch richtig angelegt.

                              Warum dort jetzt die Fehlermeldungen kommen, kann ich nicht nachvollziehen. Allein deswegen schon nicht, weil ich in der ersten Seite das array mir anzeigen lasse...

                              Kommentar

                              Lädt...
                              X