[Variablen] Übergabe Session Refresh

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

  • [Variablen] Übergabe Session Refresh

    Hallo ihr,

    hier ein Newbie.
    Ich habe das Forum durchsucht, aber nichts so richtig passendes auf ein Problem gefunden. Im Handbuch werden nur die generellen Fälle beschrieben, doch mein Problem ist Hausgemacht.

    Folgendes:
    Ich habe ein großes Formular mit mehreren Seiten auf denen jeweils Werte eingegeben werden. Ich übergebe die Variablen immer an die nächste Seite, wo ich sie dann in die Session schreibe.
    Das funktioniert soweit prima.
    Nun möchte ich jedoch zurück gehen um eventuell falsche Werte nochmals zu korigieren. Dafür gib es einen ZURÜCK Button.
    Wenn ich jetzt jedoch im Formular 2 Seiten zurück gehe, und anschließend wieder auf weiter drücke sind die Werte der darauf folgenden Seiten wieder verschwunden, obwohl sie mit Weiter in die Session geschrieben wurden und im Script überprüft wird ob was in der Session steht. Falls nichts in der Session steht werden Standartwerte benutzt. Doch müsste in meiner Session was stehen und trotzdem werden die Standartwerte angezeigt.

    Ich glaube das Umfasst das Problem weitestgehend. Ich hoffe es klingt noch alles logisch.

    Noch eine Frage: Muss man wenn man eine Variable in die Session geschrieben hat, erst unregister machen, oder kann bei erneutem register, die vorhandene Variable überschrieben werden??

    Gruß ENI
    ####
    DON'T UPSET ME!
    I'M RUNNING OUT OF PLACES
    TO HIDE THE BODIES
    ####

  • #2
    kannst die variable ruhig überschreiben. unset ist nicht nötig.

    wenn du "zurück" und "weiter" nennst, meinst du damit die browserbuttons?

    kannst du mal ein bisschen code benutzen?

    sind die werte aus der session wirklich gelöscht??? hast du das überprüft?

    ist die sessionid überall die selbe?

    Kommentar


    • #3
      ich würde das ganz anders realisiern.
      speicher in einer db die sessionid, danach wird nach jeder seite die werte in die datenbank eingetragen, beim zurück gehen und neu bearbeiten überschrieben und danach kannste dir alles wieder ausgeben lassen.
      Sunshine CMS
      BannerAdManagement
      Borlabs - because we make IT easier
      Formulargenerator [color=red]Neu![/color]
      Herkunftsstatistik [color=red]Neu![/color]

      Kommentar


      • #4
        ganz sicher nicht!
        1.) wer sagt, dass das in eine DB soll?
        2.) Performance
        3.) kann ja sein, dass man aufeinander aufbauend prüfen muss.

        Kommentar


        • #5
          zu1: war meine idee
          zu2: och gott, das bissl
          zu3: hö?
          Sunshine CMS
          BannerAdManagement
          Borlabs - because we make IT easier
          Formulargenerator [color=red]Neu![/color]
          Herkunftsstatistik [color=red]Neu![/color]

          Kommentar


          • #6
            1) hammer wieder gedacht?
            2) es geht ums prinzip (bei 1. auch)
            3) wenn felder 1-3 nicht ausgefüllt sein muss, wenn frage 3 auf Seite 4 mit "ja" beantwortet wurde.

            Kommentar


            • #7
              ich geb zu 1 is fies aber geil

              zu1: soll ich mein snipersmilie wieder in die signa setzen???
              Sunshine CMS
              BannerAdManagement
              Borlabs - because we make IT easier
              Formulargenerator [color=red]Neu![/color]
              Herkunftsstatistik [color=red]Neu![/color]

              Kommentar


              • #8
                unset ist also nicht nötig??
                dann könnte bei jedem Register die alte ja noch da sein und ich kann trotdem überschreiben, das probiere ich gleich mal.

                PHP-Code:
                Formular1.php

                if (!isset($Kapitaldienst)) {
                $Kapitaldienst = 0;}

                <form action="Formular2.php" method="post" name="Basis">
                <input type="text" name="Kapitaldienst" value="<? echo "$Kapitaldienst"; ?>">
                <br>
                <input type="image" src="images/weiter_01.gif" width="76" height="21" name="weiter" onmouseover="this.src='images/weiter_01-over.gif'" onmouseout="this.src='images/weiter_01.gif'" onclick="<?
                        session_unregister("Kapitaldienst");?>">

                Formular2.php

                session_register("Kapialdienst"); /*Die Variable aus dem Formular durch Submit-Button namens "Weiter" */
                Drch den Sumit-Button "Weiter wird im Formular 2 wiederum alle Daten von Formular 2 gespeichert. Drücke ich jedoch den Link "Zurück" (eine Grafik auf der Seite) dann stehen im Vorherigen Formular noch alle Daten, bin jetzt also wieder im Formular 2 aus Formular 3. (Da ich dort die Daten von Formular 2 submited habe) wenn ich jetzt ein weiteres Zurück drücke und wieder in Formular 1 bin, steht auch noch alles drin, auch $Kapitaldienst. Drücke ich jetzt weiter ist Formular 2 wieder mit 0 gefüllt obwohl ich es vorher geändert und gespeichert habe.

                Die Sessionid msste die gleiche sein, da ich mit session_start auf jeder Seite die gleiche Session_id übergebe und diese in einem bestimmten Verzeichnis speichere, da bin ich mir ziemlich sicher das es die selbe ist.

                ENI
                ####
                DON'T UPSET ME!
                I'M RUNNING OUT OF PLACES
                TO HIDE THE BODIES
                ####

                Kommentar


                • #9
                  guck mal bitte, was im manual zu session_register() steht. besonderd die hinweise zu aktualität. das könnte noch ein grund sein.

                  Kommentar


                  • #10
                    also wenn ich nicht unregister mache, dann überschreibt er die Variablen nicht mehr, dann kann ich zwar beliebig oft und weit hin und zürück, aber meine Änderungen spielen keine Rolle mehr, da der erste Eintrag festgebrannt ist!!

                    ENI
                    ####
                    DON'T UPSET ME!
                    I'M RUNNING OUT OF PLACES
                    TO HIDE THE BODIES
                    ####

                    Kommentar


                    • #11
                      Ääähm,

                      PHP-Code:
                      <input type="image" [...] onclick="<? session_unregister("Kapitaldienst");?>">
                      Hallo??? onlick und session_unregister michen? JS und PHP mischen? clientseitig und serverseitig mischen?

                      Kommentar


                      • #12
                        also wenn ich nicht unregister mache, dann überschreibt er die Variablen nicht mehr, dann kann ich zwar beliebig oft und weit hin und zürück, aber meine Änderungen spielen keine Rolle mehr, da der erste Eintrag festgebrannt ist!!
                        darauf wollte ich ja hinaus! Also nicht register() benutzen, sondern $_SESSION, steht im Manual!!!

                        Selbiges auch für unregister, wobei du das natürlich gar nicht brauchst. (an der stelle sowieso nicht

                        Kommentar


                        • #13
                          darauf wollte ich ja hinaus! Also nicht register() benutzen, sondern $_SESSION
                          Wenn ich jetzt also überall $_SESSION verwende, kann ich die Variable nur über $SESSION[""] abrufen oder wie mit session_register einfach nur $xxx machen???

                          ENI
                          ####
                          DON'T UPSET ME!
                          I'M RUNNING OUT OF PLACES
                          TO HIDE THE BODIES
                          ####

                          Kommentar


                          • #14
                            Wenn ich jetzt also überall $_SESSION verwende, kann ich die Variable nur über $SESSION[""] abrufen
                            Richtig. aber wo ist das Problem?

                            Kommentar


                            • #15
                              Also auch mit $_SESSION sind die Werte nach dem ersten mal in die Session schreiben festgebrannt.
                              Soll heißen:
                              Ich gehe zu Formular 1. Der einfachheit halber ändere ich nur Wert1 zu 1.
                              Ich gehe auf Submit "WEITER".
                              Bin in Formular 2. Setzte hier Wert10 auf 1.
                              Auf Submit "WEITER".
                              Drücke nun Link "Zurück" Wert10 ist 1. PRIMA.
                              Drücke auf Link "Zurück" Wert1 ist 1. Prima.
                              Ändere Wert 1 zu 2. Drücke Weiter. Wert 10 ist noch 1. Prima.
                              Drücke Link "Zurück"
                              Wert1 ist noch immer 1, obwohl zuletzt als 2 angegeben.

                              PHP-Code:
                              <?
                              $_SESSION["Wert1"] = $Wert1;
                              ?>
                              ####
                              DON'T UPSET ME!
                              I'M RUNNING OUT OF PLACES
                              TO HIDE THE BODIES
                              ####

                              Kommentar

                              Lädt...
                              X