Session nur auf eine einzige Seite beziehen
Kluso
- php
0 Alex0 ChrisB1 Sven Rautenberg
Hi,
ich habe ein Programm auf mehreren URLs laufen.
Also z.b. auf
www.meineseite.de/unterverzeichnis1/script.php
und auf
www.meineseite.de/unterverzeichnis2/script.php
Wenn ich mich nun aus dem ersten Programm auslogge, bin ich auch aus dem 2. Programm raus, weil ich die Session zerstöre, bzw. $_SESSION['logstatus'] auf "nein" setze.
Wie muss ich vorgehen, um auf beiden URLs autark mit dem Programm arbeiten zu können?
Kann man eine Art Präfix für $_SESSION verwenden oder sowas?
Gruß, Klaus
Hi,
Kann man eine Art Präfix für $_SESSION verwenden oder sowas?
Vielleicht gibt es über die PHP-Konfiguration ja noch eine elegantere Variante - keine Ahnung. Aber auf jeden Fall kannst du doch die Session vergeben wie du willst. Also z.B.
$_SESSION['site1_loginstatus']
oder evtl. sogar schöner
$_SESSION['site1']['loginstatus']
Gruß
Alex
Aber auf jeden Fall kannst du doch die Session vergeben wie du willst. Also z.B.
$_SESSION['site1_loginstatus']
Hi,
habe ich nun gemacht.
Aber session_destroy löscht mir dann trotzdem das komplette Array $_SESSION, wenn ich mich aus einer der beiden URL auslogge. :-(
Gruß, Klaus
Aber session_destroy löscht mir dann trotzdem das komplette Array $_SESSION, wenn ich mich aus einer der beiden URL auslogge. :-(
Dann würde ich vorschlagen, dass du session_destroy nicht nutzt, sondern den $_SESSION['seite1'] Array kaputt machst, wenn du ihn nicht mehr brauchst - anstatt die ganze Session.
Gruß
alex
Hi,
Wenn ich mich nun aus dem ersten Programm auslogge, bin ich auch aus dem 2. Programm raus, weil ich die Session zerstöre, bzw. $_SESSION['logstatus'] auf "nein" setze.
In erster Linie ist die Ursache des Problems also, dass beide „Installationen“ die gleiche Session nutzen.
Wie muss ich vorgehen, um auf beiden URLs autark mit dem Programm arbeiten zu können?
Dafür sorgen, dass beide unterschiedliche Sessions nutzen.
Wenn die Übergabe der Session-ID rein cookie-basiert erfolgt - dann reicht es aus, einfach den path-Parameter für das Setzen dieses Cookies entsprechend zu setzen. (Siehe http://www.php.net/manual/en/session.configuration.php#ini.session.cookie-path)
Wenn die Übergabe per URL-Parameter automatisch durch aktiviertes session.use_trans_sid erfolgt, dann gibt es m.W. keine Möglichkeit, direkt darüber parallel laufende Installationen eines Scriptes voneinander abzugrenzen. (Wobei sie sich, wenn keine Cookies im Spiel sind, überhaupt nur dann in die Quere kommen könnten, wenn von der einen zur anderen verlinkt, und dabei die Session-ID mit übergeben wird.) Du könntest allerdings das Verzeichnis, unter dem die Session-Dateien abgelegt werden (session.save_path) für beide unterschiedlich setzen. Selbst wenn dann beide die selbe Session-ID nutzen sollten, würden sie die jeweiligen Daten dennoch in Dateien in verschiedenen Verzeichnissen schreiben, so dass sie dadurch auch voneinander unabhängig bleiben.
MfG ChrisB
Moin!
ich habe ein Programm auf mehreren URLs laufen.
Also z.b. auf
www.meineseite.de/unterverzeichnis1/script.php
und auf
www.meineseite.de/unterverzeichnis2/script.php
Nutze einen individuellen session_name().
- Sven Rautenberg