Verwalten von Usern in Sessions ...

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Verwalten von Usern in Sessions ...

    Hi an alle,

    ich habe in letzter Zeit öffter beobachtet, dass viele Seiten ihre eingeloggten User in "Sessions" verwalten.
    Beispiele hierfür währen:
    http://www.jobpilot.de
    http://www.audiogalaxy.com
    http://www.teendate.de
    sobald man sich eingeloggt hat, bekommt man einen ellenlangen code der sich wahrscheinlich aus usernamen und passwort zusammensetzt und anhand dem der user jederzeit identifiziert werden kann(der code wird jedesmal in der adressleiste als parameter mit übergeben).
    mein problem ist die funktionsweise dieser "Sessions". Ich möchte gern wissen was script-mäßig dahintersteckt.
    Danke im Vorraus, für eure Hilfe.

    mfg phil

  • #2
    PHP4 hat eingebautes Sessionmanagment

    Das Sessionmanagment muss ab PHP4 nicht mehr von Hand funktionieren. Du musst nur noch eine Session initiieren. So noch nicht vorhanden, vegibt PHP4 dann automatisch eine Sessionnummer und gibt diese voreingestellt per Cookie weiter. Du mußt diese dann nur noch abfragen und auswerten. Wenn keine Cookies laufen, kannst Du auch die Session-ID in Deine internen Links einfügen lassen, geht per <a href="url?<?sid?>">Linktext</a>...

    Bei älteren PHP-Versionen, oder wenn ein genaueres Protokollieren nötig ist, prüfst Du sofort auf ein Cookie mit der Session-ID, und a) wenn nicht vorhanden, erzeugst Du eine und setzt das Cookie oder b) liest Sie einfach nur aus. Alternativ wiederum: Übergebene Variable in Query-String auf Vorhandensein checken, weiterverwenden und wie oben an interne URL anhängen, wenn noch nicht vorhanden, vorher erzeugen.

    Die Markt und Technik stehen die Neuerungen von PHP3 auf PHP4 als Probeartikel im .pdf-Format zur Verfügung, hier sind u. a. alle Funktionen für's automatische Sessionmanagment in PHP4 gut beschrieben. Link zur Buchseite gibt's auch auf http://www.dynamicwebpages.de

    Kommentar


    • #3
      danke für deine antwort,
      ich hab den session-abschnitt in der doku gefunden, sieht ganz brauchbar aus :-) is genau das was ich gesucht hab ...

      Kommentar


      • #4
        man kann auch in der Konfiguration von PHP4 einstellen, ob Session-Cookies benutzt werden sollen oder ob die SessionID automatisch an die URL gehängt werden soll. Vorteil hier ist, daß es auch bei Leuten funktioniert, die unverständlicherweise eine heidenangst vor Cookie haben und diese deaktiveren.

        Kommentar


        • #5
          hm, habe die beschreibung der einzelnen funktionen die zum session-modul dazugehören aber die funktionsweise geht daraus nicht hervor :-/
          kann jemand evlt. mal ein kleines beispielscript schreiben dass die funktionsweise kurz erläutert ?

          Kommentar


          • #6
            Kann z.B. so aussehen:

            if (!session_is_registered ($fl_session))
            {
            session_start();
            session_register($sessID); //global SessionID
            session_register($fl_session); // flag for former registration
            $fl_session = true;
            }

            $session_id = session_id();


            läßt sich prima als Include realisieren oder halt bei jeder Seite am Anfang.

            Kommentar


            • #7
              k, und wie füge ich da jetz die daten ein die ich rein haben möchte ?

              Kommentar


              • #8
                am besten schreibst du alle Daten in eine Datenbank, als eindeutige ID benutzt du die SessionID.

                Kommentar


                • #9
                  hm, so wie immer ging natürlich beim ersten versuch was schief ;-)
                  und zwar krieg ich folgende Fehlermeldungen:

                  Warning: open(/tmp\sess_acff0caf7eb32678c178f70addf3a3ff, O_RDWR) failed: m (2) in D:\PROGRAMME\OMNIHTTPD\HTDOCS\sesstest.php on line 2

                  Warning: open(/tmp\sess_acff0caf7eb32678c178f70addf3a3ff, O_RDWR) failed: m (2) in Unknown on line 0

                  Warning: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/tmp) in Unknown on line 0

                  das verzeichnis tmp hab ich erstellt und voll ist meine platte auch nicht.

                  Kommentar


                  • #10
                    super, funktioniert jetzt aber wie nehme ich die daten auf einer verlinkten seite wieder auf.
                    wenn ich also z.b. die session-id via link übergebe z.b. so:
                    href="weiter.php?sessid=sess_w0jr920438thj28934ht"
                    wie verwende kann ich die session auf der verlinkten seite wieder aufnehmen und die variablen wieder auslesen ?

                    Kommentar


                    • #11
                      wenn du mal die Session gestartet hast und die Cookies aktiviert sind, dann klappt eigentlich alles prima. du übergibst ja sogar per Parameter die sessionID, dann brauchst du dir sie ja nicht mehr holen. Ansonsten mit session_start() am Anfang.
                      Was willst du denn auf den Folgeseiten konkret machen? Willst du Daten in die DB schreiben oder so durchschleifen?
                      Wenn's einige Daten sind, dann würde ich dir die DB empfehlen -> dort ein Feld für die SessionID vorsehen und schon kannst du auf Folgeseiten mittels der SessionID die Daten wieder rausholen.

                      Kommentar


                      • #12
                        Wenn du keine DB zur Verfügung hast oder unbedingt mit files arbeiten willst, schreibst du am besten gleich ein php-Skript, das die Variablen setzt - muß nicht mal die Endung php haben - und includest das in jede seite:
                        include $sessid.'.sess';
                        mein Sport: mein Frühstück: meine Arbeit:

                        Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

                        Kommentar


                        • #13
                          Und wenn du keine Files schreiben willst, dann kannst du noch alle Daten, falls nicht gar zu viel, als Session-Daten speichern über

                          session_register($variable);
                          $variable="meineDaten";

                          ja, jetzt fällt mir auch nix mehr ein...

                          Kommentar


                          • #14
                            ich lass die daten in files schreiben, möchte wissen wie ich sie, nachdem sie ins file geschrieben wurden auf der nächsten seite wieder auslesen kann ...

                            Kommentar


                            • #15
                              Das hat Titus doch oben schon beschrieben:

                              du benennst dein File beim Wegschreiben mit der SessionID, also sowas wie acff0caf7eb32678c178f70addf3a3ff.sess oder wie immer du auch willst. Und auf der Folgeseite kennst du ja die SessionID, entweder du hast sie als Parameter in der URL eh übergeben oder du greifst auf das SessionManagement von PHP zu und holst dir die ID über session_start(); und dann über $RegistrierterNamederID und öffnest dann per fopen oder so dein File -> $filename=$RegistrierterNamederID.".sess";
                              fopen($filename,r);

                              soweit so gut...

                              Kommentar

                              Lädt...
                              X