Christoph B.: Länge Session-ID immer 32 Zeichen?

Hallo,

ich habe eine Frage zum Session-Mechanismus von PHP:

Kann ich davon ausgehen, dass die von PHP vergebene Session-ID (mit Default-Einstellungen des Session-Mechanismus) _immer_ aus 32 Zeichen besteht?

Grund der Frage:
Ich möchte die Session-ID, falls der Client keine Cookies akzeptiert, per
http://example.org/{Session-Id}
übergeben.

Also ohne Angabe eines Scriptnamens, einfach an das per DirectoryIndex aufgerufene Script, und _nicht_ als "normalen" GET-Paremeter á la ?PHPSESSID={Session-Id}

Den Request-URI http://example.org/{Session-Id} möchte ich dann per mod_rewrite intern umschreiben lassen - deshalb die Frage, ob die Session-ID von PHP immer aus 32 Zeichen besteht - damit ich in der RewriteRule darauf abfragen lassen kann, ob hinter / genau 32 Zeichen folgen.
Das würde das rewriten nämlich stark vereinfachen, und für andere Ressourcen, die unterhalb von http://example.org/ ohne Umschreibung weiterhin erreichbar sein sollen, wären keine Ausnahmen nötig (sofern der Ressourcenname nicht gerade aus exakt 32 Zeichen besteht).

Christoph B.

  1. Hallo Christoph,

    Kann ich davon ausgehen, dass die von PHP vergebene Session-ID _immer_ aus 32 Zeichen besteht?

    Selbst wenn es so wäre, wäre es naiv, zu glauben, dass es für immer so bliebe.
    Warum baust Du nicht einfach eine kleine Rutine in Dein Script ein, welche die Länge der Sess-Id checkt und, je nach Ergebnis, auffüllt oder abschneidet?

    Bertold

    1. Hallo,

      Warum baust Du nicht einfach eine kleine Rutine in Dein Script ein, welche die Länge der Sess-Id checkt und, je nach Ergebnis, auffüllt oder abschneidet?

      Auffüllen, wenn zu kurz - wäre unter Umständen eine Möglichkeit.
      Abschneiden, wenn zu lang - wie soll PHP dann die Session wieder aufnehmen können, wenn ein Teil der Session-ID fehlt ...?

      Christoph B.

      1. Hallo Christoph!

        Abschneiden, wenn zu lang - wie soll PHP dann die Session wieder aufnehmen können, wenn ein Teil der Session-ID fehlt ...?

        Du sollst ja nicht die eigentliche Sess-ID manipulieren, die bleibt erhalten.
        Zur Weiterverarbeitung in Deinen Scripts kannst Du diese ID aber als Grundlage nehmen und verändern. Das leuchtet doch ein, oder?

        Bertold

  2. echo $begrueszung;

    Kann ich davon ausgehen, dass die von PHP vergebene Session-ID (mit Default-Einstellungen des Session-Mechanismus) _immer_ aus 32 Zeichen besteht?

    Wenn du dich nicht auf Mechanismen anderer verlassen willst, dann kannst du es auch selbst tun:

    session_id($jodelDiplom); [1]
    session_start();

    echo "$verabschiedung $name";

    [1] oder halt irgendwas anderes eigenes :-)