wolfi: auf php session domainübergreifend zugreifen

ich habe folgendes Problem:

ich möchte/muss ein und dieselbe Session von 2 verschiedenen Domains (die beide
auf den selben Server pointen, http und ssl) aus ansprechen.

hier mein Lösungsansatz:
beim sprung von http auf die ssl Verbindung übergebe ich per get (Parametername
'SESSID') die session_id und verarbeite sie im aufgerufenen File wie folgt:
        if(!empty($_GET['SESSID'])){
                session_id($_GET['SESSID']);
        }

hierdurch wird eigentlich die Session übernommen und auch das PHPSESSID cookie
für die SSL-Domain korrekt gesetzt.

der nachfolgende Aufruf sollte dann ja die bereits vorhandene Session öffnen
(die SID ist durch den aufruf session_id($_GET['SESSID']); von oben ja
hinterlegt.):

session_start();

funktioniert auch, aussser dass ich auf die bereits registrierten
Sessionvariablen über

$HTTP_SESSION_VARS[]

keinen Zugriff bekomme.
auch die Abfrage mit session_is_registered() für die angelegten
Sessionvariablen gibt false zurück.

Sessionvariablen die ich dann im SSL Bereich neu registriere funktionieren
tadellos.

Wenn ich wieder zurück wechsle in den http bereich könnend die vorhin dort
angelegten variablen einwandfrei ausgelesen werden. Das Session file wird also
nicht überschrieben. Jedoch sind hier dann die registrierten Variablen aus dem
SSL Bereich nicht mehr ansprechbar...

  1. hi,

    funktioniert auch, aussser dass ich auf die bereits registrierten
    Sessionvariablen über $HTTP_SESSION_VARS[] keinen Zugriff bekomme.
    auch die Abfrage mit session_is_registered() für die angelegten
    Sessionvariablen gibt false zurück.

    Wie veraltet ist deine PHP-Version, dass du die beiden Konstrukte noch benutzt?
    Zum Zugriff auf Session-Werte solltest du ausschliesslich $_SESSION nutzen.

    Wenn ich wieder zurück wechsle in den http bereich könnend die vorhin dort angelegten variablen einwandfrei ausgelesen werden. Das Session file wird also nicht überschrieben.

    Ich vermute mal, dass es sich um zwei vollkommen verschiedene "Session Files" handelt - du hast es nur noch nicht gemerkt :-)

    Vergleiche mal bei beiden Versionen - HTTP und HTTPS - die betreffenden Session-Einstellungen mittels phpinfo() - insb. session.save_path wäre interessant.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }