Allgemein Sessions



  • Hi Leute,

    kann mir mal bitte einer Sessions erklären bzw. sagen ob ich falsch liege.

    session_start()
    und die Sessionvariablen füllen
    wird die SID als Cookie beim User gespeichert.

    In der nächsten Seite wird bei
    session_start()
    das Cookie ausgelesen und die Variablen anhand der SID aus dem Cookie wieder gefüllt.
    Somit sind die Sessionvariablen bei jeder Seite vorhanden.

    Was passiert aber wenn kein Cookie geschrieben werden kann. Woher nimmt
    session_start() dann die SID.
    Oder liegt ich mit dem Vorgang falsch.



  • Unix-Tom schrieb:

    Hi Leute,
    session_start()
    und die Sessionvariablen füllen
    wird die SID als Cookie beim User gespeichert.

    In der nächsten Seite wird bei
    session_start()
    das Cookie ausgelesen und die Variablen anhand der SID aus dem Cookie wieder gefüllt.Somit sind die Sessionvariablen bei jeder Seite vorhanden.

    die session ist bei jeder Seite vorhanden weil sie in einem Temp Ordner in einer Temp Datei aufm Server liegt.

    Was passiert aber wenn kein Cookie geschrieben werden kann. Woher nimmt
    session_start() dann die SID.Oder liegt ich mit dem Vorgang falsch.

    Es wird kein Cookie geschrieben weil die Session kein Client Cookie ist

    anmerkung : das ist der default fall.



  • Woher weiß dann die nächste Seite welches Sessionfile geladen werden muss (session_start()) wenn man nicht gerade die SID an die URL dranhängt ?





  • Woher weiß der Server welche SESSIONID der Browser bekommen hat?
    An die URL wird die Sessionid nicht übergeben. (Oder geht dies automatisch)
    Der Browser ist so eingestellt das er keine Cookies akzeptiert.
    Sorry habe es noch immer nicht verstanden.

    <?php

    session_start();
    if (! isset(_SESSION['zaehler'])) { _SESSION['zaehler'] = 1;
    }
    else {
    $_SESSION['zaehler']++;

    }

    $zaehler = $_SESSION['zaehler'];

    ?>

    Hallo Besucher, Sie haben diese Seite <?php echo $zaehler; ?> Mal
    aufgerufen.<p>

    Hier gehts <A HREF="nextpage.php">weiter</A>



  • Also es gibt den Weg das du :

    - SID in die Url anhängst
    - SID als hidden input
    - SID als cookie ...

    da du deine seite ja auch für leute die cookies blocken verwenden willst ... !!



  • 1ntrud0r hat doch schon den entsprechenden Link gepostet 😕

    PHP ist in der Lage, Links transparent umzuwandeln.
    [...]
    Wenn diese Option und die Laufzeit-Option session.use_trans_sid aktiviert sind, werden relative URIs automatisch so geändert, dass sie die Session-ID enthalten.

    Funktioniert es den bei dir - sprich, zählt dein Aufrufs-Zähler? Wenn ja, so müsste eigentlich im Quellcode (wenn du jede Art von Cookies deaktiviert hast) die Session-ID hinten an den Links dranhängen 🙄



  • Das Problem ist, das die SID nicht drangehängt wird und es Funktioniert trotzdem.
    Sollte eigentlich nicht gehen da der Server ohne Cookie oder aus der URL keine SID bekommt.

    session.use_trans_sid = nicht aktiviert sodaß er eigenlich auch nicht die SID automatisch dranhängt.

    Ich vermute, daß Cookies, welche nur im Speicher des Fensters gehalten werden immer akzeptiert werden.



  • nunja er legt möglicherweise auch sowas wie "cookies" an .. aber es ist zumindest beim Inet Explorer kein physiches Cookie das irgendwo auch real existiert auf Client basis .. weil sobald der Browser geschlossen wird .. zerstört es ja zumindest die client seitige session jedoch die server seitige existiert noch solang die expire time ist imho



  • Deswegen hatte ich ja gefragt, ob du alle Arten von Cookies deaktiviert hast. Im IE lässt sich das nämlich z.B. einzeln festlegen 😉



  • jo das stimmt die heißen "Cookies pro Sitzung ( die nicht gespeichert sind )"



  • Ich habe alle Arten von Cookies deaktiviert.

    Bin aber schon draufgekommen.
    Ich habe immer auf den lokalen Server (http://localhost/) zugegriffen.
    Dadurch werden im IE noch Cookies akzeptiert. Zumindest im Speicher des IE-Fensters (Pro Sitzung)

    Bin jetzt auch draufgekommen wie man das mit den Sessions regelt um beide Möglichkeiten abzudecken.
    Man hängt einfach immer die SID an. Sollten keine Cookies akzeptiert werden dann steht in der SID etwas drin und sie wird an die URL angehängt. Gibt es Cookies dann ist die SID leer und es wird eben leer angehängt. Also nichts.

    Danke euch.



  • oder eben direkt mit use_trans_sid - dann kann man sich die Mühe sparen und vergisst nicht mal aus versehen bei einem Link die Session-ID anzuhängen 🙂



  • Ist richtig aber kein Standard. Da ist es deaktiviert.
    😉



  • Unix-Tom schrieb:

    Ist richtig aber kein Standard. Da ist es deaktiviert.
    😉

    kommt ganz auf deine server version an

    --enable-trans-sid
    Aktiviert transparent session id propagation. Ist nur für PHP 4.1.2 oder kleiner gültig. Seit PHP 4.2.0 wird trans-sid immer kompiliert.



  • Das ist richtig aber in der php.ini ist es nicht aktiviert



  • Unix-Tom schrieb:

    Das ist richtig aber in der php.ini ist es nicht aktiviert

    k


Anmelden zum Antworten