Viele Fragen zu Sessions...



  • Hallo Leute! 🙂
    Ich bin's mal wieder 😃
    Ich hätte da mal einige Fragen zu Sessions:

    Ich habe mal gehört, dass man Sessions zwar ohne Cookies benutzen kann, aber die Session IDs in Cookies gespeichert werden!?

    Wie soll man die ID von Sessions bekommen?

    [code]
    Einloggen erfolgreich...

    session_start();

    $USERNAME = "Bob";

    $session_register('USERNAME');
    [/code]

    Andere PHP Datei: Nachricht schreiben
    
    session_start();
    
    $USERNAME = $HTTP_SESSION_VARS['USERNAME');
    
    echo $USERNAME;
    

    Wo hat da etwas mit Session IDs zu tun?

    Wie soll man Session IDs denn verwenden und benutzen (mit und ohne Cookies)?

    Wenn die Sessions im Web gespeichert werden, kann dann jede Variable nur einmal gemacht werden?
    Muss dann jeder User einen anderen Session-Namen haben oder wie oder was?

    session_start();
    
    $USERNAME = "name";
    
    $register_session(USERNAME);
    

    würde ja dann nicht gehen, weil der zweite User ja auch $USERNAME als Session hätte und es würde zu Konflikten kommen!?!?!?!?

    PS: Bitte die Antworten auf einzelne Frageabschnitte beantworten.

    Wäre sehr dankbar, wenn mir das hier jemand erklären könnte. 🙂

    MfG Michael Alexander Völkel 🙂



  • Original erstellt von Mis2com:
    1)

    Ich habe mal gehört, dass man Sessions zwar ohne Cookies benutzen kann, aber die Session IDs in Cookies gespeichert werden!?

    Nein, wenn keine Cookies aktiviert sind, dann wird die Session ID auch nicht über Cookies gespeichert (ansonsten schon). Dann musst du die ID über den Link übergeben. Beispielsweise so: <a href="link.php?SessionIDName=12asödfkj12374asdj">

    Lies dir dazu doch einfach die offizielle Dokumentation durch.

    Wie soll man die ID von Sessions bekommen?

    echo session_id();

    /* Sessions */
    

    Wo hat da etwas mit Session IDs zu tun?
    Das passiert alles intern. Darum musst du dich normalerweise nicht kümmern. Das ist ja das schöne. Aber da du später genau die Ausgabe bekommst, die du vorher eingespeichert hast, zeigt doch, dass es funktioniert.

    Wie soll man Session IDs denn verwenden und benutzen (mit und ohne Cookies)?

    Normal mit Cookies. Dann fragst du ab, ob das Cookie nicht akzeptiert wurde und schickst gegebenfalls die ID über GET mit.

    Wenn die Sessions im Web gespeichert werden, kann dann jede Variable nur einmal gemacht werden?
    Muss dann jeder User einen anderen Session-Namen haben oder wie oder was?

    Da wird nichts im "Web" gespeichert, sondern nur auf dem Server. Alle Benutzer können den gleichen Session Namen haben (zur Unterscheidung gibts doch die IDs). Jede Session ist von der anderen Abgetrennt, sie können also die gleichen Variablen mit anderen Inhalten haben.

    würde ja dann nicht gehen, weil der zweite User ja auch $USERNAME als Session hätte und es würde zu Konflikten kommen!?!?!?!?

    Nein, da jede Session wie ein eigenes Programm zu sehen ist, welches komplett unabhängig von den anderen Sessions läuft. Es ist nicht möglich Variablen anderer Sessions zu überschreiben (nicht ohne weiteres).



  • Hallo! 🙂
    Danke erstmal für die Antwort! 🙂
    Also, das ist gut, dass ich da nix besonderes beachten muss...
    Aber die Sessions IDs kapiere ich noch nicht so ganz...

    [code]
    einloggen.php
    <?php
    session_start();

    $username = "Meister!";

    session_register(username);

    ?>

    <a href=zweiteseite.php>Link</a>[/code]

    zweiteseite.php
    <?php
    
    $username = $HTTP_COOKIE_VARS[username];
    
    echo $username;
    ?>
    

    Dann funktioniert es ja mit Cookies...
    Und ohne?

    Oder: Machen die Sessions das von alleine mit der Übergabe der ID?

    MfG Michael Alexander Völkel

    [ Dieser Beitrag wurde am 01.10.2002 um 15:48 Uhr von Mis2com editiert. ]



  • Ne, dann geht es nur mit Cookies. Ich mache es so:

    if (SID != '')
    {
       define('SessID', (string)('&'.SID));
       define('SessIDA', (string)('?'.SID));
    }
    else
    {
       define('SessID', (string)'');
       define('SessIDA', (string)'');
    }
    

    Und dann jeden Link so:

    <a href="datei.php<?php echo SessIDA;?>">
    <a href="datei.php?auto=gruen<?php echo SessID;?>">
    


  • Hallo...
    Komisch...
    Ich habe gerade ge´merkt, dass dasd bei mir automatisch gemacht wird!
    Ich habe die Cookies mal aktiviert und mal deaktiviert und je nachdem, wird die SESSIONID automatisch mitgelinkt!?

    Wie kommt das?

    MfG Michael Alexander Völkel



  • Jo, dann wurde dein PHP mit --enable-trans-sid kompiliert. Dann wird bei fehlender Cookie Unterstützung die Session ID automatisch an alle relativen Links angefügt.

    Du kannst jedoch nicht davon ausgehen, dass das bei allen Servern so ist. Bei absoluten Links musst du die ID auch selbst anfügen.



  • Kann man sich bei den Servern nicht selbst die php.ini bearbeiten?
    Fänd' ich praktisch 🙂

    Danke ejdenfalls, für deinen Kot, den kann ich gebracuhen 🙂

    MFGMAV



  • Ne, die PHP.ini kannst du nur bei eigenen Servern editieren. Wenn du irgendwo Webspace mietest, bist du den Betreibern ausgeliefert.



  • Aha



  • Hallo! 🙂
    Es ist komisch...
    Ich habe die Cookies deaktiviert nix gemacht und
    session.use_trans_sid = 0
    gemacht.
    Dennoch wird das SID angezeigt obwohl ich deine SID-Steuerung nicht gemacht habe 😕

    MfG MAV



  • Erkläre mal genauer, habs nicht wirklich verstanden!



  • Schon gut es klappt jetzt...

    Aber mal was gaaaaaanz anderes:

    Was ist schneller?

    Wenn man Forum und Chat auf 2 datenbanken verteilt oder beides in eine stopft?

    Wenn eine besser ist, warum gibt es bei größeren Services dann mehr DBs?

    MfG MAV



  • Weil man die Daten trennen möchte. z.B. ist es dann einfach von der einen Datenbank ein Backup zu machen. Und man kann z.B. Datenbanktabellen gleich benennen ohne das es irgendwelche Probleme gibt.


Anmelden zum Antworten