# sessionhandling beim webserver



## mightymop (30. Mrz 2006)

Hallo leute so ich habs nun n bisl weiter geschafft beim webserver coden und bin nun an der stelle angelangt wo es um sessions geht also php geht so einigermaßen gut nur kann ich keine sessions anlegen, da das der webserver ja (noch) nicht unterstützt und da wollte ich ma fragen, ob das schon mal jemand (in java vorzugsweise) gemacht hat (man muss das rad ja nich dauernd neu erfinden).

soweit wie ich das verstanden habe legt der server für jede session eine cookiedatei mit id und den variablen in einem eigenen tmp verzeichnis an und sendet die id dem client mit, welcher sich mit der gleichen id bei weiteren request kennzeichnet oder?

mfg

mightymop


----------



## KSG9|sebastian (31. Mrz 2006)

wenn client cookies unterstüzt wird ein cookie erstellt
wenn nicht wird die session-id an die URL drangehängt


----------



## Dante (31. Mrz 2006)

ein cookie ist nur ein http-header, wenn er in eriner antwort ist, wird er gesetzt, wenn der browser für die domain einen hat, wird er im request mitgeschickt.

der cookie ist nur eine nummer, zu dieser nummer kannst du *wie du willst* in deinem server daten abspeichern, die mit diesem cookie (und damit einem client) verbunden sein sollen.

das kann man natürlich ins dateisystem legen, genauso aber auch im speicher halten oder in eine datenbank werfen. am schönsten wäre es natürlich wenn da ssession-handling ne öffentliche api hat und so die datenhaltung dahinter beliebig auswechselbar ist. Dateisystem könnte nämlich irgendwann mal etwas zu langsam werden


----------



## mightymop (31. Mrz 2006)

thx werds am we ma probieren umzusetzen


----------



## mightymop (2. Apr 2006)

hm... wie kann ich dem php interpreter denn die session informationen übergeben?  also ich denke nicht dass es so einfach geht wie mit den get variablen (einfach beim aufruf als parameter hin dran hängen), sonst würden die ja nich in $_SESSION odern $_GET auftauchen... hm.. 
wenn ich in nem php script session_start() aufrufe passiert nämlich nix (er speichert keine sessiondatei auf dem server, in dem in der php.ini datei eingestellen ordner...) demzufolge kann ich auch nicht mit dem $_SESSION array arbeiten... 

weiß da jemand bescheid wie apache das macht oder so?


----------



## mightymop (3. Apr 2006)

ok ich habs... also beim aufruf mit runtime.exec sollte so aussehen damits geht... dann kann php auch aus der eigenen angelegten sessiondatei die da lautet sess__SESSIONID_  (MD5 Hash *glaub*) auslesen und dem neuen script zuordnen sowie inhalt zur verfügung stellen... dabei ist zu beachten, dass PHPSESSID case sensitive ist also es muss GROß geschriebern werden mein auruf sieht dann so aus mit Sessionid: 
Runtime.exec(PATHTOPHP/php datei PHPSESSID=_SESSIONID_ foo=_bar_);
der 2. parameter foo=bar wird dann im $_GET Array zur Verfügung gestellt, also PHP parst seine Parameter und je nachdem wie die heißen werden die in die Arrays einsortiert (also die Standardparameter..)

cu mightymop


ps: puhh das hat mich wieder n ganzen tag gekostet das rauszufinden da im netz dazu nix steht... also nichts was sessions auf kommandozeile angeht *grml*


----------

