phpbar.de logo

Mailinglisten-Archive

[php] Sessions & cookies

[php] Sessions & cookies

Thomas Bartz thomas_(at)_cyainhell.de
Thu, 8 Feb 2001 20:18:32 +0100


hi,

> Hab ein Problem mit sessions. mit noch ziemlich unerfahren damit. Kann mir
> mal jemand vielleicht ein script schicken wo sessions verwendet werden das
> ich seh wie's gemacht wird. Hab alle möglichen referenzen dazu
> gelesen aber
hehe, ging mir genauso. hab 2 Bücher zu hause und etliche online-referenzen
gewälzt und es am ende doch nicht verstanden... aber, mal von n00b zu n00b
will ich mein bestes versuchen, da die "alten hasen" hier das thema sicher
schon leid sind (meiner einer hatte damals auch deswegen hier gepostet und
schon keine antwort mehr drauf bekommen hehe)

> es gelingt mir z.B. nicht vernünftig den session_name zu setzen.  Der
heißt
> bei mir immer PHPSESSID.
den sessionnamen setzt du mit "session_name("mySessionName");"
erst dann startest du die session mit "session_start();"
so, jetzt kannst du auf die session-id via "$mySessionName" zugreifen und
sie von skript zu skript geben, wenn du keine kekse magst, wie ich :)

> Um abzfragen ob ein cookie vorhanden ist genügt es doch einfach abzufragen
> ob eine variable, die im cookie gespeichert wurde überhaupt
> existiert,oder?
soweit ich das verstanden habe, werden bei sessions die variablen nicht im
cookie gespeichert, sonder im filesystem des servers.. oder von mir aus auch
irgendwoanders.. wie auch immer, im Cookie wird lediglich die sessionid
abgelegt. anhand der sessionid kann der server erkennen, welche
registrierten variablen (im filesystem) zu welcher session gehören.
zu deiner frage: ja, ich mach das auch so. wenn ich wissen will, ob die
session, die da gestartet wurde, alt oder neu ist, schaue ich, ob eine
bestimmte variable registriert ist. vielleicht gibts da noch ne elegantere
lösung :)

zu der arbeit mit sessions allgemein:
ich hatte am anfang wirklich probleme, das konzept als ganzes zu verstehen..
wie sind die genauen abläufe, wann ist wie und wo am günstigstens was zu
tun.
durch trial und error hab ichs mir selber zusammengesponnen. beispiel
authentification:
in jedem skript, dass ein nicht-authorisierter benutzer nicht sehen darf,
überprüfe ich, ob die session gültig ist. dies tue ich, indem ich eine
session starte bzw. die ggf. bestehende session aufnehme (session_start())
und schaue, ob eine bestimmte variable registriert ist
(session_is_registered()), im normalfall die benutzer ID.
ist die variable nicht registriert, erfolgt ein redirect auf das
anmeldeformular, von wo aus ich dann die benutzername und PW überprüfe. sind
benutzername und PW gültig, registriere ich die benutzer ID
(session_register("userId")) und leite auf die interne startseite weiter ..
dort wird erneut die gültigkeit der session überprüft und da die userId
registriert ist, kann er die seite ohne probleme sehen.
wichtig bei der ganzen sache ist vor allem, dass man die sachen mit sessions
und header IMMER vor jeder anderen bildschirmausgabe (z.B. HTML, Text..)
machen muss, sonst kann er die Header nicht senden (gibt dann ne
fehlermeldung a la: "couldnt send header.. blabla").

ok, vielleicht hat ja jemand bessere vorschläge, bin nach wie vor für jeden
tipp dankbar :)

gruss
Thomas
PS: ka, ob die funktionsname alle 100%ig richtig sind.. schlags lieber
vorher nochmal nach :)



php::bar PHP Wiki   -   Listenarchive