Cookies uns Session überprüfen

Oli-bt

Mitglied
Hi zusammen!
Ich habe mir schon seit längerem ein "LoginSystem" gebastelt. Dabei überprüft das System ob die Session "z.b. User" registriert ist. Also wenn sich ein User erfolgreich einloggt wird die Session "User" gespeichert.

Nun wollte ich das ganze mit Cookies machen. Das z.B. der User immer eingeloggt bleiben kann. Also dann wenn er den Browser schließt und wieder aufruft. Das Problem ist nämlich das er mit Sessions immer wieder ausgeloggt wird sobald er den Browser schließt.

Nur wie sag ich dem System das er schauen soll ob das Cookie vorhanden ist und ob darin die Session "User" gespeicher ist?!
Bzw. Wie kann ich sowas überhaupt realiesieren?

---
Dann hab ich da noch ein kleines Problem.
Sobald sich ein user einloggt wird sein Status auf Online gesetzt. Das jedoch nur für 10 Minuten und dann wir er automatisch als nicht online angezeigt. Nun möchte ich auf jeder geschützten Seite oder wie z.B. bei der Mitglieder Seite immer wieder prüfen ob die Session "User" registriert ist, wenn ja, soll sich die Zeit wieder um 5 Minuten verlängern. Wenn ich das jedoch immer wie beim Einloggen mit der Datenbank mache, wird diese wahrscheinlich irgendwann mal schlapp machen weil bei 20 Usern das Ding wahrscheinlich nichtmehr aufhört zu arbeiten.

Wie kann ich das also realisieren das er immer die Zeit verlängert solange der User die Seiten aufruft.

Ich habe mir gedacht das ich auf jede Seite eine Abfrage mache ob die Session gespeichert ist, und wenn ja, soll die Zeit (ablauf vom Online Status) um 5 Minuten verlängert werden. Das Problem was ich eben dabei sehe ist das wenn ich es über Datenbanken mache, die mir irgendwann zusammen fällt... Kann ich das irgendwie anders machen?

Gruß, Oli

p.S. wäre super wenn mir jemand weiterhelfen kann.
 
Die speicherst einen MD5-Hash für den Benutzer im Cookie. Gleichzeitig legst du diesen MD5-Hash in deiner Datenbank oder auf dem Filesystem ab mit den Benutzerinformationen.
Session-Cookies werden standartmässig bei Schliessen des Browser gelöscht. Mit der Funktion session_set_cookie_params kannst du die Lebensdauer deiner Session-Cookies erhöhen. Dein Problem ist jetzt nur, das die Session auch nach einer Zeit gelöscht werden. Darum generierst du einen MD5-Hash aus Benutzername und der aktuellen Zeit und eine Zufallszahl beim Einloggen. Diesen speicherst du im Cookie und in der DB/Filesystem.
Beim nöchsten Versuch kannst du den MD5-Hash im Cookie mit dem in der DB vergleichen. Wenn sie gleich sind, dann kann der Benutzer wieder eingeloggt werden.
Aber hier ist auf das grosse Sicherheitsrisiko zu achten Da viele eine dynamische IP haben, kannst du keine Überprüfung der richtigen Herkunft machen. Es reicht schon das auslesen deines Cookies um Zugriff auf den Account zu bekommen.
 
hm... ich glaub ich weis so ungefähr was du meinst.

Wie machen es denn z.B. die meisten Seiten wenn man sich einloggt... Dann wird man ja logischerweise als "online" angezeigt. Nun werden sie ja automatisch nach z.b. 5 minuten inaktivität als offline angezeigt. sobald sie aber einfach nen Link anklicken sind sie wieder als "online" angezeigt.... weist du was ich meine?

Wie machen die sowas?

Gruß, Oli

p.S: Das mit dem Eingeloggt bleiben werd ich doch sein lassen,.... trotzdem danke
 
Zurück