ugrás a tartalomhoz

Kiléptetés böngésző bezárásakor

Anonymous · 2006. Már. 9. (Cs), 13.20
Sziasztok!

Kérdésem az lenne, hogy hogyan lehet elegánsam megoldani, hogyha a felhasználó nem szépen kilép, hanem bezárja a böngészőablakot, akkor is kiléptesse a rendszert. Erre azért gondoltam, mert ha a session-jét adatbázisban tárolom, akkor az nem fog onnan kikerülni, mert nem lesz, amit törölje onnan.
A nagyok ezt hogyan oldják meg?

Köszönöm a válaszokat!

Üdv: Viktor
 
1

garbage

winston · 2006. Már. 9. (Cs), 13.26
php.net, garbage control. a többit keresd meg magad.

(mielőtt pánikolnál: http://php.net & mielőtt kérdeznél: http://esr.fsf.hu/smart-questions_hu.html) -W.
2

Pl...

-zsolti- · 2006. Már. 9. (Cs), 13.38
...a body onunload eseményére meghívhatsz valamit egy kis ablakban, ahol figyelmezteted a felhasználót, hogy lépjen ki (vagy ki is lépteted rögtön). A Freemail-nél van így megoldva ha jól emlékszem.
Az adatbázisra pedig írj egy karbantartó metódust. (Lásd: db-sessionkezelős cikk valahol itt.)
3

jah ... onunload ...

anHuman · 2006. Már. 9. (Cs), 14.25
... megelőztél :)

ez működik ... és szép és jó.
onunloadra a szervíz kiláptet majd megmondod a lusernek, hogy biztonsági okokból automatikusan kiléptetted ...
.. amúgy én jsp-vel használtam . ;) .. és jó és szép
4

Session Timeout

Poetro · 2006. Már. 9. (Cs), 14.30
A session cookie lejártát 0-ra rakod a session_set_cookie_params segítségével.

session_set_cookie_params(0);
session_start();
Azaz előbb beállítod, hogy az élettartama 0, és utána indítod a session-t.
A 0 ezen esetben azt jelenti, amíg a böngésző nyitva van. Ugyanis ha egy cookie lejáratának időtartama 0, akkor a böngésző bezárásakor törlésre kerül.
--------
Poetro
5

kérdés?

Anonymous · 2006. Már. 9. (Cs), 19.21
Ha csak egy sima session_start() van és nincs megadva semmi élettartam akkor a böngésző bezárásakor megszünteti a session változókat mindenképp ugye? remélem jól tudom;
Viszont lenne egy kérdésem:A felhasználó be van jelentkezve és ha a kilépésre nyom akkor visszairányítom az index.php-ra és megszüntetem a session-okat. Nade ha a böngészőben nyom egy vissza gombot akkor az OPERA szépen vissza engedi annak ellenére hogy a változók már nincsennek meg. Persze amint ír valamit(ez egy fórum) egyből megy az index.php-re tehát nem tud csinálni semmit de jó lenne ha már vissza sem tudna menni. És érdekes pl. hogy Explorerrel nem is tud. Az nem engedi vissza csak az Opera. valami jó ötlet? Előre is köszi!!
6

válasz

Anonymous · 2006. Már. 9. (Cs), 21.22
Ne felejtsd el előtte a
session_unset();
session_destroy();
függvényeket meghívni. A sorrend ez legyen.
7

session; cookie; opera

Poetro · 2006. Már. 9. (Cs), 23.31
Ha csak session_start-ot használsz, még nem jelenti, hogy a session cookie élettartama 0. Ez php.ini-ben változtatható, illetve a programod is tudja ezt változtatni.
Az Opera elég érdekesen működik. Ugyanis az oldalakat nem friss0ti, ha már voltunk ott, akkor annak a legutóbbi változatát jeleníti meg, hacsak nem kérjük hogy frissítse az oldalt. Próbáld meg. Belépsz, kilépsz mondjuk a weblabor oldalán, miközben végigjársz több oldalt. Kilépve ugyan azt fogod látni ezeken, mint belépve (azaz látszik a saját blokkod a jobb oldalon), még ha nem is vagy belépve. Persze így gyorsabban jelennek meg az oldalak, mert minden cache-ből jön, de közben pedig az oldal lehet, hogy megváltozott. A cache kezelést a beállításokban módosíthatod.
--------
Poetro
8

evolt.org cikk

bur · 2006. Már. 10. (P), 11.03
Én a böngészőre semmit nem bíznék. Itt 1 jó cikk+ kód:
http://evolt.org/PHP-Login-System-with-Admin-Features
"Visitor Tracking" -rész