Thomas: PHP-Session fliegt sporadisch weg

Hallo zusammen,

Ich hatte ein eigenartiges Phänomen in einer meiner PHP-basierten Anwendungen und wollte deshalb einmal nachfragen, ob jemand eine Erklärung für das Problem hat.

Da man sich in meiner Anwendung einloggen muss, arbeite ich nach dem Login mit Sessions, um Username etc. von Seite zu Seite zu übertragen.

Bei meinen Tests hat das ganze auch immer super funktioniert und es gab auf meinem PC nie Probleme.
Dann aber hat sich ein Test-User beschwert, dass er immer beim 2. Seitenaufruf nach dem Login rausgeworfen wird.
Ich habe daraufhin den Inhalt der Session-Variablen zum Testen ausgegeben => die Session war leer / ist verloren gegangen.

Zunächst dachte ich an ein Problem mit bestimmten Browser-Versionen oder an Cookie-Einstellungen oder ähnliches.

Dann hatte ich aber die Möglichkeit, selbst am PC des Test-Users das Problem nachzustellen - aber es gelang mir nicht!
Bei mir hat es reibungslos funktioniert, bei meinem Test-User jedoch nicht.
Da meine Anwendung keinen Charakter-Login beinhaltet, mussten wir ja irgendwas unterschiedlich gemacht haben ;-)

Der einzige Unterschied war, dass er die URL über einen Favoriten und ich aus dem Browserverlauf heraus aufgerufen hatte.
Dabei ist uns aufgefallen, dass im Favoriten die URL http://www.test.URL.de gespeichert war, während ich aus dem Verlauf heraus http://test.URL.de aufgerufen hatte.

Nun nach diese (ich hoffe nicht zu langen) Einleitung zu meiner eigentlichen Frage:
Warum geht denn 2 Klicks nach dem Login plötzlich die Session verloren, nur weil ein User ein www. vor die Subdomain stellt?
Hat für dieses Phänomen jemand eine technische Erklärung was da in der Session passiert?

Vielen Dank vorab für alle Beiträge.

Viele Grüße,
Thomas

  1. Hallo,

    Warum geht denn 2 Klicks nach dem Login plötzlich die Session verloren, nur weil ein User ein www. vor die Subdomain stellt?
    Hat für dieses Phänomen jemand eine technische Erklärung was da in der Session passiert?

    Eine  Idee dazu hätte ich:
    Die Session-ID wird standardmässig (falls der Browser dies zulässt) in Cookies gespeichert.

    Die URLs http://www.test.URL.de und http://test.URL.de haben (aus Browser/Cookie-Sicht) nichts miteinander zu tun, ein Session-Cookie, der für "test.URL.de" angelegt wird, ist von "www.test.url.de" nicht zugreifbar, ebensowenig umgekehrt.

    => Vielleicht liegts daran?

    Es lässt sich allerdings IMO die Cookie-Domain ändern (also z.b. als Cookie Domain "test.URL.de" festlegen, dann müssten BEIDE Seitenaufrufe auf die gleichen Cookies zugreifen).

    Hierzu müsstest Du aber mal googlen, das habe ich aktuell nicht im Kopf, ob und wie das genau geht.

    Viele Grüße,
    Jörg

    1. Hi,

      Es lässt sich allerdings IMO die Cookie-Domain ändern (also z.b. als Cookie Domain "test.URL.de" festlegen, dann müssten BEIDE Seitenaufrufe auf die gleichen Cookies zugreifen).

      Hierzu müsstest Du aber mal googlen, das habe ich aktuell nicht im Kopf, ob und wie das genau geht.

      http://www.php.net/manual/en/session.configuration.php#ini.session.cookie-domain

      MfG ChrisB

      --
      “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
  2. Dabei ist uns aufgefallen, dass im Favoriten die URL http://www.test.URL.de gespeichert war, während ich aus dem Verlauf heraus http://test.URL.de aufgerufen hatte.

    Warum geht denn 2 Klicks nach dem Login plötzlich die Session verloren, nur weil ein User ein www. vor die Subdomain stellt?

    Ein Cookie gilt pro Domain. Das kann auch subdomains differenzieren, je nach dem, wie du das Cookie setzt. (Domain)

    Hat für dieses Phänomen jemand eine technische Erklärung was da in der Session passiert?

    http://www.faqs.org/rfcs/rfc2965.html

    Frage dich, wie ein user zum www kommt?
    Womöglich weil du selbst diese subdomain irgendwo einschleusst.

    mfg Beat

    --
    ><o(((°>           ><o(((°>
       <°)))o><                     ><o(((°>o
    Der Valigator leibt diese Fische
    1. Hello,

      Dabei ist uns aufgefallen, dass im Favoriten die URL http://www.test.URL.de gespeichert war,
      Frage dich, wie ein user zum www kommt?
      Womöglich weil du selbst diese subdomain irgendwo einschleusst.

      Vermutlich eher deshalb, weil manche Browser (bzw. Browser-Plugins) das leider automatisch machen, dass sie www.example.com (und ggf. weitere) im DNS anfragen, wenn für example.com nicht sofort Antwort kommt.

      @Thomas:

      benutze die Live-HTTP-Headers Extension, die es z.B. für Firefox gibt, um die Probleme zu analysieren. Mit Raten wirst Du nicht viel weiter kommen. Es könnten Umleitungen und sonstige Zweitrequests, z.B. durch JavaScript usw., daran Schuld sein.

      Durch die Live-HTTP-Headers-Extension kannst Du das leicht sehen...

      Liebe Grüße aus dem schönen Oberharz

      Tom vom Berg

      --
       ☻_
      /▌
      / \ Nur selber lernen macht schlau
      http://bergpost.annerschbarrich.de
  3. Hallo,

    sessions (cookies und serverseitig) beziehen sich auf domains. domains meint auch subdomains. www.example.com ist nicht gleich example.com.

    Gruß

    jobo

    1. Hi,

      sessions (cookies und serverseitig) beziehen sich auf domains. domains meint auch subdomains. www.example.com ist nicht gleich example.com.

      Sag mal, ignorierst du vorherige Antworten eigentlich bewusst?

      Ist mir bei dir schon öfter aufgefallen in der letzten Zeit, dass du bereits gegebene Antworten wesentlich später noch mal wiederholst.

      MfG ChrisB

      --
      “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]