Kluso: Session nur auf eine einzige Seite beziehen

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

  1. 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

    1. 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

      1. 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

  2. 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

    --
    RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
  3. 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