[PHP5] Eigenartiges Problem mit der Session.

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

  • [PHP5] Eigenartiges Problem mit der Session.

    So.. ein Problem gelöst und schon steht das nächste vor der Tür.
    In einem System von mir kann ich einen manuellen zusätzlichen Refresh ausführen.... also. Ich klicke im Menü einen Punkt an... dieser übergibt mehrere Variablen per GET... zB: Seitentitel, Zielseite und Sprache ... nun kann ich, wenn ich per GET oder POST eine Variable zB: "REFRESH=1" mitschicke, dem System sagen, dass er per Header eine Weiterleitung auf die selbige Seite macht. Ich unterbreche den nach dem Headerbefehl kommenden Code der seite absichtlich NICHT mit exit;, sodass er die 3 Variablen in die Session schreiben kann und danach der 2te Refresh ausgeführt werden kann.... das nur zur Information... hat auch ein paar Gründe, warum ich mir diese Variante des "manuellen" 2fachen Refresh offen halten möchte.

    Nun läuft auf einem LinuxServer unter Xampp das ganze derzeit einwandfrei. Ebenso müsste das ganze auch unter einem IIS Server laufen. Das System läuft super unter dem IIS aber er macht was ganz eigenartiges. Ich sende die Variablen also über GET.... er schreibt sie in die Session und nachdem er den 2ten Refresh gemacht hat, ist die Session wieder im Urzustand, in dem sie VOR dem 1 der 2 Refresh war.

    Was soll denn das sein? Könnte eine Servereinstellung schuld sein oder mache ich einen Fehler? Wie gesagt... unter Xampp(Linux) mit SafeMode=On ( falls das wichtig ist ) läuft alles perfekt.

    Mario

  • #2
    Re: [PHP5] Eigenartiges Problem mit der Session.

    Cache-Problem.

    Ein Location-Header "refresht" nicht zwangsläufig, sondern sagt nur "diese Ressource ist das neue Ziel".
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      [PHP5] Session Problem

      Hallo wahsaga,

      Das komische ist halt, dass nach dem ersten Refresh ( nach Klick im Menü ) die Daten in die Session geschrieben werden.
      Erst "nach" der Weiterleitung über HEADER ist die Session wieder wie vorher.

      Wenn er also bei HEADER nicht wirklich immer refresht, dann müsste doch aber die für mich etwas unschöne Variante über einen meta refresh funktionieren. Er setzt allerdings auch nach diesem metarefresh die Session wieder zurück. Find ich sehr komisch.

      Mario

      Kommentar


      • #4
        Re: [PHP5] Session Problem

        Original geschrieben von GELight
        Wenn er also bei HEADER nicht wirklich immer refresht, dann müsste doch aber die für mich etwas unschöne Variante über einen meta refresh funktionieren.
        Über welche Methode du den Browser aufforderst, eine ihm bereits bekannte Ressource erneut anzufordern, ist vollkommen unerheblich.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          [PHP5] Session Problem

          Hm .. na okay...

          Die Frage ist aber, warum er nach der 2ten Weiterleitung( da es durch den Header kein Refresh ist ) die Session wieder in den Urzustand bringt. Immerhin hat er ja noch kurz vor der Weiterleitung( nach dem ersten Refresh ) alle Daten korrekt in die Session geschrieben.

          Das ist halt immernoch das Problem an dem ich hänge.

          Mario

          Kommentar


          • #6
            Re: [PHP5] Session Problem

            Was ist denn daran so kompliziert ...?

            Daten werden an "frische" Ressource übergeben, Daten in Session geschrieben.
            Es wird auf "bekannte" Ressource weitergeleitet, Browser kennt sie, Angaben zum Caching erlauben das Entnehmen der vorhandenen lokalen Kopie aus dem Cache, die lokale Kopie wird erneut angezeigt.
            In der Session dürfte damit gar nichts passiert sein - nichts mit "wieder in Urzustand bringen" - es findet gar kein erneuter Request statt, also auch keine Veränderung in der Session.
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              [PHP5] Session Problem

              Ok... ich habs nun verstanden, wie das mit der Weiterleitung über HEADER funktioniert. Danke nochmal für die ausführliche Beschreibung.
              Man verstehts nicht immer gleich, wenn man die Hilfen so durchliest.

              In dem Fall muss es doch eine Möglichkeit geben, dass ich sagen kann, dass er einen echten Refresh durchführen soll.
              Ich möchte einfach nur von der Seite, wo ich mich befinde auf die selbige nochmals springen und somit einen REFRESH durchführen lassen. Er soll dabei nichts aus dem Cache holen.

              Sowas muss doch gehen oder?

              Mario

              Kommentar


              • #8
                Re: [PHP5] Session Problem

                Original geschrieben von GELight
                In dem Fall muss es doch eine Möglichkeit geben, dass ich sagen kann, dass er einen echten Refresh durchführen soll.
                Das solltest du "ihm" schon beim erstmaligen Ausliefern der Ressource sagen - entsprechende Angaben zum gewünschten Caching-Verhalten machen.
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar


                • #9
                  [PHP5] Cache Problem

                  Sorry, wenn es für dich evtl. langsam nervig ist.
                  Ich hab mich jetzt mal etwas mit den Cache Möglichkeiten bei HEADER beschäftigt. Habs dazu auch einiges gefunden und auch alles einzeln und komplett getestet... dennoch. Wenn ich von meiner cms.php auf die selbige springe, dann holt er alles aus dem Cache und die Daten, die vor der Weiterleitung in der Session waren, sind wieder fort.

                  Mein Kopd der cms.php schaut jetzt so aus....
                  PHP-Code:
                  session_start();

                  if ( !empty( 
                  $_GET["CMS_REFRESH"] ) or !empty( $_POST["CMS_REFRESH"] ) ) { 

                      
                  header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); 
                      
                  header("Last-Modified: " gmdate("D, d M Y H:i:s") . " GMT"); 
                      
                  header("Cache-Control: no-store, no-cache, must-revalidate"); 
                      
                  header("Cache-Control: post-check=0, pre-check=0"false);
                      
                  header("Status: 301 Moved Permanently");
                      
                  header("Pragma: no-cache"); 
                      
                  header"Location: cms.php" ); 
                      

                  Dennoch umgeht er auch durch die ganzen Angaben keineswegs den Cache des Browsers. Mach ich hier noch irgendwas falsch?
                  Hab nun sogar schon zig Forenpostings gelesen, in denen genau diese Lösung drin stand.... bin langsam wirklich Ratlos.

                  Mario

                  Kommentar

                  Lädt...
                  X