Carl: Frames und session

Hi

ich weiß, Frames sind nicht jedermanns sache, aber ich versuche gerade was mit Frames auf die Beine zu stellen und habe dabei ein Problem:
Bei einem User der sich einloggt soll eine Session gestartet werden. Und wenn eine solche Session existiert, soll im Frame auf der rechten Seite eine Navigationsleiste mit zusätzlichen Funktionen erscheinen.
Allerdings klappt es nicht so ganz die ganze Seite neu zu laden.
Mit header("Location: ..."); includes usw bekomme ich nur die ganze Seite in den Hauptframe hineingeladen.

Ich steh in dieser Sache so ziemlich vor einer Dicken, hohen Wand und habe nur eine Nagelfeile in der Hand. Also wenn jemand paar Ideen dazu hat, ich würde mich freuen :).

Gruss
Carl

  1. Hi Carl,

    Idee habe ich ... ääm keine, aber ein sehr ähnliches Problem. Nur leider weiß ich nicht, ob es genau das gleiche Problem ist. Du schreibst von "HTML" und "Session" und "einloggen". Passt das zusammen ? Benutzt Du eine serverseitige Technik ? Bei mir gibts Probleme mit Session-Variable unter ASP während des Einloggens in einen geschützten Bereich im Zusammenhang mit Frames (und der variablen Laufzeit der beiden HTML-Dateien vom Server zum Client). Kommt Dir das bekannt vor ?

    Ciao
    Hans-Peter

    1. Hi Hans-Peter

      stimmt, da hab ich wohl was vergessen ;)
      ICh versuche das ganze mit PHP zu lösen, aber da ich vermute, dass das Problem eher im HTML Bereich liegt, hab ich es mal zu HTML gesetzt.

      Gruss
      Carl

      1. Hio,

        stimmt, da hab ich wohl was vergessen ;)
        Ich versuche das ganze mit PHP zu lösen, aber da ich vermute, dass das Problem eher im HTML Bereich liegt, hab ich es mal zu HTML gesetzt.

        denke mal falsch getippt. HTML kennt weder Sessions noch Cookies noch hat das irgendwas mit PHP zu tun. HTML ist schlicht und ergreifend eine Markup-Sprache, nichtmal ne Programmiersprache.

        Wenn du ein wenig durch das Archiv hier stöbern würdest, würdest du sicherlich einige informative Antworten zu diesem Thema finden.

        Mein Tipp an der Stelle, wenn nicht wirklich unbedingt notwendig lass das mit den Frames, da Frames in diesem Punkt nur Probleme verursachen die du ohne Frames erst garnicht hättest.

        gl & hf

        Thorsten

        1. Hello,

          wo lieg das Problem?

          Ich vermute, Du hast keine saubere Planung gemacht, keine Bilder gemalt vorher und deshalb überhaupt keine Ahnung davon, was wann wo auf wessen Veranlassung hin passiert? :-)

          Also Schritt 1: Mach Dir ne Zeichnung. Server, Script mit den verschiedenen Verzweigungen, Darstellungsseite mit den Verschiedenen erscheinungsbildern. Die Malst Du Dir auf nen Schönes Blatt Papier und dann für jeden Zustand, den die Darstellung annehmen kann, einen Aufleger, also wie beim Möbelschieben.

          Und siehe da, dann kapierst Du auch, dass Session und Anmelden nix miteinander zu tun haben. Die beiden Vorgänge musst Du durch intelligentes Programm erst miteinander verbinden. Und wenn man Frames hat, dann erhöht sich die Datenbanklast. Sowohl die Index-Datei (Frameset) als auch jede darzustellende Datei (Frames) müssen immer wissen, in welchem Zustand sich die Anzeige befindet. Ausnahme: sie zeigen Dinge an, die überhaupt nichts miteinander zu tun haben. Aber Du sprachst ja von einer Navi und die hat eine Relation zum Inhalt.

          Grüße

          Chris©

          1. Hallo Chris©

            Carlo ist sicher sehr dankbar für Deine konstruktiven Anregungen. Neben den Trivial-Problemen, die man durch Gemälde auf einem schönen Blatt Papier, den freundlichen Helfern auf dem steinigen Weg der Erkenntnis und dem anschließenden Kapieren der Zusammenhänge lösen kann, gibt es aber auch Fragestellungen, die so leicht keiner Lösung zuzufühen sind.
            Ich würde vielleicht nicht ganz so sensibel reagieren, wenn ich nicht vor einem Jahr genau das gleiche Problem wie Carlo gehabt hätte (allerdings unter ASP), dass ich - trotz Reduktion auf das Elementare (Banal-Frameset und Session-Variable) weder selber lösen konnte noch von den einschlägigen ASP-Gurus in anderen, dedizierten ASP-Foren und Boards - trotz Demo-Frameset im Internet zum Ausprobieren und Offenlegung der ASP-Sourcen - gelöst bekam.
            Wenn Du also nicht kapierst, worin Carlos Problem besteht, dann nützt es ihm auch nichts hier herum zu klugsch****ern.

            Grüße in das Hinterland
            Hans-Peter

            1. Aber Hallo, Hans-Peter,

              Wenn Du also nicht kapierst, worin Carlos Problem besteht, dann nützt es ihm auch nichts hier herum zu klugsch****ern.

              Dann erklär Du doch mal, wo das Problem liegt, und ich erklär dann, wie man es löst :-))

              Grüße

              Chris©

              1. Hi Chris©,

                sorry für den unfreundlichen Ton. Vielleicht bin ich heute mit dem falschen Bein zuerst aus dem Bett gefallen (plumps !). Carl´s Problem muss er schon selber formulieren. PHP ist nicht meine Domäne. Wenn Du jedenfalls sein Problem gelöst hast, kannst Du Dich gerne um mein ASP-Problem kümmern. Das klingt sehr ähnlich und liegt immer noch auf Halde.

                Ciao
                Hans-Peter

            2. Hio,

              Carlo ist sicher sehr dankbar für Deine konstruktiven Anregungen. Neben den Trivial-Problemen, die man durch Gemälde auf einem schönen Blatt Papier, den freundlichen Helfern auf dem steinigen Weg der Erkenntnis und dem anschließenden Kapieren der Zusammenhänge lösen kann, gibt es aber auch Fragestellungen, die so leicht keiner Lösung zuzufühen sind.

              denoch ist ein Blatt Papier eine gute Möglichkeit das ganze zu visualisieren um die einzelnen Abläufe besser zu verstehen und dadurch eine Lösung zu finden. Ich mache das auch sehr gerne.

              Wenn Du also nicht kapierst, worin Carlos Problem besteht, dann nützt es ihm auch nichts hier herum zu klugsch****ern.

              sowas kann man in dem Beitrag rauslesen. Stimmt schon, liest sich nicht wirklich konstruktiv gemeint.

              Das jede darzustellende Datei immer den Zustand kennen muss klingt etwas dramatisiert. Das Kernproblem ist gelöst denke ich wenn jedes Frame die Session-Id kennt. Da die Session-Id nur die Kennung ist für die Daten die der Server verwaltet.
              Also wäre der erste Lösungsansatz die Einloggseite selbst nicht innerhlab eines Framesets zu realisieren, sondern beim erfolgreichen einloggen das Frameset zu laden und dort die Links z.b. mit der entspr. Session-Id zu versehen. Damit sind sicherlich nicht alle Probleme gelöst, aber ein Ansatz.
              Muss Chris insoweit rechtgeben, das die Problemstellung ansich jedoch ungernügend beschrieben ist. Auch fehlen Beispiele oder Lösungsansätze.

              gl & hf

              Thorsten

  2. Nolimetongere,

    also wenn du jetzt von PHP redest, dann kann ich vielleicht einen teil dazu beitragen.
    wenn du die session startest (in irgendeiner include, poup, einfache datei), wird sie
    in dem frame, in dem du sie gestartest hast, erst dann aktiv (d.h. man kann auf sie
    zugreifen), wenn du die seite neu geladen hast.
    sprich: du hast eine seite, zB mit einem login. durch das abschicken der daten gelangt
    man auf eine seite, die ein coookie setzt. diese muss dann auf eine neue datei, bzw.
    halt wieder die alte datei verweisen. erst dann kannst du auf die session zugreifen...
    ---
    wenn ich mich irre, mag mich gerne einer eines besseren belehren, aber ich hatte bis
    jetzt immer dieses problem...

    Zebulon
    The Interim Polytoximonium

    --
    <img src="http://www.dmp-web.de/xCell/zebulon.jpg" border="0" alt="">
    [bitte bitte weg mich nicht -
    so lang ich träume gibts nur mich]
    1. Nolimetongere,

      in dem frame, in dem du sie gestartest hast, erst dann aktiv (d.h. man kann auf sie

      ...hab mich falsch ausgedrückt. ^ das zwischen dem "," entfällt (!)

      Zebulon
      The Interim Polytoximonium

      --
      <img src="http://www.dmp-web.de/xCell/zebulon.jpg" border="0" alt="">
      [bitte bitte weg mich nicht -
      so lang ich träume gibts nur mich]
    2. Nolimetongere,

      also wenn du jetzt von PHP redest, dann kann ich vielleicht einen teil dazu beitragen.
      wenn du die session startest (in irgendeiner include, poup, einfache datei), wird sie
      in dem frame, in dem du sie gestartest hast, erst dann aktiv (d.h. man kann auf sie
      zugreifen), wenn du die seite neu geladen hast.

      hm, ich denke das stimmt so nicht ganz. Die Session wird innerhalb des PHP-Skriptes gestartet und ist somit aktiv. PHP schickt dem Client dann die Session-Id (sofern so konfiguriert) innerhalb seiner Antwort mit. Das heisst, nach dem "einloggen" über ein Formular besteht die Session sofern gestartet.

      sprich: du hast eine seite, zB mit einem login. durch das abschicken der daten gelangt
      man auf eine seite, die ein coookie setzt. diese muss dann auf eine neue datei, bzw.
      halt wieder die alte datei verweisen. erst dann kannst du auf die session zugreifen...

      nein, siehe oben. Auf alles was die Session betrifft kannst du natürlich auch in dem Skript das diese zum ersten mal startet zugreifen. Wäre ja auch unlogisch in dem Skript nicht an die Daten zu kommen die man dort gesetzt hat.

      gl & hf

      Thorsten

      1. Hallo

        also wenn du jetzt von PHP redest, dann kann ich vielleicht einen teil dazu beitragen.
        wenn du die session startest (in irgendeiner include, poup, einfache datei), wird sie
        in dem frame, in dem du sie gestartest hast, erst dann aktiv (d.h. man kann auf sie
        zugreifen), wenn du die seite neu geladen hast.

        hm, ich denke das stimmt so nicht ganz. Die Session wird innerhalb des PHP-Skriptes gestartet und ist somit aktiv. PHP schickt dem Client dann die Session-Id (sofern so konfiguriert) innerhalb seiner Antwort mit. Das heisst, nach dem "einloggen" über ein Formular besteht die Session sofern gestartet.

        sprich: du hast eine seite, zB mit einem login. durch das abschicken der daten gelangt
        man auf eine seite, die ein coookie setzt. diese muss dann auf eine neue datei, bzw.
        halt wieder die alte datei verweisen. erst dann kannst du auf die session zugreifen...

        nein, siehe oben. Auf alles was die Session betrifft kannst du natürlich auch in dem Skript das diese zum ersten mal startet zugreifen. Wäre ja auch unlogisch in dem Skript nicht an die Daten zu kommen die man dort gesetzt hat.

        Das Problem ist aber, daß der linke Frame nichts von der Session weiß,
        da diese nach dem Laden des Framesets im rechten Frame gestartet wurde.

        Tschö, Auge

        --
        Die Musik drückt aus, was nicht gesagt werden kann und worüber es unmöglich ist zu schweigen.
        (Victor Hugo)
        1. Hio Auge,

          Das Problem ist aber, daß der linke Frame nichts von der Session weiß,
          da diese nach dem Laden des Framesets im rechten Frame gestartet wurde.

          deswegen mein Vorschlag die Session von einer framelosen Seite aus zu starten. Das andere Frame kann von PHP aus nicht aktualisiert werden, unmöglich, dann müsste man auf Hilfsmittel wie JavaScript zurückgreifen, was aber auch niemals 100% funktionieren kann und wird.
          Worin liegt das Problem ein login ohne Frames zu gestalten?

          gl & hf

          Thorsten

          1. Hallo

            deswegen mein Vorschlag die Session von einer framelosen Seite aus zu starten.

            ganz meiner Meinung! :-)

            Das andere Frame kann von PHP aus nicht aktualisiert werden, unmöglich, dann müsste man auf Hilfsmittel wie JavaScript zurückgreifen, was aber auch niemals 100% funktionieren kann und wird.

            Eben.

            Worin liegt das Problem ein login ohne Frames zu gestalten?

            Ich habe damit _überhaupt_ kein Problem.
            Und nur so, ohne Frames, würde ich es machen.

            Tschö, Auge

            --
            Die Musik drückt aus, was nicht gesagt werden kann und worüber es unmöglich ist zu schweigen.
            (Victor Hugo)