Sessions - Array - Frage!

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

  • Sessions - Array - Frage!

    Hallo Zusammen!

    Bin noch immer mit der Planung meines CMS beschäftigt.
    Momentan stellt sich mir folgende Frage:

    Ist es sinnvoll ALLE Benutzerdaten aus der Datenbank beim einloggen in ein array zu laden?

    Soll dann folgendermassen ablaufen:

    Benutzer loggt sich ein --> persönliche Daten(name, beruf, alter was weiss ich!) werden aus der DB geholt und in ein Array (z:B: Benutzer[ ] geschrieben) --> dieses Array wird dann per session-handling von seite zu seite "weitergereicht", so dass auf jeder seite alle benutzerinfo`s zur verfügung stehen ohne jedesmal auf die DB zugreifen zu müssen --> wenn der User seine Daten ändert, so werden die daten IM ARRAY! geändert --> wenn er sich dann ausloggt, dann wird das array ausgelesen und die DB ge-UPDATED.

    was haltet ihr davon?
    Sinn ist es, so wenig DB-Abfragen wie möglich zu machen.

    kann man das so lösen oder ist da ein denkfehler drin?
    habt ihr das bei euch ähnlich verwirklicht, oder habt ihr bessere vorschläge?


    bis bald

    james

  • #2
    Hi,
    ich würde die Daten wenn Sie gebraucht werden aus der DB auslesen. Desweiteren würde ich diese auch gleich in der DB Updaten. Wenn er sich nämlich mal nicht ausloggt oder der Rechner abstürzt, sind die ganzen Daten weg.
    mfg
    Günni


    Praxis: Jeder kann´s, aber keiner weiß wie´s geht...
    Theorie: Jeder weiß wie´s geht, aber keiner kann´s ...
    Microsoft vereint Praxis und Theorie: Nix geht und keiner weiß warum
    City-Tiger - Online durch die Straßen tigern...

    Kommentar


    • #3
      Re: Sessions - Array - Frage!

      Benutzer loggt sich ein --> persönliche Daten(name, beruf, alter was weiss ich!) werden aus der DB geholt und in ein Array (z:B: Benutzer[ ] geschrieben) --> dieses Array wird dann per session-handling von seite zu seite "weitergereicht", so dass auf jeder seite alle benutzerinfo`s zur verfügung stehen ohne jedesmal auf die DB zugreifen zu müssen --> wenn der User seine Daten ändert, so werden die daten IM ARRAY! geändert --> wenn er sich dann ausloggt, dann wird das array ausgelesen und die DB ge-UPDATED.
      erstens, wie günni schon sagte, bei einer änderung der daten ohne anschliessenden logout sind die daten futsch, ist also mist.


      und zweitens: du sagst du wolltest ein CMS programmieren - wofür muss der benutzer eines CMS ständig daten wie seinen eigenen beruf angezeigt bekommen?
      ist doch absolut überflüssig, bei einem CMS logge ich mich mit username und passwort ein, und editiere den content meiner seiten. wenn dabei jetzt oben in der ecke angezeigt wird 'dein beruf ist müllmann', dann weiss ich nicht wofür ich das in der situation brauchen sollte.
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar


      • #4
        danke erstmal für die antworten.

        die daten möchte ich z.b. deshalb imme rhaben um zugangsberechtigungen usw zu überprüfen.
        beim cms werden verschiedene nuter auch verschiedene recht e besitzen.
        diese user-level-info muss also bei jedem seitenaufbau zur verfügung stehen.
        um nich bei jedem seitenaufruf die berechtigunggsinfo neu aus der DB lesen zu müssen will ich diese in ein array schreiben.
        beim seitenaufbau wird dann die berechtigungsinfo aus dem array gelesen.
        das mit dem beruf war nur als beispiel gedacht.

        geht mir hauptsächlich um berechtigungsinfos usw.

        james

        Kommentar


        • #5
          ich mach das so:

          ich bin grade an was ähnlichem dran (ein firmen intranet), und ich mache das so:

          bei login gibt der user einen usernamen und ein passwort an (normal halt). ich suche den user in der DB und vergleiche das eingegebene, verschlüsselte PW mit dem in der DB abgelegten verschlüsselten PW.

          wenn das stimmt, dann werden folgende userdaten in eine session variable abgelegt: username, userid, gruppenid, letzter login, cookie setzen (ja / nein) cookielaufzeit, und eine selbst generierte session id [ md5(ID Adresse + Timestamp + Browser + Zufallszahltimestamp) ]. Die sessionID wird in die Datenbank geschrieben.

          wenn ich nun bestimmte bereiche nur für bestimmte gruppen freigeben möchte, dann muss ich nur die group id prüfen, dafür hab ich eine funktion, die über eine "Seiten ID" die erlaubten group IDs aus der DB ausliest und vergleicht, ob die group id des users mit einer der ausgelesenen group ids übereinstimmt.

          wenn ich überprüfen will, ob das wirklich der user mit der user id ist, dann suche ich nach der session ID in der DB, und normalerweise müsste der richtige user wieder gefunden werden.

          da es bei mir die userid "0" nicht gibt kann ich leicht prüfen, ob der user eingeloggt ist oder nicht:
          if ($mySessionVars['userID']) echo "user ist eingeloggt;
          else echo "anonymer Benutzer";


          bei logout lösche ich das evtl. gesetzte cookie und die session ID
          wenn der user den browser zumacht und kein cookie gesetzt wurde, dann ist auch die session ID weg und der user muss sich erneut einloggten ...

          das funktioniert bei mir bisher ganz gut ...

          grüzze
          cb
          Hans Matthöfers Widerspruch zur Expertenerkenntnis: Künstliche Intelligenz ist besser als natürliche Dummheit.

          Kommentar

          Lädt...
          X