Theo: Session ID geht verloren!

Hi,

in meiner Seite, komplett in php, binde ich in der header.php per include die sessions.php ein.
Das funktioniert auch sehr gut, aber nicht für die header.php selber, die per include eine Linkleiste einbindet.

Innerhalb dieser Linkleiste wird die SID nicht per URL weitergegeben.

Außerdem ist in der header.php, die natürlich jeweils den Seitenkopf bildet auch ein "Home-Link" drin. Auch dieser gibt die SID nicht weiter.

Und im footer, der die Linkleiste ein zweites Mal einbindet, fehlt die SID auch bei jedem Link.

Woran kann das liegen?

Danke, Theo

  1. Übrigens, per Session-Cookie läuft alles prima, auch die Links im Header oder footer verlieren nicht den eingeloggten User, der ja über die Sessions mitgezogen wird.

    Theo

    1. Moin!

      Übrigens, per Session-Cookie läuft alles prima, auch die Links im Header oder footer verlieren nicht den eingeloggten User, der ja über die Sessions mitgezogen wird.

      Ich bin verwirrt.

      Es ist normal so, dass die erste aufgerufene Seite der Session alle Links mit der Session-ID versieht und gleichzeitig versucht, ein Cookie zu setzen. Wenn das Cookie beim nächsten Seitenaufruf von PHP entdeckt wird (weil es angenommen wurde), werden die Links nicht mehr automatisch mit der Session-ID versehen, die Session läuft dann cookiebasiert.

      Wenn kein Cookie entdeckt wurde, wird wieder versucht, eines zu setzen, und die Links kriegen wieder alle die Session-ID mit dran (automatisch übrigens nur, wenn das so konfiguriert ist - session.use_trans_sid ist an).

      - Sven Rautenberg

      --
      "Habe den Mut, dich deines eigenen Verstandes zu bedienen!" (Immanuel Kant)
      1. Moin Sven und danke für Deine Antwort,

        ja, mein php ist so eingestellt: session.use_trans_sid
         1 1 , also auf "on".

        Ich bin ebenso verwirrt. Das ganze System funktioniert prima... warte mal, mir fällt da was ein...

        Hab ichs mir doch gedacht, ich habe keine relativen Links gesetzt, sondern absolute, dadurch, daß ich eine Variable $url davor platziert habe.

        Vermutlich wirds daran liegen.

        Ich geh mal ausprobieren, wenn nicht, melde ich mich wieder, wenns daran gelegen hat, danke für die Antwort, weil ich letztlich dadurch drauf gekommen bin. :-))

        Grüße

        Theo

        1. Moin!

          Hab ichs mir doch gedacht, ich habe keine relativen Links gesetzt, sondern absolute, dadurch, daß ich eine Variable $url davor platziert habe.

          PHP hängt dann an Links keine Session-ID dran, wenn das Linkziel mit "http://" beginnt. Damit wird verhindert, dass Session-IDs an fremde Server gelangen.

          Außerdem ist es absolut unnötig, sowas zu machen.

          <a href="/index.php"> linkt aus jedem beliebigen Verzeichnis auf die (mutmaßliche) Startseite des aktuellen Servers. Ist also gleichbedeutend mit
          a) <a href="../../../index.php"> (passende Menge an "../" vorausgesetzt)
          b) <a href="http://www.eigener-server.test/index.php"> (geht auch von überall, ist aber länger und macht den Aufwand, den Servernamen dynamisch mit reinzupfriemeln)

          - Sven Rautenberg

          --
          "Habe den Mut, dich deines eigenen Verstandes zu bedienen!" (Immanuel Kant)
          1. Alles paletti,

            wollt nur nicht so verschwinden, ohne nochmal danke gesagt zu haben.

            Grüße

            Theo