Ankündigung

Einklappen
Keine Ankündigung bisher.

Frames mit Sessions das ewige Problemkind

Einklappen

Neue Werbung 2019

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

  • Frames mit Sessions das ewige Problemkind

    Hallo, ich habe ein Frameset mit Sessions gebaut. Nur wenn ich mir in jedem Frame die Seeion ausgeben lasse, habe ich unterschiedliche Session ids. Hier mal der Code des Framesets.

    PHP-Code:
    <?php
    session_start
    ();
    ?>
    <html>
    <head>
    <title>Kasus Computer Shop</title>
    <link href='standard.css' rel='stylesheet' type='text/css'>
    </head>


    <frameset cols='200, *, 200' frameborder = '1' bordercolor='#000000' style='border-style:outset;'>
        <frameset rows='130, 110, *'>
            <frame name='logo1' src='logo.php' scrolling='no' marginheight='0'>
    <?php
    echo"           <frame name='warenkorbklein' src='https://sslsys.de/web21/html/warenkorb/warenkorb_klein.php?".SID."' scrolling='no' marginheight='5' marginwidth='10'>        
            <frame name='navigation' src='werbung.php?"
    .SID."' scrolling='auto'>    ";
    ?>    
        </frameset>
        <frameset rows='130, *'>
    <?php    
    echo"        <frame name='oben' src='oben.php?".SID."' scrolling='auto'>
            <frame name='anzeige' src='navigation/produktanzeige.php?"
    .SID."' scrolling='auto' marginheight='20' marginwidth='10'>";
    ?>
        </frameset>
        <frameset rows='130, 135, 150,*'>
    <?php
    echo"                <frame name='logo2' src='logo.php' scrolling='no' marginheight='0'>
            <frame name='suche' src='produktsuche/produktsucheeingabe.php?"
    .SID."' scrolling='no'>    
            <frame name='login' src='https://sslsys.de/web21/html/formulare/login.php?"
    .SID."' scrolling='no'>           
            <frame name='links' src='links.php' scrolling='auto'> "
    ;
    ?>             
        </frameset>
        <noframes>
        <body>
        

    Leider unterstützt ihr Webbrowser keine framebasierten Webseiten.</a></p>
        </body>
        </noframes>
    </frameset>

    </html>
    Villeicht kann mir ja jemand helfen, wär cool. Danke.


  • #2
    Hi.

    Ich vermute mal, dass dein Test-Browser den Session-Keks akzeptiert,
    deshalb SID leer ist und der Cookie dann nicht an die SSL-Domain geschickt
    wird. Lehn den Cookie mal ab und schau, obs dann geht. In dem Fall kannst
    du dann entweder die Verwendung von Session-Cookies abschalten
    (session.use_cookies oder so) oder anstatt SID eben
    session_name()=session_id() schreiben.

    Das der Einsatz von Frames hier wie generell sehr fragwürdig ist, ist dir
    hoffentlich klar.

    Basti

    Kommentar


    • #3
      Ich habe mittlerweile herausgefunden, dass es am IE hängt.
      Mit Mozilla geht es einwandfrei.
      Wenn ich beim IE die Seiter das erste Mal lade, geht es auch noch, aber wenn ich auf den Reload klicke, dann stimmen nur noch drei von den 5 Frames,
      die anderen beiden erstellen bei jedem Neuladen eine neue Sessionid.
      Vielleicht kann mir da jemand weiterhelfen.
      Danke.

      Kommentar


      • #4
        Wie wird das frameset aufgerufen? Wird dabei auch schon eine session_id übergeben?
        Akzeptiert der IE den Sessioncookie?

        Kommentar


        • #5

          Da haben wir wohl gleichzeitig geschrieben.
          Ich habe nun die Cookies deaktiviert, und nun gehts, aber wenn ein User Cookie akzeptiert, dann könnte es doch zu Problemen kommen. Wieso werden da dann nur 2 der Frames mit einem neuen Cookie belegt.

          Das der Einsatz von Frames hier wie generell sehr fragwürdig ist, ist dir hoffentlich klar
          Ich habe nun schon so oft gelesen, dass Frames nicht gut wären, aber warum? Das habe ich bis heute nicht erfahren.
          Ich habe bei mir keine Probs mit den Frames, ich finde die wunderbar, da kann man schön das Fenster aufteilen. Man sollte halt nciht zu kleine und zu viele machen.

          Kommentar


          • #6
            Akzeptiert der IE den Sessioncookie?
            Bei IE ist das auf automatische Cookieverwaltung eingestellt (Standard), da viele User nichts verstellen, ahb ich mir gedacht, ich probiere es it den Standardeinstellungen.
            Manchmal akzeptiert er scheinbar Cookies und manchmal nicht, ganz komisch.

            Wie wird das frameset aufgerufen? Wird dabei auch schon eine session_id übergeben?
            Das Frameset ist die Startseite, die erzeugt normalerweise das erste Mal eine Sessionid.

            Kommentar


            • #7
              Das Frameset ist die Startseite, die erzeugt normalerweise das erste Mal eine Sessionid.
              Tut sie eben auch bei einem reload, wenn nicht anderweitig (zB per Cookie) die Session_id dorthin gelangt.
              Wenn das Abschalten der Cookies das Problem behebt, tippe ich einfach mal auf die verwendeten Cache-header. Kein session cookies, keine session cache delimiter headers.

              Kommentar


              • #8
                Zitat von Smiley
                Ich habe nun die Cookies deaktiviert, und nun gehts,
                aber wenn ein User Cookie akzeptiert, dann könnte es doch zu Problemen
                kommen.
                Ich hab doch zwei Lösungsmöglichkeiten angesprochen: Entweder
                serverseitig keine Cookies verschicken (was die schlechtere Alternaive
                wäre) oder eben nicht SID verwenden, sondern die SID explizit übergeben
                (also unabhängig davon, ob der Client den Keks akzeptiert hat oder nicht).

                Wieso werden da dann nur 2 der Frames mit einem neuen Cookie belegt.
                Cookies werden nur an die Domain geschickt, von der sie auch
                geschrieben wurden. Und SID ist eben leer, wenn das Cookie-Setzen
                gelungen ist. Woher soll nun also deine SSL-Domain die Session-ID
                bekommen? Kein Cookie, kein GET-Paramter - nichts...

                Bist du sicher, dass du dich an die Programmierung eines Shops machen
                möchtest? Da hängt ja doch einiges an Verantwortung dran und ohne
                gute PHP-Grundlagen ist einer solchen schwer nachzukommen.

                Das der Einsatz von Frames hier wie generell sehr
                fragwürdig ist, ist dir hoffentlich klar
                Ich habe nun schon so oft gelesen, dass Frames nicht gut wären, aber
                warum? Das habe ich bis heute nicht erfahren.
                Ich habe bei mir keine Probs mit den Frames, ich finde die wunderbar, da
                kann man schön das Fenster aufteilen. Man sollte halt nciht zu kleine und
                zu viele machen.
                Die Alternative, was die scrollbaren Unterbereiche angeht, sind scrollbare
                div-Boxen. Das ist mit css kein Porblem.

                Vorteil von Frames sind in meinen Augen nur das Transfervolumen, das
                du sparst, wenn du nur enzelne Bereiche aktualisierst. Und natürlich
                musst du den Status der Views nicht in die Session packen und bei jedem
                Aufruf wiederherstellen oder überhaupt das Zusammenspiel der
                Komponenten großartig koordinieren.

                Nachteile:
                Bookmarking,
                Suchmaschinenfreundlichkeit,
                Notwendigkeit des Einsatzes von JavaScript (gegen Deep-Linking und zum
                Aktualisieren von Seiten in mehreren Frames),
                Benutzbarkeit mit nicht-grapischen Browsern extrem eingeschränkt.

                Lies mal z.B. das hier:
                http://www.einfach-fuer-alle.de/artikel/frames/
                oder das:
                http://www.subotnik.net/html/frames.html

                Und, vermutlich legst du dich bei der Verwendung eines Frameset sehr
                stark auf dieses fest, da es wahescheinlich recht aufwändig ist, dass sich
                abhängige Komponenten (z.B. die Navigation) bei anderen Komponenten
                (z.B. der Hauptinhalt) registrieren, um bei Änderungen aktualisiert zu
                werden. Folglich wird die Komponente, die den Hauptinhalt generiert in
                aller Regel schon mit eingepflanzt haben, die Navigation zu aktualisieren,
                was Änderungen sehr aufwändig machen könnte. Scheint zumindet auf
                einen flüchtigen Blick hin so zu sein - ich hab seit einigen Jahren kein
                Frameset mehr produziert... äh produzieren lassen.

                Basti

                Kommentar


                • #9
                  Das mit der manuellen Übergabe der Session funktioniert, dafür mal danke.

                  Bist du sicher, dass du dich an die Programmierung eines Shops machen
                  möchtest? Da hängt ja doch einiges an Verantwortung dran und ohne
                  gute PHP-Grundlagen ist einer solchen schwer nachzukommen.
                  Ich will aml so sagen. Ich bin kein blutiger Anfänger was PHP angeht, ich habe lediglich noch nie was mit Sessions gemacht.
                  Ausserdem habe ich auch schon einiges gelesen, was die Sicherheit betrifft. Sprich Eingabe in DB, ausschalten von Fehlermeldungen, magic_quotes...
                  Aber ich lasse mich gerne belehren, wenn ich was noch nicht wissen sollte.

                  Kommentar

                  Lädt...
                  X