WernerK: Mehrere Browser Instanzen, gleiche Session?

Hallo,
Im Hauptfenster (PHP) steht session_start();
Bestimmte Daten werden in einer Session gespeichert.
Vom Hauptfenster aus öffnet mit einem Klick auf einen Button mit
window.open(...) ein neues Fenster.
In diesem neuen Fenster steht als Erstes auch
session_start();
Beim speichern dieses Fensters wird ein text in der gleichen Session gespeichert. Soweit so gut.
Das Problem: Ein Kollege hat einen eigenen Browser gemacht, der intern mit den IExplorer Dlls arbeitet. Wenn man hier das gleiche macht wie oben, wird beim neuen Fenster eine neue IE Instanz aufgemacht und die Daten werden in einer eigenen anderen Session gespeichert.

Ich hoffe ich konnte es richtig beschreiben.
Wie könnte man erreichen das die Daten immer in der gleichen "Hauptsession" gespeichert werden.

Gruss
Werner

  1. Hi WernerK!

    wird die Session-ID per Cookie übertragen oder per URL? Ich könnte mir vorstellen, dass das Cookie bei der neuen Instanz nicht da ist und einfach eine neue Session gestartet wird (weil die alte nicht wieder aufgenommen werden kann). Versuchs mal damit, die SID direkt per URL mit zu liefern.

    tschau
    ichen

    1. Hallo ichen,

      wird die Session-ID per Cookie übertragen oder per URL?

      hmm, sorry die dummer Frage aber woher weiss man das bzw. welche Einstellung ist dafür relevant? Irgend was in der PHP.ini ? Habe da bisher nie was gemacht.

      Versuchs mal damit, die SID direkt per URL mit zu

      Wie geht das? Also nach session_start() mit session_id() die SID holen?

      Gruss
      Werner

      1. Ich glaub ich habs kapiert wie es du meinst.

        Wenn ich das neue Fenster mit
        window.open(neu.php?<?php echo SID; ?>)  aufrufe
        dann wird alles in der gleichen Session gespeichert.

        Klasse Tip , danke dafür.

        Gruss
        Werner

    2. Leider muss ich mich korrigieren.

      Bei mir auf dem PC klappt es. Hier habe ich den IE 9.

      Bei einem anderen Test PC mit IE 8 klappt es leider nicht. Hier sieht man garnicht die Session in der URL.
      Können das event. irgend welche Sicherheitseinstellungen sein?

      Gruss
      Werner

      1. Hi,

        Bei einem anderen Test PC mit IE 8 klappt es leider nicht. Hier sieht man garnicht die Session in der URL.

        Lese bitte im Handbuch nach, was die Konstante SID enthält.

        MfG ChrisB

        --
        RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
        1. Hallo Chris

          Lese bitte im Handbuch nach, was die Konstante SID enthält.

          was soll mir deine Antwort sagen?
          Es geht doch das es auf einem PC funktioniert und auf einem anderen nicht.
          Auf beiden läuft der gleiche Xammp Server und Win Server 2008 R2
          Nur bei einem hat man IE 8 der andere ist IE9

          Ich mache es doch so wie im Manual beschrieben:

          <a href="test.php?action=next&<?=SID?>">next</a>

          Gruss
          Werner

          1. Hi,

            Lese bitte im Handbuch nach, was die Konstante SID enthält.

            was soll mir deine Antwort sagen?
            Es geht doch das es auf einem PC funktioniert und auf einem anderen nicht.

            Was soll mir *diese* Antwort sagen?
            Dass du nicht in der Lage bist, mal ansatzweise sinnvoll zu debuggen?

            Ich mache es doch so wie im Manual beschrieben:

            <a href="test.php?action=next&<?=SID?>">next</a>

            Ich wiederhole, mit noch einer Einfügung:
            Lese bitte im Handbuch nach, was die Konstante SID wann enthält.

            MfG ChrisB

            --
            RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
          2. Hi WernerK!

            Auf beiden läuft der gleiche Xammp Server und Win Server 2008 R2

            Testest du auf zwei _verschiedenen_ lokalen Servern, die auf zwei verschiedenen Rechnern Laufen?

            tschau
            ichen

            --
            Ichen
            1. Hallo,

              Testest du auf zwei _verschiedenen_ lokalen Servern, die auf zwei verschiedenen Rechnern Laufen?

              Genau, beide haben die gleiche XAMPP und Win 2008 R2. Der einzige Unterschied ist das ein Rechner den IE 8 hat und der andere IE9.

              1. Hello,

                Testest du auf zwei _verschiedenen_ lokalen Servern, die auf zwei verschiedenen Rechnern Laufen?

                Genau, beide haben die gleiche XAMPP und Win 2008 R2. Der einzige Unterschied ist das ein Rechner den IE 8 hat und der andere IE9.

                Und hast Du nun schon mal kreuzweise zugegriffen? Oder verbindet die beiden kein Netz?

                Liebe Grüße aus dem schönen Oberharz

                Tom vom Berg

                --
                 ☻_
                /▌
                / \ Nur selber lernen macht schlau
                http://bergpost.annerschbarrich.de
                1. Hallo Tom,
                  danke für deine Hilfe.

                  Und hast Du nun schon mal kreuzweise zugegriffen? Oder verbindet die beiden kein Netz?

                  Nein, das sind ganz unterschiedliche Lokationen.
                  Was mir noch aufgefallen ist.
                  Bei dem Rechner wo es nicht geht, wird im IE Browser auch keine URL im Fensterrahmen angezeigt. Bei meinem IE9 ist sie aber da.

                  Ich habe auch mal ein wenig gegoogelt. Ich hatte hier mal was interessantes gefunden wo Leute ähnliche Probleme mit dem IE 8 berichten.

                  http://stackoverflow.com/questions/1324181/ie8-losing-session-cookies-in-popup-windows

                  Ich weiss zwar nicht ob das mit meinem Problem zu tun hat?

                  Gruss
                  Werner

                  1. Hi WernerK!

                    http://stackoverflow.com/questions/1324181/ie8-losing-session-cookies-in-popup-windows
                    Ich weiss zwar nicht ob das mit meinem Problem zu tun hat?

                    Wenn du die SessionID nicht in einem Cookie abspeicherst, sondern mittels URL übergibst, sollte dieses Problem keines für dich sein. Hier geht es explizit um Cookies die verloren gehen... eine mittels GET übermittelte Variable sollte auch das Starten einer neuen IE-Instanz überleben ;-)

                    tschau
                    ichen

                    --
                    Ichen
              2. Hi WernerK!

                du solltest sicherstellen, dass auf _beiden_ Servern short_open_tag in der php.ini auf 1 ist, sonst bringt <?=SID; ?> nämlich garnichts.
                Zusätzlich empfehle ich dir, die Laufzeitkonfiguration zum Thema Sessions zu lesen. Dort steht, wie du z.B. Cookies für Sessions abschaltest. Das ist zwingend nötig (SID), wie ChrisB bereits andeutete.

                Obendrein solltest du wirklich sichergehen, dass beide Server gleich konfiguriert sind (PHP Version und php.ini), wenn du mit zwei unterschiedlichen Servern testest. Ansonsten starte XAMPP auf _einem_ rechner und steuere ihn mittels lokaler IP-adresse an (vorausgesetzt sie hängen im selben Netzwerk; z.B. 192.168.2.5:80). Damit ersparst du dir evtl. Probleme.

                tschau
                ichen

                --
                Ichen
          3. Hello,

            Lese bitte im Handbuch nach, was die Konstante SID enthält.

            was soll mir deine Antwort sagen?
            Es geht doch das es auf einem PC funktioniert und auf einem anderen nicht.
            Auf beiden läuft der gleiche Xammp Server und Win Server 2008 R2
            Nur bei einem hat man IE 8 der andere ist IE9

            Und hast Du es schon mal kreuzweise versucht zuzugreifen? Wie ist das Verhalten dann?

            Must Du natürlich einen DNS-Eintrag in die Hosts-Datei schreiben, wenn noch kein genereller DNS besteht für die Geräte...

            Liebe Grüße aus dem schönen Oberharz

            Tom vom Berg

            --
             ☻_
            /▌
            / \ Nur selber lernen macht schlau
            http://bergpost.annerschbarrich.de
            1. Hallo Tom,

              Auf beiden läuft der gleiche Xammp Server und Win Server 2008 R2

              Und hast Du es schon mal kreuzweise versucht zuzugreifen? Wie ist das Verhalten dann?
              Must Du natürlich einen DNS-Eintrag in die Hosts-Datei schreiben, wenn noch kein genereller DNS besteht für die Geräte...

              wer mindestens zwei Windows Server 2008 R2 im Einsatz hat und keinen DNS-Server konfiguriert hat, gehört gesteinigt. DNS ist essentieller Bestandteil für ein funktionierendes Active Directory.

              Freundliche Grüße

              Vinzenz