sessions

lsblsb

Grünschnabel
hallo. habe ein script geschrieben, das sessions verwalten soll über mysql.
stosse dabei auf folgendes problem:

ich erzeuge, wenn der user auf eine seite kommt eine eigene session-id für ihn, welche in datenbank abgelegt wird.
wenn nun aber der user auf startseite reloaded, das heisst keine id per post/get übermittelt werden kann, ist die aktuelle id nicht vorhanden, die ich aber bräuchte um zu wissen, welcher user das ist.

das heisst momentan würde mein script eine neue id erzeugen, ohne die alte zu löschen(statt den zeitstempel der alten einfach zu erneuern).

ich weiss nicht wie und ob ich überhaupt dieses problem lösen kann.

hoffe ich werde verstanden - mit der bitte um hilfe
 
Das Problem löst Du über ein Cookie, in dem Du die Session-ID ablegst. Wenn nun der User die Seite reloaded (oder komplett neu aufruft) hast Du die Session-ID und weisst, welcher User es ist.


Dunsti
 
naja - genau da liegt ja mein problem.

ich geb die id per get/post weiter, da ich keine cookies verwenden will.

wenn aber der user die erste seite reloaded, wo ja die id zuerst erzeugt wurded und dann gleich in die datenbank geschrieben wurde, dann wird fälschlicherweise eine neue id erzeugt und in die db geschrieben.
der alte eintrag in der db kann aber nicht mehr gelöscht werden, da des alten eintrags id, welche normalerweise über get/post übermittelt wird dann unbekannt ist.
bei jedem weiteren klick auf einen link wäre auf der folgeseite die id vorhanden - und das script könnte diese dann in der db finden und evtl. den zeitstempel updaten oder wenn zuviel zeit vergangen die id aus der db löschen.

eigentlich wollte ich das ganze ja mit dem 'session_set_save_handler' machen, aber da find ich einfach kein tutorial zu, was ich kapier (immer nur das auf php.net, das sich auf filespeicherung bezieht).
kann mir dazu jemand helfen?
 
Zuletzt bearbeitet:
@alive bei einem reload der Startseite bringt dir eine Übergabe via URL überhaupt nichts, zumindest wenn ihr unter Reload (so wie ich das tue) F5 oder ähnliches versteht. Ausserdem sollte man Session ID's wenn möglich überhaupt nicht sichtbar per URL übergeben, da dies ein mittleres bis großes Sicherheitsrisiko darstellt. Jenachdem was du in der Session alles speicherst.
 
Zuletzt bearbeitet:
aber wie soll ich eine session-funktion erzeugen mit datenbank wenn ich den session_set_save_handler net richtig kapier ? *heul*

need help
 
sry, naja bin ja auch nicht der voll profi, un die session_Id per Url weiter geben reicht völlig für meine privaten zwecke aus.. :P
 
Hallo,

soweit ich weiß, bleiben bei einem Reload alle übergebenen Variablen erhalten, so dass auch sie Session-ID noch vorhanden sein müsste.

Andernfalls kannst Du ja auch einenneue Session-ID anlegen und veraltete Sessions automatisch löschen.

mfg, snuu
 
Ja - nur das bei einem reload, bei dem keine variable übergeben wurde auch keine sein kann (beim ersten betreten der index seite)
 
Hallo,

wenn der Nutzer die erste Seite refresht kannst Du ihm doch ruhig eine neue Session-ID zuweisen. Dann wird er eben behandelt, wie ein völlig neuer Benutzer. Du generierst die ID und legst sie in der Datenbank mit einem Gültigkeits-Zeitstempel ab. Gleichzeitig löschst Du alle Session-IDs aus der Datenbank, deren Gültigkeits-Zeitstempel überschritten wurde. So hältst Du den Datenbestand sauber.

mfg, snuu
 
Zurück