Mehrere Browser Instanzen, gleiche Session?
WernerK
- php
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
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
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
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
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
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
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
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
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
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.
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
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
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
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
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
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