ulimativ: Sessions die 2.

Mhh, mal noch ne kurze Frage.
ICh habe eine Session erzeugt und da stehen jetzt auch wunderbar die Variablen drin.
Nun möchte ich aber den Wert einer in der Session gespeicherten Variable überschreiben...
muss ich dazu zuerst diesen Wert "unregistern" oder gibt es einen Update-Befehl, oder sollte dies automatisch passieren (tut es aber nicht :-( )
Uli

  1. Servus Uli,

    ICh habe eine Session erzeugt und da stehen jetzt auch wunderbar die Variablen drin.
    Nun möchte ich aber den Wert einer in der Session gespeicherten Variable überschreiben...
    muss ich dazu zuerst diesen Wert "unregistern" oder gibt es einen Update-Befehl, oder sollte dies automatisch passieren (tut es aber nicht :-( )

    Ganz Einfach der der Sessionvariablen einen Wert zuweisen, als wäre es eine neue Variable...
    also
    ---
    session_start();
    session_register("testvar");
    $testvar = 567;
    .
    .
    .
    $testvar = 6523;
    ---

    In diesem Sinne
    schönes Wochenende :-)

    Peter

    1. Ganz Einfach der der Sessionvariablen einen Wert zuweisen, als wäre es eine neue Variable...

      so hab ich mir das auch gedacht, aber es funktioniert nicht :-(
      nochmal der Code...
      <?
      @session_start();
      session_register(array("required"));
      ?>
      ...
      <input type="text" name="required[Ort]" value="<?echo $required[Ort]?>">

      Also ich springe dann auf eine 2. Seite und von dort aus kann man zurück gehen und dann sollten die neu eingegebenen Werte überschrieben werden, tuts aber nicht ...
      Liegt das am Array???
      Uli

      1. Nochmal hi Uli,

        <?
        @session_start();
        session_register(array("required"));

        Die Zeile hier drüber muss heissen:
        session_register("required");
        Das "array" muss weg!

        ?>

        <input type="text" name="required[Ort]" value="<?echo $required[Ort]?>">

        Also ich springe dann auf eine 2. Seite und von dort aus kann man zurück gehen und dann sollten die neu eingegebenen Werte überschrieben werden, tuts aber nicht ...

        ok, Du musst aber erstens daran denken, auf jeder Seite session_start() zu haben....
        Ausserdem wird das mit dem Namen des Textfeldes so nicht hinhauen. Du musst dem Ding einen anderen Namen geben, z.B. "Inhalt" und dann auf der nächsten Seite sagen
        $required[] = $HTTP_POST_VARS["Inhalt"];

        keep on trying!

        Schöne Grüße,
        Peter

  2. Hi

    Evtl. ergibt sich ein Problem daraus, daß Variablen, die per GET oder POST übergeben wurden, nicht unter ihrem eigenen Namen zur Verfügung stehen, wenn eine gleichnamige Variable in der Session registriert wurde. Um der Sessionvariable den Wert der GET bzw. POST variable zuzuweisen, mußte du folgende Syntax verwenden:

    $testvar = $HTTP_GET_VARS['testvar'];

    (Dieses Verhalten ist übrigens unter Sicherheitsaspekten sehr sinnvoll!)

    Viel Spaß

    Heizer

    1. Evtl. ergibt sich ein Problem daraus, daß Variablen, die per GET oder POST übergeben wurden, nicht unter ihrem eigenen Namen zur Verfügung stehen, wenn eine gleichnamige Variable in der Session registriert wurde. Um der Sessionvariable den Wert der GET bzw. POST variable zuzuweisen, mußte du folgende Syntax verwenden:
      $testvar = $HTTP_GET_VARS['testvar'];

      das scheint der entscheidende Punkt zu sein...
      nur verstehe ich es nicht ganz :-(
      Spezialisieren wir das ganze mal auf mein szenario.
      ich hab ein mehrseitiges formular und springe von seite 2 auf seite 1 zurück.
      beim erneuten absenden der daten, will ich die alten sessionvariablen überschreiben. wie und wo muss ich jetzt mit $HTTP_GET_VARS['require[Ort]']; (z.B.) arbeiten???

      Aber trotzdem mal Danke so weit.

      1. hi

        Um der Sessionvariable den Wert der GET bzw. POST variable zuzuweisen, mußte du folgende Syntax verwenden:

        $testvar = $HTTP_GET_VARS['testvar'];

        ich hab ein mehrseitiges formular und springe von seite 2 auf seite 1 zurück.
        beim erneuten absenden der daten, will ich die alten sessionvariablen überschreiben. wie und wo muss ich jetzt mit $HTTP_GET_VARS['require[Ort]']; (z.B.) arbeiten???

        am besten gleich zu beginn es sei denn, du brauchst den alten wert noch einmal. deine 2. datei beginnt also so:

        $require = $HTTP_GET_VARS['require'];

        oder, um alle normalen Variablennamen sicher mit den Werten aus dem Get-String zu belegen:

        foreach ($HTTP_GET_VARS as $key => $elem) {
           $$key = $elem;
           }

        Wenn du dann wieder auf die erste Seite zurückspringst, sollten alle Session-Variablen den entsprechenden Wert haben.

        cu

        heizer

        1. vielen dank...
          wunderbar, nun kann es endlich weitergehen :-)