ugrás a tartalomhoz

"whois online" session-ből mysql-be

Anonymous · 2005. Jún. 20. (H), 22.44
Üdv!

Nem találtam a keresőn sem ilyesmi témát, de azért bocs, ha már volt.

Szóval ezzel a session dologgal elég sok kérdésem volna, de mindegy. Épp ezért írok nektek.
Tehát azt szeretném, ha elmentené az oldalt épp néző IP-jét (vagy bármi másét ahonnan azonosítani lehet), és - pl. session használatával - elmentené azt egy adatbázisba, de ha nem nézi tovább az oldalt, kitörli azt. (Konkrétan arra kéne, hogy milyen regisztrált felhasználók vannak online, de mindenképp szeretném, ha elmentené egy adatbázisba.)

Szóval ha tudtok ajánlani egy scriptet, azt mélységesen megköszönném.

FGK
 
1

1) Javascripttel sztem meg

tiny · 2005. Jún. 20. (H), 22.51
1) Javascripttel sztem meg lehet csinálni, ha bezárja a felhasználó a lapot, akkor kijelentkezzen
2) Rövid idejű cookie-kat beállítani mindig a frissítéskor
3) Aki inaktív x ideig, azt úgy veszed mintha ott sem lenne
4) Ezek összegyúrva

Nekem ennyi ötletem van így hirtelen.
Mr.Tiny
2

Hát...

Anonymous · 2005. Jún. 20. (H), 23.07
Kicsit gagyinak hangzik... És tényleg mindenképp el szeretném menteni egy MySQL adatbázisba!
De azért köszi. Más?

FGK
7

Jólvanna :)

tiny · 2005. Jún. 21. (K), 10.06
11-kor kicsit álmos voltam, de a segítő szándék bennem volt :).
Mr.Tiny
3

Korábbi fórum témák

Poetro · 2005. Jún. 21. (K), 09.27
http://weblabor.hu/forumok/temak/1898
http://weblabor.hu/forumok/temak/7399
http://weblabor.hu/forumok/temak/1898
--------
Poetro
5

Az első meg az utolsó

tiny · 2005. Jún. 21. (K), 09.59
Az első meg az utolsó ugyan az :)
Mr.Tiny
8

Igen, az első és az

Anonymous · 2005. Jún. 21. (K), 10.48
Igen, az első és az utolsó ugyanaz.
Nem lehetne úgy megoldani, hogy nem kell timeout, hanem csak egyszerűen törli, ha már nem nézik (tehát valós időben kezeli)?

FGK
10

[quote]ha már nem

tiny · 2005. Jún. 21. (K), 11.00
ha már nem nézik

No itt van a baj. Ha elolvastad a cikkeket, amit írt Gergely, akkor láthattad, hogy a kliens (böngésző) és a webszerver között a kommunikáció megszakad, amikor te megkapod a kért weblapot, s éppen ezért ha te csak olvasol egy lapot pl 5 percig, vagy már bezártad 5 perce az a szervernek teljesen mindegy.

Meg lehet oldani, hogy megtudd, be van-e zárva a lap vagy még nézegeti. Ami így hirtelen eszembe jut, az egy rejtett iframe, amiben frissítgeted a lapot, így a felhasználót nem zavarja (csak egy kis sávszél), te meg folyamatosan kapod a kéréseket, így tudod mikor zárja be a lapot, így az időlimitet be tudod pontosan állítani.

Valós időben, ahogy írtad szerintem ez az egyetlen megoldás, amit lehet többféleképpen variálni. Az, hogy amikor újra meglátogat az x sess_id-jű felhasználó, s akkor ellenőrzöd, hogy ő-e a jogos tulajdonosa, meg ami akarsz, az a legjobb megoldás és kevésbé erőforrásigényes is.

Remélem jól értettem mit akarsz mondani :)
Mr.Tiny
11

Ez jó

FGK · 2005. Jún. 21. (K), 11.08
(Regisztráltam)
Aha, köszi, ez jó ötletnek hangzik, de törtem-törtem a fejem és nem jöttem rá, mi lenne a helyes kód abba az iframe-be...
Tehát az iframe src-éba írjam az URL-hez a sessiont és pl. 5 mp-enként töltse újra az oldalt, az időkorlát pedig mondjuk 6 mp. legyen? Ez nem rossz ötlet, de a gyakorlatban működni fog?

FGK
12

Így elgondolkodtam, az

tiny · 2005. Jún. 21. (K), 11.26
Így elgondolkodtam, az iframe-ben lévő kód nem is gond, inkább a szerver része. Az iframe-be ennyit kell tenni:

<head>
<meta http-equiv="refresh" content="5;url=http://weblapod.hu/valami.php?$sessid='sess-id-je'">
<!-- itt a content az 5 mp-et jelenti, remélem nem számad mp-et :)-->
</head>
<body>
</body>
Ilyenkor szerintem elfogadható a GET típusú átadás, mert így a legegyszerűbb, és a címsorban közvetlenül nem jelenik meg.

A szerver oldal kicsit nehézkesebb. Ott el kell mindig tárolnod (felülírni) az időpontot, amikor kapsz egy sess_idt, s majd amikor a felhasználó legközelebb megy az oldaladra akkor tudsz csak ezzel kezdeni valamit. Ezért jobb megoldás a másik. Van lehetőség időzített scriptekre, de az már túlbonyolítása az egésznek. Meg így is szerintem. Ha már valós időben szeretnéd, akkor a js a legjobb megoldás, ott viszont ott van a dolog, hogy mi van h ale van tiltva.

Egyébként a valós idővel csak azt szeretnéd megtudni, hogy pontosan mikor hagyta el az oldalt, vagy amikor elhagyja, akkor azonnal törölni is szeretnéd a sess_id-jét?
Mr.Tiny
13

Az adatbázisból szeretném

FGK · 2005. Jún. 21. (K), 11.58
Az adatbázisból szeretném törölni, vagy inkább megváltoztatni az illető sorban vmit, hogy ne számolja bele, viszont tudjam mikor hagyta el az oldalt...
JavaScript-tel te ezt hogy oldanád meg?! Az nem probléma, ha le van tiltva, ki lehet szűrni (pl. nem enged úgy belépni).
Az rejtett frame-es megoldáshoz viszont most jövök rá, hogy nem is kell session meg ilyesmi... elég ha generálok egy számsort, azt elmentem meg az IP-t, és kész, nem? Viszont IE-vel kattog minden újratöltésnél...
Amúgy hányféleképp lehet az IP-t lekérdezni? Az Ultraweben próbálkoztam, de nem működött. :(

FGK
14

JS az cink

tiny · 2005. Jún. 21. (K), 13.05
Nem olyan jó a js megoldás, mert popup szűrheti. Én úgy oldanám meg, hogy csinálnék egy popup.php-t, amiben meghívnék egy függvényt, ami törli a sess_id-t, vagy kijelentkezteti. Ezt pedig meghívnám amikor az illető bezárja az oldalt. A popup.php kimenete ez lenne:
<script language="js">window.close()</script>
asszem ez így jó, de nem tuti. És ha elég gyors a dolog, akkor a felhasználót nem is zavarja, bár még ilyet nem próbáltam.
OFF: Nálam működik az IP-s a HTTP_X_FORWARDED_FOR-nál, mert routerem van...
Azzal, hogy nem engeded belépni, azzal még nem éred el, hogy legyen js-je, mert vannak olyanok, akiknek pl a böngészője nem támogatja. Régi cucc, vakoknak külön böngésző, stb. Bár ezek mind kezdik támogatni, de biztos lesz ilyen látogató és őt nem kéne kizárni az oldalról.
elég ha generálok egy számsort

Inkább sess_id. Azt is irányíthatod te, hogy mi legyen, de ha ennyire zavar, akkor tedd azt. Egyébként ne véletlen számokkal csináld csak, mert akkor lehet ugyanaz is. Erről olvashatsz a H.Gergely által belinkelt 2. cikkben
Mr.Tiny
4

munkamanet kezelés

Hodicska Gergely · 2005. Jún. 21. (K), 09.45
Szia!


A fenti témában jelent meg nálunk is két cikk. Az első célja az alapok tisztázása, a másodikban ismertetett megoldás alapján pedig könnyedén meg tudod csinálni, amit szeretnél.

UPDATE: Köszi, a linkek javítva.


Felhő
6

Rossz linkek

tiny · 2005. Jún. 21. (K), 10.04
Mivel nem fogadsz maileket, ezért ide kell írnom. Szerintem a http lemaradt.
Helyes linkek:
http://weblabor.hu/cikkek/munkamenetkezeles1
http://weblabor.hu/cikkek/munkamenetkezeles2
Mr.Tiny
9

Hát, nekem így is

Anonymous · 2005. Jún. 21. (K), 10.49
Hát, nekem így is bonyolult a dolog... Mire jó pl. hogy a $_SESSION egy tömb?! Mit tartalmaz?

FGK
15

Tolass vissza

PiG · 2005. Jún. 21. (K), 13.31
Szerintem tolass vissza egy kicsit ide: http://hu2.php.net/manual/en/ref.session.php , mert úgy látszikj a nagy sietségben ezt kihagytad!

P][G
16

Nem, nem felejtettem ki, de

FGK · 2005. Jún. 21. (K), 20.09
Nem, nem felejtettem ki, de nem lettem tőle okosabb... PHP-vel már 1 éve foglalkozom, de ez soha nem fért a fejembe...

FGK