Mailinglisten-Archive |
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