Kako napraviti listu ulogovani korisnika

Pozdrav,

Dali mi neko može reći kako da napravim listu ulogovani korisnika?

Dal da u mysql napravim u tablici korisnici stupac

  `ulogovan` tinyint(1) NOT NULL default '0'

i sad kad se korisnik prijavljuje na sajt da mu ulogovan bude 1, a kad se izloguje 0

i da na stranici gdje želim da mi prikazuje koji su korisnici online pozivam samo korisnike koje imaju ulogovan 1.

Ili dali postoji koje drugo riješenje da mogu napraviti kako sa session?

Hvala na pomoći!

Za to se obično koriste sessioni. Ako koristiš neki CMS onda obično postoji session tabela u bazi koju možeš koristiti za to. O čemu se radi točno?

[quote=“susok”]Pozdrav,

Dali mi neko može reći kako da napravim listu ulogovani korisnika?

Dal da u mysql napravim u tablici korisnici stupac

  `ulogovan` tinyint(1) NOT NULL default '0'

i sad kad se korisnik prijavljuje na sajt da mu ulogovan bude 1, a kad se izloguje 0

i da na stranici gdje želim da mi prikazuje koji su korisnici online pozivam samo korisnike koje imaju ulogovan 1.

Ili dali postoji koje drugo riješenje da mogu napraviti kako sa session?

Hvala na pomoći![/quote]

upravo tako, session ti baš neće tu puno pomoći, jedino preko njega da pratiš korisnikove akcije po siteu i da spremiš u session da se ulogirao, ali nikako da pratiš ko je sve ulogiran. A na stranici gdje želiš rezultate pozoveš query “SELECT COUNT(*) FROM korisnici WHERE ulogovan = 1”

i to će ti vratiti broj ulogiranih korisnika.

Poštovanje.

Ili jednostavno dodaš kolumnu zadnja_aktivnost u tablici članovi i samo poredaš. Korisnici kojima je zadnja_aktivnost + određeno vrijeme (AFK su možda, ali su online) manja od trenutnog vremena su offline, a ostali online.

Lakše mu je radit s bitovima nego s vremenom plus toga što kod tvoga načina na svaki kilk korisnika ili neku njegovu drugu aktivnost on se mora spajati na bazu da bi updateo redak u tablici. to možda, ali samo možda, može proći kod stranica koje nisu opterećene prometom, alo kod stranica koje imaju veći promet to je skup i nepotreban poziv baze. Plus odaje loše dizajniranu aplikaciju.

To je dobro i ispravno rjesenje. :cool:

(uz dodatak da se ta kolona obavezno index-ira)

[quote=“ivan.skugor”]To je dobro i ispravno rjesenje. :cool:

(uz dodatak da se ta kolona obavezno index-ira)[/quote]

Naravno da nije. Pozivi prema bazi su skupi. Nemoj dovoditi ljude u zabludu.

Njie to asp.net da u global.asax datoteci pukneš na session_end event da updatea taj bit na false…
Mislim da bez nekog plugina za php (ako i njim) to ne bi išlo i da je ovo zadnja aktivnost ispravna opcija…

[quote=“Kečko”]Njie to asp.net da u global.asax datoteci pukneš na session_end event da updatea taj bit na false…
Mislim da bez nekog plugina za php (ako i njim) to ne bi išlo i da je ovo zadnja aktivnost ispravna opcija…[/quote]

Naravno da se može.
http://www.php.net/manual/en/function.session-set-save-handler.php

Kao što vidiš da se napraviti lijepi custom session handler. Jest da u početku treba mylo zezancije ali kad se složi radi bezprijekorno. Sviđa mi se ovaj session_gc, garbage collector.

P.S. Kad smo već kod toga zašto mu onda ne savjetujete i spremanje svih session podataka u bazu. I ot isto nije loše. Ali napominjem opet da takav način ima to many hits na database engine. Za stranice koje imaju relativno mali broj posjetitelja to možda nije problem, ali za stranice s većim brojem posjetitelja je to itekakav problem.

Kako je to riješeno u kvalitetnijim forumima, npr. vBulletin-u?
Vidim da u footeru ima popis aktivnih članova.

Nisu svi pozivi skupi, niti se aplikacija treba optimizirati bez obzira na to da li je konkretan upit izvor sporosti ili nije (a ovaj sigurno nece biti, narocito ako se koristi trajna konekcija sa bazom), odnosno opcenito da li ce aplikacija biti spora ili ne. I btw, tvoje spomenuto rjesenje ne radi u svim situacijama, al nema veze, glavno da ti sve znas. :zub:

Adio.

[quote=“ivan.skugor”]Nisu svi pozivi skupi, niti se aplikacija treba optimizirati bez obzira na to da li je konkretan upit izvor sporosti ili nije (a ovaj sigurno nece biti, narocito ako se koristi trajna konekcija sa bazom), odnosno opcenito da li ce aplikacija biti spora ili ne. I btw, tvoje spomenuto rjesenje ne radi u svim situacijama, al nema veze, glavno da ti sve znas. :zub:

Adio.[/quote]

Boldani dio govori o tvojoj stručnosti i tvom znanju barem što se ovog dijela tiče. Predlažem da se i dalje držiš dizajna. Kao što vidiš ni ja se ne petljam u dizajn, jer nisam dizajner i nemam dovoljna znanja iako redovtio pratim blogove i čitam knjige vezane uz tu tematiku, tako i ti ostavi se savjetovanja, barem onih krivih. Vidim da ti je strano i to da je danas optimizacija web aplikacija sve veći biznis.

Što se mog znanja tiče možemo se slobodno susresti negdje na kavi.

S tobom je ovdje za mene EOD.

Evo vako sam odlucijo da napravim:

u tablici korisnici dodo sam stupac:

`ulogovan` tinyint(1) NOT NULL default '0'

i sad kad se korisnik uloguje ‘ulogovan’ bude 1.

E sad je problem kako da napravim kad korisnik ode sa mog sajta, a neklikne na stranicu logout kako da ulogovan stavim u 0.

Kad se korisnik uloguje na stranicu u session mu se spremi njegov id, e sad dali kad korisnik napusti stranicu dali se iz session briše odmah njegov id, ili mora proći neko odredjeno vrijeme da se id izbrise?

Hvala na pomoći!

[quote=“CreatifCode”]
Što se mog znanja tiče možemo se slobodno susresti negdje na kavi.[/quote]

Zao mi je, ne drzim poduke. :cool:

Molio bi te da se mojih postova u buduce klonis. Hvala.

Iz session-a da (nakon vremena definiranog u php.ini datoteci), iz baze ne.

^ Knuth, Donald. Structured Programming with go to Statements, ACM Journal Computing Surveys, Vol 6, No. 4, Dec. 1974. p.268

Čekaj ti se referiraš na knjigu iz '74. Nemoj mi reći da si ozbiljan. Molim te nemoj.

E moj majstore jadni naši programeri i fakulteti ako vas ovako uče.

Pitanje je dali ne držiš ili ne primaš poduke, s obzirom na dosad pročitano od tebe mnijem da su ti poduke prijeko potrebne.

U slučaju da budeš imao kvalitetnu poruku u svakom slučaju hoću, ali kad budeš navodio korisnike foruma na krivu stvar u svakom slučaju ću reagirati. Molim

[quote=“susok”]Evo vako sam odlucijo da napravim:

u tablici korisnici dodo sam stupac:

`ulogovan` tinyint(1) NOT NULL default '0'

i sad kad se korisnik uloguje ‘ulogovan’ bude 1.

E sad je problem kako da napravim kad korisnik ode sa mog sajta, a neklikne na stranicu logout kako da ulogovan stavim u 0.

Kad se korisnik uloguje na stranicu u session mu se spremi njegov id, e sad dali kad korisnik napusti stranicu dali se iz session briše odmah njegov id, ili mora proći neko odredjeno vrijeme da se id izbrise?

Hvala na pomoći![/quote]

Naravno da se može pročitaj si ovu stranicu, bit će ti mnoge stvari jasnije.

http://www.php.net/manual/en/function.session-set-save-handler.php

Potpuno se slažem sa škugorom, CC ponašaš se ko da nisi ni u jednoj firmi radio… Optimizacija se radi na kraju kad je sve gotovo, I TO u slučaju da nešto šteka, a prije ikakve optimizacije će se (u većini slučajeva) nabaviti i jača mašina, programeri su skuplji nego hardware i često je optimizacija skuplja od hardwarea, pogotovo nema smisla raditi optimizacija odmah, nego tek na kraju, na početku je najvažnije aplikaciju što prije završiti.

ovo je odlicno rjesenje… plus indexiranje sta je spomenija skugor

[quote=“ivan.skugor”]To je dobro i ispravno rjesenje. :cool:

(uz dodatak da se ta kolona obavezno index-ira)[/quote]Upravo tako. Primera radi i video sam razne forume koji koriste taj sistem i radi besprekorno iako ima preko 5000 ljudi online u istom trenutku.

zadnja_aktivnost update-uješ na x minuta.
-Kada se korisnik uloguje “upišeš” u sesiju zadnja_aktivnost i na svakih X minuta update-uješ bazu.
-Ako je korisnik offline on naravno neće update-ovati “zadnju_aktivnost”.
-Iz baze praviš upit (kao što je već spomenuto) zadnja_aktivnost + određeno vrijeme manja od trenutnog vremena su offline, a ostali online.

Upit vršiš sa SELECT COUNT(id) FROM korisnici WHERE zadnja_aktivnost>=(trenutno vreme - trajanje online sesije) LIMIT 1


Copyright © 2020 WM Forum - AboutContact - Sponsored by: Mydataknox & Webmaster.Ninja