jimbob: kann SESSION verloren gehn?

hallo,

kann es sein dass wenn ich ein popup einer site öffne die session variablen dieser site für diese neue instanz des fensters verloren gehn?
hab das problem noch nie gehabt, aber manche leute berichten, dass wenn sie ein popup der page öffnen die session daten nicht aufscheinen! woran kann dies liegen?
da die session ja am server abläuft sollte ja egal sein in welchem browser window ich die sessionvariablen abrufe, oder?
kann es an der identifikation des clientrechners liegen?

THX jimbob

  1. Das Problem hatte ich auch und denke, es liegt am Client. Nach dem Schließen des Popups läuft die Sitzung im Hauptfenster nämlich schön weiter.
    Mein Workaround: Beim Aufruf des PopUps die PHPSESSID mit übergeben und im PopUp folgenden Code unterbringen:

    // Wenn die Session-ID bekannt ist, dann bitte keine neue Session initialisieren
    // (ergab Probleme beim Öffnen eines PopUps)
    if (isset($_GET["PHPSESSID"]))
     session_id($_GET["PHPSESSID"]);
    if (isset($_POST["PHPSESSID"]))
     session_id($_POST["PHPSESSID"]);

    // Session initialisieren (speichert ein Cookie beim Client, damit Benutzername und Passwort
    // nicht bei jedem Seitenaufruf erneut eingegeben werden müssen)
    session_start();

    Der Yeti

    --
    Habe nun, ach! WInfo, BWL, und Mathe, Und leider auch Info!
    Durchaus studiert, mit heißem Bemühn. Da steh' ich nun, ich armer Thor!
    Und bin so klug als wie zuvor!
    1. Moin!

      Das Problem hatte ich auch und denke, es liegt am Client. Nach dem Schließen des Popups läuft die Sitzung im Hauptfenster nämlich schön weiter.

      Natürlich liegt es in erster Konseqenz am CLient. Wenn dieser Cookies ablehnt, muß die Session-ID per URL-Parameter oder Extra-Formularfeld übergeben werden.

      PHP kann so eingestellt werden, dass es diese IDs automatisch an Links dranhängt. Das funktioniert aber nur bei ganz normalen HTML-Links ohne Javascript, und bei ganz normalen Formularen.

      Da ein Popup aber mit Javascript geöffnet werden muß, muß man die Session-ID hier manuell dranhängen.

      Das geschieht bei einfachen URLs ganz simpel durch dranhängen der Konstanten SID, welche im Bedarfsfall einen String der Art "PHPSESSID=1567565675" enthält, wenn keine Cookies akzeptiert werden, andernfalls nur "".

      Das Hidden-Feld in Formularen muß man manuell mit den Angaben session_name() für das name-Attribut und session_id() für das value-Attribut füllen, wenn PHP versagt.

      Mein Workaround: Beim Aufruf des PopUps die PHPSESSID mit übergeben und im PopUp folgenden Code unterbringen:

      Dein Code ist vollkommen überflüssig. session_start() erkennt, wenn kein Cookie mit der Session-ID übergeben wurde, und verwendet dann automatisch die Angaben aus $_POST oder $_GET.

      - Sven Rautenberg

      1. Dein Code ist vollkommen überflüssig. session_start() erkennt, wenn kein Cookie mit der Session-ID übergeben wurde, und verwendet dann automatisch die Angaben aus $_POST oder $_GET.

        Sagst du. Warum funktioniert es bei mir dann nur so?!

        Der Yeti

        --
        Habe nun, ach! WInfo, BWL, und Mathe, Und leider auch Info!
        Durchaus studiert, mit heißem Bemühn. Da steh' ich nun, ich armer Thor!
        Und bin so klug als wie zuvor!
        1. Moin!

          Dein Code ist vollkommen überflüssig. session_start() erkennt, wenn kein Cookie mit der Session-ID übergeben wurde, und verwendet dann automatisch die Angaben aus $_POST oder $_GET.

          Sagst du. Warum funktioniert es bei mir dann nur so?!

          Anderer Session-Name als "PHPSESSID" vielleicht? Der ist schließlich nicht festgelegt, sondern konfigurierbar - auch vom Sysadmin zentral!

          - Sven Rautenberg