db abfrage oder doch lieber cooki

bluex

Erfahrenes Mitglied
hi
Ich baue gerad ein Membersystem auf und frage mich gerad ob es sinnfoller ist die Userdaten aus dem Sessioncooki auszulesen oder doch immer in der db rum zu wühlen.
Wenn man sich einloggt werden gleich alle wichtigen Userdaten des Members in einem Sessioncooki gespeichert um db abfragen zu sparen. Nun frage ich mich aber ob das wirklich sinnfoller ist als jedes mal ne db abfrage zu starten. Immerhin sind das 20 bis 30 Variablen die dann da in dem cooki gespeichet werden. Die ja aber nicht alle auf jeder Seite des Scripts gebraucht werden 0_o

MfG
blue
 
Zuletzt bearbeitet:
Ich find's nicht sinnvoll alles in der Session zu speichern (im Session-Cookie steht uebrigens nur die SessionID), vor allem wenn die Daten nicht ueberall gebraucht werden.
Und anhand einer UserID mal eben die User-Daten aus der Datenbank zu zaubern ist nun wirklich kein Gewaltakt oder etwas was auch nur annaehernd unglaublich lang brauchen wuerde.
 
Ok ich dachte nur das es evtl. besser sein könnte weil ich ja sonst bei jedem Seitenaufruf dann jedes Mal eine querry senden muss um die Usereinstellungen wie Style und Usergruppe und sowas abzufragen.
Hm allerdings frage ich mich wo das jetzt alles gespeichert wird wenn nicht im Sessioncooki.
Wenn der user sich einloggt, werden seine Daten aus der Db gelesen und dann in die Session gespeichert. Aufrufen tu ich das dann zum Beispiel so:
PHP:
$_SESSION["user_id"]
$_SESSION["user_name"]

Das macht das ganze irgendwie flexibler, weil ich die ja gleich dann global für alle teile der Seite zur Verfügung habe finde ich. Es sollen auf jeden fall alle user einstellungen verfügbar sein, ohne an jeder stelle wo eine der einstllungen gebraucht wird erstmal ne Querry zu senden. Das wär meine Meinung nach für spätere Erweiterungen und Module nicht sinnfoll weil man dann möglicher Weise an zu vielen Stellen editieren muss. Ich frag mich nur welche der Möglichkeiten mehr Performance frisst. Entweder die Daten in der Session speichern oder in der global.php jedes mal eine Abfrage machen und das dann in ein array speichern. 0_o

mfg
blue
 
bluex hat gesagt.:
Hm allerdings frage ich mich wo das jetzt alles gespeichert wird wenn nicht im Sessioncooki.

Im Session Cookie wird wie gesagt nur die Session Id gespeichert, die Session selbst wird als Datei (oder wie auch immer, ist vom Session Handler abhängig, man kann Sessions auch in Datenbanken ablegen) am Server gespeichert. Das heißt dass alle Variableninhalte etc des $_SESSION-Arrays auch am Server abgelegt sind.
Das Cookie wird nur am Client abgelegt, damit der Server den Client identifizieren kann und ihm die Daten aus der entsprechenden Session liefern kann ;)

Ich würde btw auch den Weg der Speicherung der Daten im Session-Array gehen, ist weniger umständlich wegen der ersparten Queries.
 
Zuletzt bearbeitet:
Zurück