Session in Cookie speichern?

  • Themenstarter Themenstarter ByeBye 8492
  • Beginndatum Beginndatum
B

ByeBye 8492

Moinsen,

wie kann ich eine Session in einem Cookie speichern?
Also wie dir großen Foren das machen.

muss man da nen Cookie mit der Session speichern und diesen dann irgendwie wieder reinladen lassen?
 
Hi,
also du hast die Qual der Wahl:

Du kannst die einzelnen Session-Daten in einzelnen Cookies speichern.
Vorteil: geringer Aufwand
Nachteil: böser User kann alles ändern (es sei denn du verschlüsselst es), irgendwelche "Dr. Norton Power Security Cookie Slammer" können die Daten teilweise schreddern, woraufhin dein Script beim nächsten Besuch buggt

oder du speicherst beim User eine ID in einem Cookie und speicherst die Session bei dir auf dem Server (entweder in dem du sie in eine Datenbank schreibst oder indem du sie serialisierst und speicherst (was eigentlich gehen müsste))
Vorteil: User kann nichts ändern, du kannst sie verfallen lassen wenn du ihnen einen Timestamp machst, bei der anderen Methode könnte der User ihn ändern, außerdem hättest du dann ne feine Wochenendlektüre ;)
Nachteil: etwas mehr Aufwand

Machs wies dir gefällt ;)

Gruß
TiM
 
Zuletzt bearbeitet:
Ich verstehe immer nicht, warum man sich so viele Gedanken um die Session-ID in Verbindung mit selbst gesetzten Cookies macht. Das Session-Handling von PHP nimmt einem doch alles ab. Wird die Session mit session_start() begonnen oder wieder aufgenommen, so wird automatisch ein Cookie mit der Session-ID auf dem Client abgelegt. Ist das nicht möglich, so versucht PHP die Session-ID an die gefundenen URLs der HTML-Seite anzuhängen, um die Übertragung der Session-ID sicher zu stellen (falls eingestellt). Ausserdem bietet PHP mehere Einstellungsmöglichkeiten, die es erlauben Regeln für die Session-Cookies aufzustellen (Lebensdauer, Pfad und Domain).

Alles hier nachzulesen:
--> http://de.php.net/manual/de/ref.session.php

snuu
 
Original geschrieben von snuu
Ich verstehe immer nicht, warum man sich so viele Gedanken um die Session-ID in Verbindung mit selbst gesetzten Cookies macht. Das Session-Handling von PHP nimmt einem doch alles ab. Wird die Session mit session_start() begonnen oder wieder aufgenommen, so wird automatisch ein Cookie mit der Session-ID auf dem Client abgelegt. Ist das nicht möglich, so versucht PHP die Session-ID an die gefundenen URLs der HTML-Seite anzuhängen, um die Übertragung der Session-ID sicher zu stellen (falls eingestellt). Ausserdem bietet PHP mehere Einstellungsmöglichkeiten, die es erlauben Regeln für die Session-Cookies aufzustellen (Lebensdauer, Pfad und Domain).

Alles hier nachzulesen:
--> http://de.php.net/manual/de/ref.session.php

snuu

naja ...

bisher ist es bei mir, so wenn ich mein Script besuche, muss ich mich immer erst wieder einloggen, weil er die Session nachdem der Browser geschlossen wurde nie wieder automatisch aufnimmt ....
 
Das Einloggen machst du auch nicht über Sessions. Du speicherst ein Cookie auf dem Computer und wenn ein User deine Seite betritt suchst du nach den Cookie-Variablen, wenn die Daten aus dem Cookie mit dem Login übereinstimmt kannst ihn einloggen. Sessions würd ich nur nutzen, wenn der User schon auf der Seite ist.
 
Original geschrieben von KoMtuR
Das Einloggen machst du auch nicht über Sessions. Du speicherst ein Cookie auf dem Computer und wenn ein User deine Seite betritt suchst du nach den Cookie-Variablen, wenn die Daten aus dem Cookie mit dem Login übereinstimmt kannst ihn einloggen. Sessions würd ich nur nutzen, wenn der User schon auf der Seite ist.

Das heisst Praktisch man hätte eine Login Funktion
|
|
--> Bei erfolgreicherm Login
---> Session starten
---> Cookie setzen Mit UserPasswort und Name
|
|
--> Später check ob Cookies gesetzt sind und Daten in der Datenbank gefunden werden können
|
|
--> Wenn ja Session wieder starten


So in etwa?
Müsste eigentlich klappen oder nicht?
 
Zuletzt bearbeitet von einem Moderator:
So würd ich das machen und ich mache es auch immernoch so:


Erster Login:
Cookie setzen und session starten.




Nach einer Woche kommt der User wieder auf die Seite:
Cookies lesen
Datenbank abfragen
ggf. User automatisch einloggen
Session starten.
 
Original geschrieben von KoMtuR
So würd ich das machen und ich mache es auch immernoch so:


Erster Login:
Cookie setzen und session starten.




Nach einer Woche kommt der User wieder auf die Seite:
Cookies lesen
Datenbank abfragen
ggf. User automatisch einloggen
Session starten.

Was schreibste in den Cookie alles rein?
Nur den UserName und das Passwort?
 
naja alle wichtigen Daten, die du für dein Login brauchst. Sind ja meistens nur name und passwort. Ich würde aber das Passwort irgendwie verschlüsseln, damit du deinen Usern ein wenig Sicherheit gibst
 
Original geschrieben von KoMtuR
naja alle wichtigen Daten, die du für dein Login brauchst. Sind ja meistens nur name und passwort. Ich würde aber das Passwort irgendwie verschlüsseln, damit du deinen Usern ein wenig Sicherheit gibst

Naja, das Passwort werde ich Md5 verschlüsselt in den Cookie geben :).
Wird ja auch mit MD5 in der Datenbank gespeichert :)

So der AutoLogin klappt :).

Allerdings immer erst nachdem ich einmal Refrehst habe.
Man kann das UserControlPanel benutzen, allerdings werden die Blöcke ( Online User, welche nur bei angemeldeten User erscheinen) nur nach einem Refresh, oder wenn man irgendwo draufklickt angezeigt *G* :(

EDIT: Habe es jetzt so gelöst, das in der Short_login Funktion einfach ne Header Weiterleitung drinne ist, um dem User das Refreshen abzunehmen :D.

Aber irgendwie muss man das doch anders lösen können oder nicht?
 
Zuletzt bearbeitet von einem Moderator:
Zurück