Jürgen: PHPSESSID= wird zig mal an die URL angehängt.

Guten Tag,

seit einiger Zeit arbeite ich mit Sessions. Habe mir die Dokumentation dazu auf www.php.net angeschaut.

Ich weiß nicht was falsch läuft, aber die Session ID wird immer wieder and die Url angehängt. Wenn ich z.B. an der Seite arbeite und teste habe ich nach einer Weile sowas:

PHPSESSID=PHPSESSID=PHPSESSID=PHPSESSID=PHPSESSID=kjhasd8f7t687b86761876238 67bä1a

Gestern hatte ich 48! x PHPSESSID in der Adresszeile. Hatte eine ganze Weile an einer Seite gearbeitet.

Könnte mir freundlicherweise sagen was hier nicht funktioniert?

Danke

Mit freundlichen Grüßen
Jürgen

  1. Moin!

    Gestern hatte ich 48! x PHPSESSID in der Adresszeile. Hatte eine ganze Weile an einer Seite gearbeitet.

    Könnte mir freundlicherweise sagen was hier nicht funktioniert?

    Das Anhängen der Session-ID an die URL als Parameter funktioniert nicht.

    Wäre die Frage, wie du das derzeit machst - denn sonst kann niemand beurteilen, was daran falsch ist.

    - Sven Rautenberg

    --
    "Beim Stuff für's Web gibts kein Material, was sonst das Zeugs ist, aus dem die Sachen sind."
    (fastix®, 13. Oktober 2003, 02:26 Uhr -> </archiv/2003/10/60137/#m338340>)
    1. Guten Tag,

      Das Anhängen der Session-ID an die URL als Parameter funktioniert nicht.

      Also, ich arbeite mit Klassen. Die Objekte werden jeweils auf den Seiten erzeugt. Im Prinzip sind die Seiten (news,impressum,shop,etc) relativ kurz. Auf den Seiten steht jeweils als erste Zeile:

      session_start();

      Ansonsten benutze ich eigentlich in den Klassen eigentlich nur die Session Variablen, z.B.

      $_SESSION['name'];

      Gruß

      Jürgen

      1. Moin!

        Das Anhängen der Session-ID an die URL als Parameter funktioniert nicht.

        Also, ich arbeite mit Klassen. Die Objekte werden jeweils auf den Seiten erzeugt. Im Prinzip sind die Seiten (news,impressum,shop,etc) relativ kurz.

        Das ist irrelevant.

        Was tust du, um die Session-ID an die URL anzuhängen?

        Auf den Seiten steht jeweils als erste Zeile:

        session_start();

        Davon bin ich ausgegangen. :)

        Ansonsten benutze ich eigentlich in den Klassen eigentlich nur die Session Variablen, z.B.

        $_SESSION['name'];

        Das beeinflußt die Session-ID-Übergabe nicht.

        - Sven Rautenberg

        --
        "Beim Stuff für's Web gibts kein Material, was sonst das Zeugs ist, aus dem die Sachen sind."
        (fastix®, 13. Oktober 2003, 02:26 Uhr -> </archiv/2003/10/60137/#m338340>)
        1. Hi,

          Was tust du, um die Session-ID an die URL anzuhängen?

          Also im prinzip mache ich sonst nichts weiter. Das macht der automatisch. Ich speichere die Session ID in einer mySql DB ab.
          Dazu benutze ich eine weitere php Funktion:

          $this->sessionID = session_id(SID);

          Das ist eigentlich alles.

          1. Moin!

            Dazu benutze ich eine weitere php Funktion:

            $this->sessionID = session_id(SID);

            Aha, da haben wir den Übeltäter.

            In der Konstanten SID steht folgendes drin:

            1. Wenn PHP die Session-ID per Cookie übermittelt bekommen hat, steht nichts drin.
            2. Wenn kein Cookie festgestellt werden konnte, steht folgender Text drin: "sessionname=sessionid".

            Diese Konstante SID kann man direkt in Links einbauen:
            echo "<a href="/irgendein/link.php?".SID."">Link</a>";

            Du setzt jetzt aber die Session-ID immer neu mit der Funktion session_id(). Diese Funktion gibt die derzeit aktuelle Session-ID zurück, wenn _kein_ Parameter übergeben wird. Sie setzt die Session-ID auf den übergebenen Wert, _wenn_ ein Parameter übergeben wird.

            Du übergibst einen Parameter. Nämlich im ersten Schritt "sessionname=sessionid". Das setzt die Session-ID, und SID wird zu "sessionname=" + Wert von session_id(), also "sessionname=sessionname=sessionid".

            Und so geht es dann rekursiv immer weiter:
            "sessionname=sessionname=sessionid"
            "sessionname=sessionname=sessionname=sessionid"
            "sessionname=sessionname=sessionname=sessionname=sessionid"
            "sessionname=sessionname=sessionname=sessionname=sessionname=sessionid"

            Abhilfe: Einfach nur session_id() ohne Parameter aufrufen.

            - Sven Rautenberg

            --
            "Beim Stuff für's Web gibts kein Material, was sonst das Zeugs ist, aus dem die Sachen sind."
            (fastix®, 13. Oktober 2003, 02:26 Uhr -> </archiv/2003/10/60137/#m338340>)
            1. Gutn Tag,

              es hat wirklich daran gelegen.

              Herrlich!!!

              1000 fach Dank und einen schönen Gruß

              Jürgen