Janne: Session ID manchmal leer

Hi alle,

aus aktuellem Anlass beschäftige ich mich gerade mit den Daten in meinen Zugriffs-Logtabellen. Dabei fällt mir nebenbei auf, dass manche Zugriffe anscheinend keine Session ID übertragen, die meisten aber schon.

Wahrscheinlich offenbare ich mit dieser Frage jetzt blanke Unwissenheit, aber dann soll die jetzt wenigstens beseitigt werden: Woran liegt das? Haben diese Leute wirklich alle das Speichern eines Cookies verweigert? (An meinen URLs hängen keine Session IDs dran.)

Es irritiert mich etwas, wie viele das sind, denn ohne Session können die sich ja auch nicht einloggen. Es handelt sich aber großteils eindeutig um "menschliche" Besucher, nicht um Bots.

Janne

  1. aus aktuellem Anlass beschäftige ich mich gerade mit den Daten in meinen Zugriffs-Logtabellen. Dabei fällt mir nebenbei auf, dass manche Zugriffe anscheinend keine Session ID übertragen, die meisten aber schon.

    Was für Zugriffs-Logtabellen?

    Woran liegt das?

    Gegenfrage, wie kommen die Session IDs in die Zugriffs-Logtabellen?

    Haben diese Leute wirklich alle das Speichern eines Cookies verweigert?

    Möglich.

    (An meinen URLs hängen keine Session IDs dran.)

    Es liegt an Dir das zu ändern, jeweils für den Fall, daß Benutzer keine Cookies akzeptieren.

    Es irritiert mich etwas, wie viele das sind, denn ohne Session können die sich ja auch nicht einloggen. Es handelt sich aber großteils eindeutig um "menschliche" Besucher, nicht um Bots.

    Dann kann es ja kein Problem sein, ihnen die Session an die URL anzuhängen und bots mit so was zu verschonen.

    1. Hallo Tekster ;-)

      Die Daten kommen in die Logtabellen, weil ich sie dort hineinschreibe :-) Da sammle ich diverse Informationen, insbesondere um Bots zu erkennen, zum Debuggen oder um zu erkennen, welche Seitenbereiche wie oft aufgerufen werden usw.. Dazu speichere ich neben anderen Parametern auch die Session ID. Und dabei fällt mir halt auf, dass ich die bei ca. 1/5 der (menschlichen) Besucher nicht ermitteln kann.

      Janne

      1. Dann kommen vorhandene SIDs entweder nicht in deiner nicht näher beschriebenen Logtabellen an, was man nicht verifizieren kann, wenn auf meine zweite Frage nicht näher eingegangen wird, oder es sind wirklich so oft keine SIDs vorhanden.

        Zu dem "nicht näher" siehe "Tipps für Fragende" von denen Du weißt wo sie zu finden sind, da Du bestätig hast, die Charta gelesen zu haben.

        1. Hi Texter,

          was willst Du denn noch genauer wissen? Da gibt es eine MySQL-Tabelle, in die ich per mysql_query() unter anderem den Wert von PHPSESSID schreibe.

          Beim Schreiben in die DB scheint aber kein Fehler vorzuliegen, denn alle anderen Werte kommen ja an. Vielleicht irre ich mich ja, aber ich bin davon ausgegangen, dass die ID einfach gar nicht erst übermittelt wird.

          Meine Frage bezog sich eher darauf, ob es dafür noch andere Gründe als einen verweigerten Cookie geben kann.

          Janne

          1. was willst Du denn noch genauer wissen?

            Ich? Eigentlich nix? Ich dachte, Du wolltest deine Vermutung verifizieren oder deine Befürchtung ausschließen. Ein aufs Minimum reduzierter Code mit dem sich das Problem nachvollziehen läßt, wäre hilfreich, wenn Dir jemand helfen soll. Weiter würde es die Motivation der Helfenden fördern, wenn Du erklären würdest, was Du zur Möglicher-Fehler-Suche bereits unternommen hast. Nicht das sich hier jemand den Kopf zerbricht und Du dann sagst, daß Du das schon ausgeschlossen hast.

            Da gibt es eine MySQL-Tabelle, in die ich per mysql_query() unter anderem den Wert von PHPSESSID schreibe.

            Wenn dabei Fehler ausgeschlossen sind, na dann?! Ausschließen könnte man daß, in dem man die Werte nach dem Speichern wieder ausliest und mit dem vergleicht, was man speichern wollte.

            Beim Schreiben in die DB scheint aber kein Fehler vorzuliegen, denn alle anderen Werte kommen ja an.

            Das ist ein Indiz (falls alle Werte gleich behandelt werden und das was bei allen anderen Werten ankommt auch richtig ist und nicht nur richtig aussieht) aber kein Beweis. Was Du weißt, denn Du schreibst "scheint".

            Vielleicht irre ich mich ja, aber ich bin davon ausgegangen, dass die ID einfach gar nicht erst übermittelt wird.

            Vielleicht hast Du ja Recht, aber um das "vielleicht" ging es doch oder?

            Meine Frage bezog sich eher darauf, ob es dafür noch andere Gründe als einen verweigerten Cookie geben kann.

            Fehler beim Setzen des Cookies, und sage jetzt nicht, das ist ausgeschlossen, weil es bei den meisten Besuchern offensichtlich funktioniert, oder Fehler bei Auslesen bzw. Speichern der Session-ID. Unter "Fehler beim Setzen des Cookies" fällt auch, daß z.B. absichtlich bei nicht angemeldeten Besuchern keine Cookies gesetzt werden Du das aber erwartest.

  2. Hi alle,

    OK, ich habe mich anscheinend nicht ganz eindeutig ausgedrückt, deshalb meine eigentliche Frage noch einmal ohne Story drumherum:

    "Gibt es außer einem verweigerte Cookie noch andere denkbare Gründe, warum PHPSESSID bei manchen Besuchern keinen Wert enthält?"

    Janne

    1. Hi,

      "Gibt es außer einem verweigerte Cookie noch andere denkbare Gründe, warum PHPSESSID bei manchen Besuchern keinen Wert enthält?"

      Weil es bei einem einzigen Request bleibt, und deshalb noch gar keine Session gestartet wurde?

      MfG ChrisB

      --
      “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
    2. Moin!

      "Gibt es außer einem verweigerte Cookie noch andere denkbare Gründe, warum PHPSESSID bei manchen Besuchern keinen Wert enthält?"

      Wenn du dich explizit auf "PHPSESSID" beziehst, dürfte das ein Indikator sein, dass du entweder diesen Wert explizit aus der Variablen $PHPSESSID ziehst, oder dafür $_GET/POST/COOKIE['PHPSESSID'] verwendest.

      Die korrekte Vorgehensweise zur Ermittlung der aktuell in PHP benutzten Session-ID ist der Aufruf der Funktion session_id(). Diese Funktion liefert dir auch beim ersten Seitenaufruf schon einen Wert - nämlich die ID, die der Client erst beim zweiten Seitenrequest zurückschicken kann.

      - Sven Rautenberg