x-herbert: Session-ID: Wechsel zwischen Browser

Moin,

...mal einer Verständnisfrage zu Sessions:

Ich habe eine Seite per Session geschützt und auf den Seiten nach der Loginseite die folgende Abfrage

session_start();

if (!session_is_registered('uid')){
 die ("Bitte einloggen! <a href="/index.php" target="_self">Zum Login..</a>");
}

Im Login wird die User-ID gespeichert.

Geht alles prima und läuft normaler Weise per Cookie.

Zum Test habe ich im FF mich eingeloggt und anschließend die Cookies abgeschaltet -> die Aufforderung zum Login kommt -> alles o.k. --
dann habe ich als GET "&PHPSESSID=f2515f434678e10c47326" angehangen -> bin wieder auf die Seite gekommen -> alles o.k.

Nun habe ich den IE gestartet und ohne Login die URL inkl. PHPSESSID=f2515f434678e10c47326d7b50b89b4e aufgerufen und hatte erwartet, dass ich die Seite sehen kann - es kam aber die Login-Aufforderung...

warum???

Dank & Gruss
x-herbert

  1. Moin!

    if (!session_is_registered('uid')){

    Verwende diese Funktion nicht mehr - genausowenig wie session_register().

    Greife ausschließlich auf das Array $_SESSION zu, um Werte für die Dauer der Session zu speichern oder deren Existenz zu ermitteln (mit isset()).

    Nun habe ich den IE gestartet und ohne Login die URL inkl. PHPSESSID=f2515f434678e10c47326d7b50b89b4e aufgerufen und hatte erwartet, dass ich die Seite sehen kann - es kam aber die Login-Aufforderung...

    Gibt testweise die verwendete Session-ID in der HTML-Seite mit aus, dann weißt du, was da passiert. Und ich auch - bis jetzt müßte ich raten.

    - Sven Rautenberg

    --
    "Love your nation - respect the others."
    1. Hallo Sven,

      Du hast natürlich Recht mit den alten Sessionangaben...

      ich habe mal einige Dinge ausgeben lassen:

      session_start();

      print_r($_SESSION['uid']);
      echo " name ".session_name();
      echo " - id ".session_id();

      if (!isset($_SESSION['uid'])){
       //die ("Bitte einloggen! <a href="/index.php" target="_self">Zum Login..</a>");
      }

      Folgender Effekt: solange im IE/FF die Cookies eingeschaltet sind, wird weiterhin die schon vorhandene ID verwendet, d.h. wenn kein Cookie sendet, ist diese dann leer - schaltet man die Cookies ab, kann man die aktuelle SID per GET definieren/übergeben/überschreiben

      Hintergrund der Sache: ich möchte dynamisch einige "Excel-Webanfragen" (IQY) generieren, bei denen die SID mit eingebaut wird, damit der User sich in Excel nicht nocheinmal anmelden muss. Solange der User nur mit dem IE unterwegs wäre, ist das kein Problem aber wenn die IQY vom FF kommt, muss ich eben die SID mit "einbauen"...

      ...hmmm wie bekomme ich es hin, dass die SID per GET auch bei Annahme von Cookies aktzeptiert wird??

      Gruss x-herbert