# Session in Cookie speichern?



## ByeBye 8492 (6. August 2004)

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?


----------



## Schnubbel (6. August 2004)

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


----------



## Sven Petruschke (7. August 2004)

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


----------



## ByeBye 8492 (7. August 2004)

> _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:
> ...



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 ....


----------



## KoMtuR (7. August 2004)

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.


----------



## ByeBye 8492 (7. August 2004)

> _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?


----------



## KoMtuR (7. August 2004)

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.


----------



## ByeBye 8492 (7. August 2004)

> _Original geschrieben von KoMtuR _
> *So würd ich das machen und ich mache es auch immernoch so:
> 
> 
> ...



Was schreibste in den Cookie alles rein?
Nur den UserName und das Passwort?


----------



## KoMtuR (7. August 2004)

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


----------



## ByeBye 8492 (7. August 2004)

> _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 .

Aber irgendwie muss man das doch anders lösen können oder nicht?


----------

