Session Var in function

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

  • Session Var in function

    Hallo,

    ich möchte meine mehrseitigen Formulardaten in einer Sessionvariablen abspeichern als zweidimensionales array. Die Funktion ruf ich so auf:

    saveFromVars(0); // 0 als Bsp., oder andere Formularseitennummer

    function saveFormVars($seite) {
    foreach($_POST as $varname => $value) {
    $formVars[$varname] = trim(clean($value, 50)); // clean befreit von Sonderzeichen
    }
    $_SESSION['$allformVars[$seite]'] = $formVars; // aktuelle Formularseite ins Array[0]
    }

    Nutze ich das Ganze nicht als Funktion, läuft es. Da ich das aber an mehreren Stellen brauche, wollt ich gern daraus eine Funktion machen. Jedoch klappt die Zuweisung in die Sessionvariable offenbar nicht. Wenn ich darauf zugreife
    z.B. echo $_SESSION['$allformVars[0]']['Feld1']
    wird nichts angezeigt, jedoch bei
    echo $formVars['Feld1']
    Weiss jemand, wo das Problem ist? Danke.

    Clean ist nicht das Problem, aber dennoch hier der Code:
    function clean($input, $maxlength)
    {
    $input = substr($input, 0, $maxlength);
    $input = EscapeShellCmd($input);
    return ($input);
    }
    Aus Sicherheitsgründen hat man mir das so empfohlen.

    Gruß Martina
    Editiert, sorry Tippfehler, $ vergessen. ist aber im Code.
    Zuletzt geändert von MWeltring; 03.05.2006, 12:32.

  • #2
    $_SESSION['$allformVars[$seite]'] = $formVars
    und $allformVars[$seite] ist in der Funktion nicht bekannt
    lass mal die ' weg
    Beantworte nie Threads mit mehr als 15 followups...
    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

    Kommentar


    • #3
      Versuch folgt...

      ...ist sicher Dein Ernst (ungläubigschau ;-), also probiere ichs mal... und meld mich gleich wieder.

      Achje... ich brauch ne Brille... Die Hochkommas meintest Du (und ich Dussel hab die Zeile gelöscht)...
      Zuletzt geändert von MWeltring; 03.05.2006, 12:43.

      Kommentar


      • #4
        klappt nicht

        klappte leider nicht. Ich brauche ja auch die Daten später einmal wieder in der Session...

        Gruß
        Martina

        Kommentar


        • #5
          Re: Session Var in function

          Hier mal zum selber testen:
          PHP-Code:
          <?php
          session_start
          ();

          echo 
          '
          <form action="'
          .$_SERVER['PHP_SELF'].'" method="post">
              <table border="0" cellspacing="0" cellpadding="0">
                  <tr>
                      <td><input type="text" name="Feld1" size="41" /></td>
                  </tr>
                  <tr>
                      <td><input type="text" name="Feld2" size="41" /></td>
                      <td><input type="submit" name="submit" value="Suchen" /></td>
                  </tr>
              </table>
          </form>
          '
          ;

          if(isset(
          $_POST['submit']))
          {
            function 
          clean($input$maxlength)
            {
              
          $input substr($input0$maxlength);
              
          $input EscapeShellCmd($input);
              return (
          $input);
            }

            function 
          saveFormVars()
            {
            foreach(
          $_POST as $varname => $value) {
              
          $formVars[$varname] = trim(clean($value,50)); // clean befreit von Sonderzeichen
            
          }
              
          $_SESSION['allformVars'] = $formVars;
            }

            
          saveFormVars();
            echo 
          $_SESSION['allformVars']['Feld1'].'<br>';
            echo 
          $_SESSION['allformVars']['Feld2'];
          }
          Sers
          Der Boris
          Zuletzt geändert von boris-schneider; 03.05.2006, 10:34.

          Kommentar


          • #6
            Und wenn ich..

            Und wenn ich das alles der Funktion übergebe? Versuch ich auch mal.

            Ich dachte innerhalb einer Session ist sowas auch den Funktionen bekannt.

            Gruß Martina

            Kommentar


            • #7
              Re: Re: Session Var in function

              Ist doch angenemer die POST Werte in den ursprünglichen Namensvariablen aufzurufen als via 0,1,2,3...


              Herzlichen Dank für Deine Mühe!!

              Die Seiten haben aber keine Namen und müssen daher mit ihren Seitenummern referenziert werden. Die Varibalen selbst kommen dann über [0]['Feld1'] für Feld1 von Seite 0. Oder seh ich das falsch?

              Gruß Martina

              Kommentar


              • #8
                Re: Re: Re: Session Var in function

                Original geschrieben von MWeltring
                Ist doch angenemer die POST Werte in den ursprünglichen Namensvariablen aufzurufen als via 0,1,2,3...
                IöI jaja das habe ich eben selbst noch vor deinem Post hier schnell wegeditiert weil es Käse war *g*

                Mein Code sollte einfach nur einen denkanstoß geben, denn den Sessionwert nun mit einem zusätzlichen wert zu erweitern dürfte keinerlei problem darstellen

                PS: Du musst auch nicht immer einen neuen post starten, manchmal langt es auch einfach nur den alten zu editieren!



                Sers
                Der Boris

                Kommentar


                • #9
                  Nachtrag

                  Ich muß dazu noch sagen, dass bestimmte Seiten mehrfach angezeigt werden, aber mit unterschiedlichen Daten (Beispiel Auftraggeberadresse ist anders als Rechnungsanschrift, jedoch identisches Formular. Und es gibt weitere ähnliche Fälle in dem ganzen Teil wie Daten von bis zu 10 Geschäftsführern). Das macht es notwendig die Seiten zusätzlich mit Seitennummern zu versehen.

                  Gruß Martina
                  Zuletzt geändert von MWeltring; 03.05.2006, 10:44.

                  Kommentar


                  • #10
                    Re: Re: Re: Re: Session Var in function

                    Original geschrieben von boris-schneider
                    IöI jaja das habe ich eben selbst noch vor deinem Post hier schnell wegeditiert weil es Käse war *g*

                    Mein Code sollte einfach nur einen denkanstoß geben, denn den Sessionwert nun mit einem zusätzlichen wert zu erweitern dürfte keinerlei problem darstellen

                    PS: Du musst auch nicht immer einen neuen post starten, manchmal langt es auch einfach nur den alten zu editieren!



                    Sers
                    Der Boris
                    Danke für den Hinweis. Nun bin ich aber leider doch noch nicht weiter. Die Übergabe des Arrays an die Funktion hat auch nicht geklappt. Ich begreif nicht wo mein Fehler liegt.

                    Kommentar


                    • #11
                      Re: Re: Re: Re: Session Var in function

                      Original geschrieben von boris-schneider
                      [.... denn den Sessionwert nun mit einem zusätzlichen wert zu erweitern dürfte keinerlei problem darstellen
                      Heute aber scheinbar doch... ich krigs nich hin. Wie machst Dus denn?

                      Kommentar


                      • #12
                        Verzweiflung kommt auf

                        Hallo,

                        weiss jemand, wie ich das zum Laufen kriege? Mache ich generell einen Fehler? Wie übergebe ich der Funktion mein 2-dimensionales Array, damit es dort in eine Sessionvariable gespeichert wird? Ist die Sessionvariable nur in der Funktion ansprechbar? Ich steige da im Moment nicht durch. Weiß niemand mehr einen Rat?

                        Gruß Martina

                        Kommentar

                        Lädt...
                        X