user76: Session ID nach Start nicht verfügbar

Hallo,

wenn ich eine Session per session_start() starte, ist die Session ID in dieser Instanz nicht verfügbar, wenn ich sie versuche so an eine URL anzuhängen: http://www.xyz.de/?PHPSESSID=$PHPSESSID.
Sobald ich die Seite erneut lade, wird die Session ID korrekt angehängt.
Dies ist unbedingt notwendig, da sie auf verschiedenen Subdomains eingesetzt wird und ja verlorengeht, wenn man sie nicht anhängt.

Gibt es eine Möglichkeit direkt nach dem Sessionstart an die Session ID zu kommen?

Schönen Dank
User76

  1. Hello,

    wenn ich eine Session per session_start() starte, ist die Session ID in dieser Instanz nicht verfügbar, wenn ich sie versuche so an eine URL anzuhängen: http://www.xyz.de/?PHPSESSID=$PHPSESSID.
    Sobald ich die Seite erneut lade, wird die Session ID korrekt angehängt.
    Dies ist unbedingt notwendig, da sie auf verschiedenen Subdomains eingesetzt wird und ja verlorengeht, wenn man sie nicht anhängt.

    Das ist aber jetzt böse.
    Da spilen verscheidnen Dinge hinein, die wir diskutieren sollten ;-)

    Die aktuelle Session-ID kann man mittels Funktion session_id() erfragen.
    Den aktuellen Session-Namen kann man mittels Funktion session_name() erfragen.

    Das, was Du anhängen müsstest, wenn es denn sinnvoll wäre, ist also

    $sess = session_name().'='.session_id();

    Ich hoffe, dass Du etwas Zeit hast und Dir auch alle Antworten, die hier notwendig sind, genau durchliest.

    Harzliche Grüße aus http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau
    1. Hallo,

      $PHPSESSID = session_id(); war was ich gebraucht habe.

      Danke
      user76

      1. Hello,

        $PHPSESSID = session_id(); war was ich gebraucht habe.

        Aha, Du gehörst also zu denjenigen, die sich mit einer oberflächlichen 'Lösung' zufrieden geben.

        Harzliche Grüße aus http://www.annerschbarrich.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau
    2. hi,

      Die aktuelle Session-ID kann man mittels Funktion session_id() erfragen.
      Den aktuellen Session-Namen kann man mittels Funktion session_name() erfragen.

      sollte die konstante SID nicht gleich beides als URL-tauglichen parameter liefern, sofern noch nicht feststeht, ob cookies verwendet werden können ...?

      gruß,
      wahsaga

      --
      "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
      1. Hello,

        Die aktuelle Session-ID kann man mittels Funktion session_id() erfragen.
        Den aktuellen Session-Namen kann man mittels Funktion session_name() erfragen.

        sollte die konstante SID nicht gleich beides als URL-tauglichen parameter liefern, sofern noch nicht feststeht, ob cookies verwendet werden können ...?

        Ich sagte ja, es gibt viel zu diskutieren!
        Die Konstante SID wird von Session-Start angelegt und enthält mindestens beim allerersten Session_start() den Wert

        SID == session_name().'='.session_id()

        Wenn session.use_tans_sid == on ist, wird die Session-ID bei jedem Session-Start, bei dem kein passender Session-Cookie vorhanden ist, ann aller Links angehängt, und in alle Formulare eingebaut.

        Wenn allerdings session.use_only_cookies eingeschaltet ist, wir das unterdrückt.

        Leider bietet das PHP-Session-Verfahren noch nicht die Möglichkeit, automatisch auf "session.use_auth_alternativly" umzuschalten. das wäre wirklich genial. Ich habs mir selber gebaut.

        Wenn keine Cookies akzeptiert werden, wird sie auch beim zweiten Mal noch diesen

        Harzliche Grüße aus http://www.annerschbarrich.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau
        1. hi,

          Die Konstante SID wird von Session-Start angelegt und enthält mindestens beim allerersten Session_start() den Wert

          SID == session_name().'='.session_id()

          jepp.

          Wenn session.use_tans_sid == on ist, wird die Session-ID bei jedem Session-Start, bei dem kein passender Session-Cookie vorhanden ist, ann aller Links angehängt, und in alle Formulare eingebaut.

          an alle _relativen_ links - das hilft ihm hier aber nicht weiter, denn laut problembeschreibung will er ja zu einer anderen subdomain wechseln. und dazu muss er seine session-ID selbst an alle dorthin führenden links anhängen.

          Wenn keine Cookies akzeptiert werden, wird sie auch beim zweiten Mal noch diesen

          ... weg gehen müssen :-)

          frage mich nur, wie das dann beim wechsel zu einer anderen subdomain aussieht. der cookie mit der session-id wird dort mit den standard-einstellungen nicht verfügbar sein, auch wenn er gesetzt werden konnte. wenn jetzt im dortigen script erneut session_start() aufgerufen wird, versucht das dann erneut ein cookie zu setzen (der ja dann für die subdomain gültig wäre)? ich vermute mal nein, weil kein cookie vom client kam, aber die SID per GET mitgegeben wurde - wird PHP vermutlich so interpretieren, dass weitere versuche, ein cookie zu setzen, eh für die katz wären.

          evtl. wäre es einfacher, wenn man das session-cookie einfach als für alle subdomains gültig definiert - session.cookie_domain entsprechend einstellen (wie, beschreibt das manual zu setcookie()).

          an die oben genannte alternative muss natürlich für die cookie-verweigerer trotzdem noch gedacht werden ...

          gruß,
          wahsaga

          --
          "Look, that's why there's rules, understand? So that you _think_ before you break 'em."