Array und Session Problem

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

  • Array und Session Problem

    Hallo,

    ich hoffe hier kann man mir weiterhelfen.
    Mein Problem ist folgendes. Ich habe ein Formular, welches unter Umständen mehrmals aufgerufen wird. Die Werte möchte ich dann in einem Array speichern, und zwar alle Werte, die in einem bestimmten Feld eingegeben wurden. Das ganze will ich dann in einer Session speichern.

    So sieht mein bisheriger, nicht funktionierender Code aus:

    PHP-Code:
    session_start();

           
    // Hier lege ich die Arrays an
            
    $name = array();
            
    $vorname = array();
            
    $strasse = array();
            
    $plz = array();
            
    $ort = array();

            if(
    $ACT == "insert" && $i<$anzahl): 
           
    // $anzahl kommt aus einem vorherigen Formular (Benutzereingabe)

                 
    $name[$i] = $fo_name//Namen der Formularfelder
                 
    $vorname[$i] = $fo_vorname;
                 
    $strasse[$i] = $fo_strasse;
                 
    $plz[$i] = $fo_plz;
                 
    $ort[$i]  = $fo_ort;

                
    session_register ("name[$i]""vorname[$i]""strasse[$i]""plz[$i]""ort[$i]");  

                
    header("Location: insert2.php"); 
    Jetzt kommt dann noch eine If-Schleife, dessen Bedingung erfüllt ist, wenn $i == $anzahl. Der einzigste Unterscheid zur anderen Schleife ist, dass in eine andere PHP-Seite gesprungen wird.

    Dann folgt ganz normal das Formular.

    Ich habe schon überprüft ob in jedem Skript session_start(); steht, dies ist der Fall. Auch wenn ich

    PHP-Code:
    session_register ("fo_name""fo_vorname""fo_strasse""fo_plz""fo_ort"); 
    schreibe und nur einmal das Formular aufrufe, dann werden die Werte in einer Session-Variable gespeichert.

    Vielleicht könnt ihr mir ja sagen, wo mein Denkfehler liegt.

    Gruß, cerry

  • #2
    PHP-Code:
    session_start();
    if(
    $ACT == "insert" and $i<$anzahl)
    {
      
    $_SESSION['name'][]=$fo_name;
      
    $_SESSION['vorname'][]=$fo_vorname;
    }

    echo 
    '<pre>';
    print_r($_SESSION);
    echo 
    '</pre>'
    so?
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      Hallo mrhappiness,

      vielen Dank für deine schnelle Antwort.

      Es klappt soweit, aber jetzt habe ich das Problem, dass ich nicht genau weiß, wie ich auf die Werte zugreifen kann.

      Kannst du mir das vielleicht auch noch verraten?

      Gruß, cerry

      Kommentar


      • #4
        echo $_SESSION['name'][1]

        echo $_SESSION['name'][1455]

        $_SESSION['name'] ist ein array und das kannst du behandeln wie jedes andere array auch
        Ich denke, also bin ich. - Einige sind trotzdem...

        Kommentar


        • #5
          Hallo,

          und schon wieder hat sich ein neues Problem aufgetan, oder besser gesagt zwei.

          Mein erstes ist, dass wenn ich z.B. dreimal die Seite aufrufen will, und ich die Daten das erste Mal eingegeben und bestätigt wurden, erhalte ich eine komplett leere Seite und kein Formular.
          Will ich allerdings das Formular nur einmal aufrufen, springt er mir ohne Probleme nach Bestätigung in die nächste Seite.

          Das nächste ist dann doch eher eine Frage, kann man die Werte auch wieder löschen? Oder aktualisieren?

          Ich hoffe, du könntest mir nochmal weiterhelfen.


          Gruß, cerry

          Kommentar


          • #6
            1. Antwort: hä?

            2. Antwort: löschen geht mit unset und aktualisieren einfach mit überschreiben des gewünschten index, is wirklich wie bei ganz normalen arrays
            Ich denke, also bin ich. - Einige sind trotzdem...

            Kommentar


            • #7
              Hallo,

              zu 1.
              Mein Code schaut jetzt folgendermaßen aus:

              PHP-Code:
              if($ACT == "insert" && $i<$anzahl):

                 
              $_SESSION['name'][] = $fo_name;
                 
              $_SESSION['vorname'][] = $fo_vorname;
                 
              $_SESSION['strasse'][] = $fo_strasse;
                 
              $_SESSION['plz'][] = $fo_plz;
                 
              $_SESSION['ort'][] = $fo_ort;

                 
              header("Location: insert2.php");
                 exit;
              endif; 
              Normalerweise müsste er ja am Ende der Schleife, dann insert2.php (sich selbst) aufrufen. Aber das passiert nicht, ich erhalte nur eine weiße Seite.

              Zu 2.

              Ich denke ich habe es jetzt verstanden und weiß, wie ich damit umzugehen habe.

              Auf jeden Fall vielen Dank für deine Hilfe.

              Gruß, cerry

              Vielen

              Kommentar


              • #8
                mach mal statt dem header ein echo 'Test';

                nach dem location sollte übrigens ein vollständiger url folgen
                Ich denke, also bin ich. - Einige sind trotzdem...

                Kommentar


                • #9
                  Hallo,

                  vielen Dank, soweit funktioniert jetzt alles.

                  Kann ich mich alos gemütlich ans nächste Problem machen.

                  Wünsche dir noch einen schönen Tag.

                  Gruß, cerry

                  Kommentar

                  Lädt...
                  X