ugrás a tartalomhoz

Online felhasználók kijelzése

laczkoman · 2006. Jún. 23. (P), 05.25
Helló

Az oldalamon szeretném kijeleztetni a kapcsolódott felhasználokat.
Ezt hogyan tudom megtenni?
Milyen scriptet kell letöltenem hozzá vagy mit hová kell beírnom?
Köszi
 
1

Már volt

Bártházi András · 2006. Jún. 23. (P), 05.44
http://weblabor.hu/forumok/temak/1898
http://weblabor.hu/forumok/temak/7707
(és ezeken kívül, többször is)
2

Aha

laczkoman · 2006. Jún. 23. (P), 06.23
Köszi
De ettől nem lettem okosabb
3

Igen

Bártházi András · 2006. Jún. 23. (P), 06.31
Erre mit mondjak? A 1898-as témában szépen leírtam a megoldást, alatta pedig ott van egy kész program belinkelve. Ha ezektől nem leszel okosabb... Mindenesetre akkor írd le, hogy pontosan melyik részt nem érted, hátha úgy tudunk segíteni.
4

Tudnod kell: mi az hogy állapotmentes a HTTP

Jano · 2006. Jún. 23. (P), 10.32
A feladat megoldásához tudnod, kell a HTTP protokoll egyik fő jellegzetességéről: az állapotmentességről (stateless). Ez azt jelenti, hogy a szerver számára minden egyes kérés teljesen függwetlen és nem tudja, hogy az adott kliensnek már szolgált-e ki adatot, nem tudja, hogy mit szolgált ki neki és azt se tudja, hogy valaki a te oldaladat meddig nézi. Mert: Amikor a kliens elkéri az adott oldalt, a szerver azt összeállítja, elküldi és ezzel a kettejük kommunikációja megszünik! A szervernek innentől fogalma sincs arról, hogy a felhasználó mit csinál a lapon, mennyi ideig nézi, vagy már nem is nézi mert kikapcsolta a gépet vagy elment másik oldalra.

Ennek a jellegzetességnek a kiküszöbölésére találtál ki a fejlesztők a munkamenete vagy másnéven session kezelést. Ennek lényege, hogy amikor a szerver első esetben kiszolgálja a lapot akkor átad egy azonosítót is a kliensnek (cookiban, url-ben stb). Az azonosítot pedig maga is eltárolja a szerveren és minden olyan adatot ehhez az azonosítóhóz köt amit az adott klienssel kapcsolatban meg akar jegyezni. Pl, hogy be van-e lépve. Amikor a kliens újtra lekér egy lapot akkor a kéréssel együtt visszaküldi az azonósítját is, hogy a szerver tudja, hogy ki ő.

Az első probléma, hogy vannak olyan gépek amiket többen használnak. Ebben az esetben ha az első felhasználó után leül a második felhasználó és ő is ugyanazt az oldalt kéri le, akkor a böngésző ugyanúgy el fogja küldeni a kapott azonósitót és a szerver azt fogja hinni, hogy ugyanaz a felhasználó kéri le a lapot.

Második probléma amit már említettem, hogy ebben az esetben is megszakad minden egyes oldal kiküldés között a további kommunikáció és a böngésző nem fogja értesíteni a szervert, hogy már nem nézik azt az oldalt. Így nem fogod tudni, hogy az 5 perce még oldalt lekérő emberke most azt olvassa vagy már elment reggelizni. (Természetesen ha van kilépés gomb és a felhasználó, azt használja akkor róla lehet tudni, hogy kilépett.)

A fentiek megoldására azt szokták csinálni, hogy a belépettségi információ mellé eltárolják, hogy mikor volt az utolsó oldal lekérése és ha ez x időnél régebben akkor azt mondják, hogy ez már nem érvényes és lépjen be újra.
5

A baj az hogy......

laczkoman · 2006. Jún. 23. (P), 21.58
A baj az hogy: bármelyik gépen bármelyik felhasználó néven lépek be az oldalra
csak azt az egy nevet hajlandó kijelezni.Mi lehet a baj?
6

az a baj hogy valamit nem jól csinálsz :)

Anonymous · 2006. Jún. 23. (P), 22.58
Próbáld meg a legalapvetőbb módszert. Csinálj egy külön adattáblát a belépett felhasználóknak. Teljesen mind1 (jelen esetben) hogy a nevükön kívül mit tárolsz még el a lényeg hogy az összes éppen aktuálisan bent lévő emberke neve benne lesz egy külön táblában. Ezek után már nincs más dolgod mint lekérdezni ebből a táblából a nevek oszlopban lévő sorokat. Ha az insert valamint a select jó semmiképp sem fog előfordulni hogy csak 1 nevet ír ki. Itt jön majd be a megfelelő kiléptetés. Ugyanis ha valaki elfelejt kilépni és ujra be szeretne lépni akkor ugyanazt a nevet nem fogja hozzáadni az adatbázishoz... ilyen esetben én a név melletti belépési időt update-elem, aztán ezzel megoldható az inaktív felhasználók kipakolása stb... Remélem segítettem
7

A baj az hogy......

laczkoman · 2006. Jún. 24. (Szo), 08.31
Ezt az egészet most tanulgatom és nincs a környezetemben olyan emberke akitöl kérdezni tudnék.Ugyhogy titeket kérlek meg rá hogy részletesebben irjátok le a dolgokat.Van egy olyan tábla hogy users.Ez tartalmazza az összes regisztrált felhasználót.Innen hogy tudom lekérni az éppen kapcsolódott neveket? Mit hová kell ehhez beírnom?
8

A baj inkább az, hogy....

TeeCee · 2006. Jún. 24. (Szo), 08.43
nem olvasod el, és/vagy nem értelmezed, amiket írnak Neked.
Az előbb mondták el ismételeten, hogy Neked kell figyelni, ki kapcsolódott (jelentkezett be) nem a PHP fogja Neked figyelni, mert ezt nem tudja magától megtenni.
(Elolvastad egyáltalán #1-et? mert az egyik linkben volt kód is...)
9

Alap PHP és (My)SQL leckét keress

Jano · 2006. Jún. 24. (Szo), 11.18
A kérdéseid alapján nekem úgy tünik letöltöttél valamilyen kész kódot és azt akarod tovább variálni és még soha nem is írtál SQL utasítást. Keress egy alap PHP és SQL leckét és kezdd ott.
10

Kerestem

laczkoman · 2006. Jún. 24. (Szo), 11.45
Ez igy van.
Hiába nyálaztam át egy rakás könyvet,leírást erre nem jöttem rá.Majdnem egy hónapja foglalkoztat a dolog(pedig elég aktiv vagyok az ügyben)és mégsem.
Pl.egy torrent oldalon hogy tudják ugyanezt megoldani?Nem hiszem hogy a moderator egyesével beirkálja az éppen kapcsolódott emberkéket.
11

Ha nem megy...

janoszen · 2006. Jún. 24. (Szo), 12.09
Üdv!

Ha nem megy, akkor tanulni kell, hogy menjen. A dolog közös erőforrás használatával (pl adatbázs) oldható meg, de ha nincs elég tudásod, hogy megoldd, akkor kénytelen leszel megtanulni, úgyhogy irány egy-két PHP könyv. Kezdd el az elejétől tanulni és valamikor meg is fogod tudni csinálni. Nem lehet csak úgy átugrani leckéket.

Én is akarhatok építeni felhőkarcolót, de ha nem valami égbőlpottyant tehetség vagyok, valszeg előképzettség nélkül nem fog menni.

Üdv

J
12

De megy.....

laczkoman · 2006. Jún. 24. (Szo), 13.01
Csak ezzel az eggyel nem boldogulok.
Leirná valaki hogy megy ez,ahelyett hogy a sablon szöveget nyomná?
Ha egyszer nem jövök rá magamtól,akkor én most hülye vagyok?
Irjátok le ugy hogy megértsem és legközelebb fogom tudni.
Nekem ne mondja senki hogy mindenki autoditakta módon tanulta meg.
16

HTTP

janoszen · 2006. Jún. 24. (Szo), 19.08
Figyelj, ha belegondolsz, itt a különböző felhasználók közötti kommunikációról van szó. A szerver és a kliens között van egy kapcsolat. Azonban ha nem tárolod ennek a kapcsolatnak a létezését, akkor egy másik kapcsolatban honnan tudod, hogy létezik? Sehonnan.

Ergo, mit csinálsz, eltárolod a kapcsolat létezésének a tényét. Ezt pl lehet úgy, hogy a munkamenetkezelést adatbázis-alapokra helyezed és megszámolod az aktív munkameneteket egy COUNT(*) lekéréssel.

Ebből már meg kellene tudnod csinálni "autodidakta módon", mert megvan minden, ami kell hozzá: munkamenet, adatbázis.

Üdv

J
13

sablon szöveg?

Anonymous · 2006. Jún. 24. (Szo), 13.40
szerintem már több megoldást is kaptál, valamit a legelső hozzászólásnál még linket is korbbi hasonló támamegoldásról. Többen is leírták neked mit kéne csinálnod. Én nem hiszem hogy mindennel boldogulnál ha ezt nem tudod megcsinálni, mert ahogy előttem többen is írták egy kis PHP és MYSQL alapismeretekkel azt meg lehetne oldani. Most mit vársz hogy helyetted írják meg itt a komplett kódot??? Azt általában pénzért szokták munkahelyeken remélem érted. Inkább keress egy online forrást vagy 1-2 könyvet és ülj neki szépen. Egyébként nem értem mivel van problémád az adatok betételével egy SQL-táblába vagy a kiolvasásukkal? Amikor frissíted F5-el az oldalad vagy amikor belépsz mindíg az aktuálisan bent lévő embereket fogja mutatni ha csinálsz 1 külön adattáblát és abba tárolod a belépett emberkék adatait(nevüket) majd ezt lekérdezed. Ez így nem jó megoldás? Nem gondolja senki hogy hülye lennél csak ugy látszik nem foglalkoztál még eleget vagy nem látod át még ezt az egészet hogy mi hogyan működik.
14

Az

laczkoman · 2006. Jún. 24. (Szo), 18.29
A kiolvasással vannak gondjaim
15

Segítséghez

Jano · 2006. Jún. 24. (Szo), 18.59
1. Add meg az adott tábla/táblál leírását
2. Fogalmazd meg, hogy mit szeretnél belőle kiolvasni.
3. Írd le, hogyan próbáltad.
17

ha elmondod

TeeCee · 2006. Jún. 24. (Szo), 19.10
Hali!

Mivel eddig CSAK azt mondogattad, hogy nem tudod, meg hogy segítsünk már, ezért nem csodálkozom, hogy mindenki (én is) a második help után félrerakja a jószándékát.
HA elolvasod a Weblaboron a levlistákra vonatkozó illemszabályokat, akkor találsz benne egy részt, ami arra tér ki, hog yhogy kell okosan kérdezni.
NOS: ha elolvasod és ezekután elmondod, hogy próbáltad "kiolvasni" (és mit és hogyan írtál bele - hova?) akkor tutira segítek, megígérem...
(ilyen alap kérdéseknél az RTFM és a megfelelő PHPmanual rész - jelen esetben mondjuk a MySQL kiolvasás - gyakran szokott elhangozni, ha tényleg érdekel a dolog és foglalkozol is vele, akkor hamar megszokod hogyan lehet ezáltal autodidakta módon tanulni.)
18

ha kiolvasással van gondod

Anonymous · 2006. Jún. 24. (Szo), 20.05
itt 1 lehetséges változata az adatok kiolvasásának illetve kiírásának:
SQL-hez kapcsolódsz és kijelölöd az adatbázis nevét gondolom ez megy. aztán

<?php
print "Akik pillanatnyilag bevannak jelentkezve: ";
$lekerdez=mysql_query("SELECT nev FROM aktualis");
while($bentlevok=mysql_fetch_row($lekerdez))
{ 
foreach ($bentlevok as $bent_levok)
print "$bent_levok; ";
}
?>
ahol a Select-ben lévő nev az SQL tábládban a nevekre vonatkozó oszlop az aktualis pedíg az adattáblád neve amiben az egész tárolva van. A legvégén a neveket a $bent_levok változóval éred el, így az összes táblában lévő nevet meg fogod kapni.
19

Igen

laczkoman · 2006. Jún. 24. (Szo), 20.39
Ez már egy értékesebb válasz.
Köszönöm
Ebböl legalább tudom hogy mit merre