ugrás a tartalomhoz

böngésző bezárás

kriszrap · 2013. Júl. 12. (P), 01.08
Meg szeretném kérdezni tőletek hogy ha bezárok egy böngészőt akkor gyors lefuthat egy parancs?

Nézem a felhasználó bejelentkezését és kijelentkezését.
Meg van az ha a user rányom egy gombra és akkor sessiont "elveszi" és az adatbázisnak elküldi mikor jelentkezett ki meg ha 20 percig "nem mozog" akkor is kijelentkezteti és ugyan úgy felküldi az adatokat. De ha bezárja a böngészőt akkor már nem. Olyan kéne nekem ha a felhasználó rákattint a bezár gombra akkor felküldi az adatbázisnak az adatot.

Van ilyen?
Előre is köszönöm!
 
1

Van ilyen?

QXY · 2013. Júl. 12. (P), 02.22
röviden: Nincs.
hosszan: El lehet játszani az onbeforeunload()-al, de ez sem biztos módszer, mivel különféle böngészők különféle verziói vagy támogatják vagy nem.

(helyette: a 20 percet vedd vissza mondjuk 5 percre, mármint ennyi inaktivitás után tekintsd kijelentkezettnek)
2

Azt nem tudod meg, hogy

Joó Ádám · 2013. Júl. 12. (P), 02.25
Azt nem tudod meg, hogy bezárta-e a böngészőt, de az unload eseményből megtudod, hogy elhagyta az oldalt. Ha követed a megnyitott és bezárt oldalak számát, akkor az időkorlátnál pontosabban tippelheted meg, hogy kilépett.
3

köszönöm sokat segítettetek

kriszrap · 2013. Júl. 12. (P), 12.35
köszönöm sokat segítettetek :)
sessionnal is meglehet adni hogy meddig legyen aktív mint pl cookienél?
4

Kérdés

Hidvégi Gábor · 2013. Júl. 12. (P), 12.46
Gondolkoztál már azon, hogy igénybe veszed valamelyik keresőt vagy a php.net jó dokumentációját?
5

megkeresem:)

kriszrap · 2013. Júl. 12. (P), 12.48
megkeresem:)
6

Igen

Poetro · 2013. Júl. 12. (P), 12.48
Mivel a session egy süti igazából az esetek nagyon nagy százalékában. De mi lett volna, ha csak egy igen kicsit nyomozol a kérdésben. session_set_cookie_params
7

sikerült köszönöm :)

kriszrap · 2013. Júl. 12. (P), 16.38
sikerült köszönöm :)

szerk.:
hmm elakadtam. Amikor user idővel előbb bezárja a böngészőt és még úgy mond határon belül van akkor nem hajtódik végre az hogy az adatot felküldje az adatbázisnak.

Ajaxosan megtudtam oldani azt hogy ha be van töltve a honlap akkor ellenőrizze hogy van mozgás meg hogy túllépte a limitet vagy nem. Ha bezárja akkor már nem fut le a az ellenőrzés és így a az adatbázisnak se megy el az adat.

Ahogy Joó Ádám említette:
"Ha követed a megnyitott és bezárt oldalak számát, akkor az időkorlátnál pontosabban tippelheted meg, hogy kilépett"

Hogy tudnám azt ha honlapon nincs mozgás vagy is a user már nincs a honlapon akkor mondjuk a szerver kitölti azokat a mezőket a táblába aminek a limitje lejárt ?
Remélem érthetően írtam:)
8

Hogy tudnám azt ha honlapon

Joó Ádám · 2013. Júl. 12. (P), 16.43
Hogy tudnám azt ha honlapon nincs mozgás vagy is a user már nincs a honlapon akkor mondjuk a szerver kitölti azokat a mezőket a táblába aminek a limitje lejárt ? Remélem érthetően írtam:)


Nem igazán, de szerintem cronnal periodikusan szeretnél hívni egy szkriptet, ami figyeli az időt túllépett munkameneteket.
9

olyas mit szerintem :)mert

kriszrap · 2013. Júl. 13. (Szo), 00.21
olyas mit szerintem :)
mert pl felhasználó "mozog" a honlapon vagy is van böngésző újratöltés meg ha be van töltve a honlap (ajax) akkor a php időellenőrző lefut.
ez a kód fut le:

$result = mysql_query("SELECT  * FROM online WHERE nick='$nick' AND kijelentkezesiido ='' AND (INTERVAL 5 MINUTE + datum) < '".date("Y-m-d H:i:s")."' ");
$row = mysql_num_rows($result);
if($row == 1)
  {
   mysql_query("UPDATE online SET kijelentkezesiido=NOW() WHERE     nick='$nick' and kijelentkezesiido= '' ");
   unset($_SESSION['belepett']);
  }

de ha mondjuk 3 perce van bent 5 perc a limit és bezárja a böngészőt akkor már nem küld semmit se az adatbázisnak és így a "kijelentkezesiido" rész neki üresen marad.
remélem érthető:) (tudom nehézkesen magyarázok)

szerk.:
Volt már erről téma:)
http://weblabor.hu/forumok/temak/111338
Itt van amit szeretnék:)