johny7: Mehrere Sessions auf einer Domain

Beitrag lesen

Moin allerseits,

Den save_path für die Session-Dateien solltest du auch noch für beide Applikationen unterschiedlich setzen, damit sie sich auch nicht hinsichtlich garbage collection etc. in die Quere kommen.

Das werde ich überprüfen.

Das ist aber der richtige Weg.

Ich habe bisher folgende erfolglos probiert:

login.php

  
session_name(md5($_GET['email'])); // E-Mail ist Key des Logins  
session_start();  
$_SESSION['agent'] = $_SERVER['HTTP_USER_AGENT'];  
// Weitere Session-Variablen  

Anschließend soll die index.php aufgerufen werden:

$sessname = session_name(); // Session-Namen aufrufen  
if ($sessname) // Wenn Session vorhanden  
        {  
        session_name($sessname); // Session-Namen aktualisieren  
        // Eine Session ist vorhanden  
        session_start(); // Session starten  
        }  

Das funktioniert aber nicht. Ich dachte, ich hole mir den Namen der Session (den habe ich ja im Folgeaufruf nicht mehr) und setze dann den Session-Namen neu. Aber ich bekomme immer PHPSESSID zurück.

Noch einmal zum Ablauf: In der login.php lege ich eine benannte Session an. Als Session-Namen verwende ich die md5 der E-Mail-Adresse.

In der index.php versuche ich an den Namen der Session zu kommen. Das mache ich mit einer Zuweisung von session_name() an $sessname. Normalerweise müsste doch dort die md5 der E-Mail-Adresse stehen. Aber wenn ich $sessname danach sofort in eine Konstante schreibe und später ausgebe, steht PHPSESSID drin.
Ich wollte dann anhand von $sessname überprüfen, ob eine Session gesetzt wird und nochmal den Session-Namen mit $sessname setzen (laut php.net muss session_name() ja jedes mal neu gesetzt werden, damit der Name nicht überschrieben wird). Und das klappt jetzt nicht.

Außerdem ist es doch nicht performant, wenn bei jedem Aufruf mit session_start() eine Session angelegt wird. Ich brauche die Session ja nur, wenn jemand eingeloggt ist. Im übrigen habe ich die E-Mail-Adresse desjenigen, der eingeloggt ist, nur beim Login-Vorgang. D.h. ich kann sie in der index.php nicht für session_name() verwenden.

Grüße, JN

--
ie:{ fl:( br:^ va:| ls:[ fo:| rl:? n4:? ss:| de:] js:| ch:? sh:( mo:| zu:)
http://www.johny7.de