ugrás a tartalomhoz

Automatikus bejelentkezés

TIV · 2008. Már. 12. (Sze), 01.00
hella!

van egy bejelentkező formom és szeretném ha a látogatók automatikus bejelentkezést tudnának használni. pl. 2héten keresztül ne kérje újból a username/pw-t. Kérdések: (szeretném használni a beépített sessionkezelő dolgokat)

1. Az automatikus bejelentkezéshez (két hétig) két hétnyi érvényességi időt kell megadnom a cookienak és a session.gc_maxlifetime beállításnak is? egyáltalán ez a módja az autologinnak?

2. Ha egy user nem akarja használni az automatikus bejelentkezést, akkor nála nem állítok akkora bazi nagy gc_maxlifetime-ot és nem módosítom a cookie paramétereit. de nekem ez nem logikus. nyílván a gc egy beállítás alapján dolgozik...hogy lehet akkor mégis megoldani, h vmely emberek sessionja félóra múlva, többieké két hét múlva törlődjön?

3. Hogy lehet elérni, hogy session (session_start()) csak akkor induljon, ha bejelentkezett az ember? (nem akarom, h minden látogató esetén induljon session, csak annak aki regisztrált) figyeljem minden oldal elején, h létezik-e session cookie és ha igen, akkor session_start()?

Előre is köszönöm az okítást!
Tivadar
 
1

cookie

rrd · 2008. Már. 12. (Sze), 09.51
A session és a cookie két külön ügy, annyi kapcsolat van közöttük, hogy a session azonosítója időnként cookieban tárolódhat.

Egyébként nagyjából erről van szó, beállítasz egy cookiet és kész. Ha nem akarja használni az automatikus bejelentkezést, akkor meg nem állítod be. A session meg törlődni fog amikor lejár az ideje, mondjuk fél órányi inaktivitás után.

3: igen
2

ez így nem jó, mert

TIV · 2008. Már. 12. (Sze), 13.50
ha beállítom a cookiet két hétre, a gc-t fél órára, akkor...40 perc múlva ismét kéri a username/pw-t...hiába van meg a cookie, a szerveroldalon már törölve lettek a hozzávaló dolgok.

ötlet? állítsam be ini_set el a gc-t maxlife-ot két hétre? de ez csak arra a userre lesz érvényes? a többire nem?
3

Egy kis olvasmány!

s_volenszki · 2008. Már. 12. (Sze), 14.28
4

szerver oldalon törölve?

rrd · 2008. Már. 12. (Sze), 15.32
Szerintem nem ugyanarról beszélünk. Nem azért nem kéri a jelszót, mert folytatja az egy héttel ezelőtt félbehagyott sessiont. Akár begépeli a jelszót, akár a cookie létezik neked új sessiont kell indítanod.

A különbség az, hogy a cookie-s esetben a cookieban mondjuk benne van a user id-je, meg mondjuk egy egyedi azonosító mondjuk az utolsó bejelentkezés ideje md5-tel. Ha a cookie létezik, akkor megvizsgálod, hogy ahhoz a user id-hez ugyanaz az md5 tartozik-e vagy sem. Ha nem akkor valami csúnyaság van, nem lépteted be. Ha stimmel beállítasz egy session változót, hogy "belepve" és kész. Onnantól be van lépve és fut neki a session.
5

világos

TIV · 2008. Már. 12. (Sze), 18.15
világos köszönöm. a gond azzal volt, hogy azt hittem ugyanazokat a sessionöket kapják vissza a userek automatikusan amikor már létezik a PHPSESSID cookie, nem gondoltam, hogy nekem a beléptetést manuálisan kell véghezvinnem.

mégegyszer köszönöm!
Tivadar