Matthias: SessionID - Problem mit eigenen IDs

Hallo,

ich möchte die Nützlichen Session-Funktionen von PHP benutzen, dabei gibt es aber Probleme, wenn ich IDs nach einem eigenen Muster verwenden will.

Das Problem ist das mit session_start() eine PHP-ID generiert wird, die ich nicht möchte, also muss mittels session_id() eine eigene gesetzt werden. Letzteres muss aber vor session_start() geschehen, weil es sonst keine Wirlkung hat.
Setzt man allerdings vor session_start() eine ID wird man ja eine bestehende SessionID überschreiben.

Es muss also ein Weg gefunden werden vorher zu überprüfen ob eine SessionID bereits existiert.

Hat jemand eine Idee wie das geschehen könnte?

Grüße, Matthias

  1. hi,

    ich nehme an, auch dieser Thread zum gleichen Thema vor ein paar Tagen war von dir?

    Setzt man allerdings vor session_start() eine ID wird man ja eine bestehende SessionID überschreiben.

    Dann überprüfe doch zunächst, ob dir eine Session-ID übergeben wurde.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
  2. Hallo again,

    ich prüfe nach session_start() mit session_id() die zurückgelieferte ID mit RegExp ob es mein Muster ist oder nicht, falls nicht, passiert folgendes:

    session_destroy();
    session_id("mein_tolles_Muster");
    session_set_cookie_params(...);
    session_start();

    Funktioniert wunderbar bis auf eine Einschränkung, ich muss SID in die URL einbinden, falls der User keine Cookies akzeptiert. Ist ein Cookie gesetzt ist SID leer und die URL bleibt frei von der ID.

    In dieser meiner Varfiante ist SID aber nicht leer, obwohl ein Cookie gesetzt wurde, mit der richtigen (meinen) ID,
    durch SID wird in die URL die ID eingetragen, auf allen Folgeseiten ist SID leer und die Sache funktioniert wunderbar.

    Wie verhindere ich das SID beschrieben wird, das Cookie wird doch erfolgreich gesetzt.

    Grüße, Matthias

    1. hi,

      In dieser meiner Varfiante ist SID aber nicht leer, obwohl ein Cookie gesetzt wurde

      Es wurde gerade eine neue Session gestartet, mit neuer ID.
      Also muss ein neuer Cookie mit dieser Session-ID gesetzt werden.
      Noch weiß PHP aber nicht, ob der Client diesen akzeptieren und beim nächsten Request wieder mitschicken wird - folglich hat auch SID per Definition gefüllt zu sein. Works as designed.

      Wie verhindere ich das SID beschrieben wird, das Cookie wird doch erfolgreich gesetzt.

      Dein ganzer Ansatz erscheint mir ziemlicher Humbug.
      Warum willst du so einen enorm erhöhten Aufwand betreiben - nur weil dir die Session-IDs, die PHP generiert, nicht "passen"?

      gruß,
      wahsaga

      --
      /voodoo.css:
      #GeorgeWBush { position:absolute; bottom:-6ft; }
      1. Warum schminken sich die Frauen, obwohl sie von der Natur so geschaffen wurden wie sie sind?

        Weils besser aussieht. Ich brauche keine ID von dieser Größe, 8 Zeichen reichen und die URL bleibt übersichtlicher.

        Anderer Aspekt warum betreibe ich den Aufwand um unbedingt meine eigenen IDs zu benutzen.... weil es geht.

        Grüße, Matthias