PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PHP Cookie Session (angemeldet bleiben)


ravage
2005-01-11, 06:18:06
Moin

Ich hab ein Problem. Und ich denk mal, dass ich nur ein Brett vor dem Kopf habe. ;)

Also ich arbeite auf meiner HP mit Sessions. Diese werden per Cookie gespeichert. Derzeit verfällt das Cookie sobald man den Browser schliesst. Das funktioniert auch soweit.

Doch jetzt möchte ich dem User die Wahl geben, angemeldet zu bleiben auch wenn er seinen Browser schliesst. Das geht ja ganz einfach mit

ini_set("session.cookie_lifetime", "31536000");

Dies muss vor dem starten der Session passieren, also vor

session_start();

Jetzt möchte ich aber natürlich, dass diese ini_set Funktion nur gestartet wird, wenn der angemeldete User auch das Häkchen gesetzt hat. Da hab ich mir doch gedacht, speicher ich in eine Session Variable. Ich will ja nicht hinter jeden Link eine Variable mit rumschleppen.

Tja nur leider kann ich auf diese Session Variable noch nicht zugreifen, wenn die session noch nicht gestartet ist.

Nächste Idee: Speicher ich doch einfach passend zum User in die Datenbank, ob er angemeldet bleiben möchte. Leider steht der Wert, der mir sagt, welcher User denn grad angemeldet ist auch in einer Session Variable...

Und jetzt sitz ich fest. Wie weiss ich, bevor ich die Session starte, und ohne dass ich eine Variable hinter jeden Link packe, wer grad angemeldet ist bzw. ob dieser angemeldet bleiben möchte?

HELP :uconf2:

clm[k1]
2005-01-11, 07:57:07
Warum legst du nicht einfach erst beim schreiben der cookies fest wie lange die gültigkeitsdauer selbiger sein soll?

bool setcookie ( string name [, string value [, int expire [, string path [, string domain [, int secure]]]]])

wie hier sehr schön zu sehen ist, musst du einfach nur den optionalen parameter expire mit angeben (der natürlich dementsprechend weit in der zukunft liegen muss)


gruß
clm[k1]

ravage
2005-01-11, 12:11:32
Ich leg das Cookie ja nicht selbst an, das macht alles das PHP Session Modul für mich.

Ich bin in der Hinsicht doch so faul ;)

Es gibt doch sicher noch eine andere Lösung...

clm[k1]
2005-01-11, 13:41:48
Ich leg das Cookie ja nicht selbst an, das macht alles das PHP Session Modul für mich.

Ich bin in der Hinsicht doch so faul ;)

Es gibt doch sicher noch eine andere Lösung...


Achso.. ja..hmm.. ich glaube das war einer der Gründe, warum ich letzlich für mein Forum ein eigenes Session-management geschrieben habe.

Die Option hättest du auch noch - aber du sagst ja selbst, du bist faul! ;D


gruß
clm[k1]

MadMan2k
2005-01-11, 16:23:04
mach doch einfach dem User, der nich angemeldet bleiben will ein Button für setcookie(session_name(), '', time()-42000, '/'); hin.

ravage
2005-01-11, 20:07:46
Müsst ich mal testen. Wenn bei jedem Aufruf von session_start() aber das Cookie erneuert wird, dann überschreibt er es sofort wieder...

Ich meld mich später nochmal

XPiRE
2005-01-15, 13:26:10
Ersetz lieber mit session_set_save_handler die cookiesessionfunktionen
mit mysql queries..... einmal 2 tage fluchen und ab dafür ;)

danach is das ding denn auch safe... sind ja SOOOOOOO viele hacker/skriptkiddies da draussen :)

Greetz, Basti