Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Who is online?

[es] :: PHP :: Who is online?

Strane: 1 2

[ Pregleda: 5459 | Odgovora: 24 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

del-boy
Bojan Delić
Beograd

Član broj: 9330
Poruke: 1089

Sajt: www.delic.in.rs


+21 Profil

icon Who is online?02.07.2003. u 17:08 - pre 253 meseci
Kako da napravim sistem koji ce da proverava ko je online? Razmisljao sam da napravim posebnu tabelu u bazi u koji cu da stavim nick svakog novog clana ali onda ne znam kako da proverim da li je jos uvek aktivan.

Ako nisam krenuo dobrim putem, molim vas ispravite me...
 
Odgovor na temu

bluesman

Član broj: 4505
Poruke: 1895
*.152.EUnet.yu



+1 Profil

icon Re: Who is online?02.07.2003. u 17:39 - pre 253 meseci
Proveravaj vreme pristupa. Moras za svaku stranu koju je pogledao da mu upises vreme kada je bio, pa odredis neki interval od recimo 15 minuta i kazes "korisnici online u poslednjih 15 minuta: ...". Ujedno pri svakom upisu brises starije od 15 minuta iz tvoje temp tabele.

temp_tabela:
username (ili id)
timestamp

i samo citas i pises ta 2 polja.
Goran Pilipović fka bluesman
 
Odgovor na temu

stanoje
php+mysql coravljenje
Batajnica

Član broj: 602
Poruke: 56
*.korisnici.absolutok.com



Profil

icon Re: Who is online?02.07.2003. u 17:59 - pre 253 meseci
mozes i da uradis svoje mysql funkcije za sesije pa da jednim udarcem ubijes
dve muve(imas u php-manualu primer) - ako budes radio evo saveta
za

function write ($id, $sess_data)
koristi REPLACE fju MySQL-a mnogo je elegantnija nego kombinacija
SELECT insert i update

nije je koristio ni onaj lik na:

http://www.cheetah-soft.com/csh/

mada je u pitanju dobar custom session handler. pogledaj obavezno
Sima Kosmos iz dalekog svemira
 
Odgovor na temu

del-boy
Bojan Delić
Beograd

Član broj: 9330
Poruke: 1089

Sajt: www.delic.in.rs


+21 Profil

icon Re: Who is online?02.07.2003. u 18:38 - pre 253 meseci
Da, nisam se setio toga da svaki put proverim ko je "stariji" o 10 minuta...

Hvala...
 
Odgovor na temu

Zoran Rašković
Serbia

Član broj: 95
Poruke: 1360
*.tehnicom.net



+1 Profil

icon Re: Who is online?03.07.2003. u 04:34 - pre 253 meseci
Samo da dodam, ovo je moguce odraditi i za standradne sajtove, gde nema registrovanih korisnika. Npr. mozes da izlistas sve razlicite ip adrese sa kojih su pristupili korisnici na tvoj sajt u recimo, poslednjih 5 minuta.

A prebrojavanjem razlicitih ip adresa u poslednjih 5 min dobijas, naravno, broj online posetilaca :)
 
Odgovor na temu

del-boy
Bojan Delić
Beograd

Član broj: 9330
Poruke: 1089

Sajt: www.delic.in.rs


+21 Profil

icon Re: Who is online?03.07.2003. u 17:02 - pre 253 meseci
A kako to da uradim?

daj primer koda
 
Odgovor na temu

bluesman

Član broj: 4505
Poruke: 1895
*.107.EUnet.yu



+1 Profil

icon Re: Who is online?03.07.2003. u 17:36 - pre 253 meseci
Opet ja i IP :-) Koga jednom zmija ujede ...

IP adrese su nepouzdane kao identifikacija... ali u ovom slucaju ipak moze da posluzi jer ti ne treba toliko striktno a i nista se ruzno nece desiti ako i pogresno ispises broj online korisnika.

Samo umestu username, cuvas u temp tabeli IP adrese i vreme pa opet radis iste provere samo ne radis sa username nego sa ip. Kao dodatak bih ti preporucio da koristis ip2long () [ili kako se vec zove funkcija] jer ona konvertuje IP adresu (string) u long format, a samim tim je i komparacija brza.

Goran Pilipović fka bluesman
 
Odgovor na temu

del-boy
Bojan Delić
Beograd

Član broj: 9330
Poruke: 1089

Sajt: www.delic.in.rs


+21 Profil

icon Re: Who is online?03.07.2003. u 17:47 - pre 253 meseci
Razmisljao sam o tome, ali mislim da cu njih koristiti samo za neregistrovane korisnike, a za registrovane ne vidim razlog zasto ne bih koristio user_name...

I jos samo, ako moze neko da mi odgovori:
Kako da u kuki stavim vreme u obliku TIMESTAMP radi lakseg poredjenja?
 
Odgovor na temu

Vuk Nikolić
Vuk Nikolić
Banovo Brdo, Beograd

Član broj: 4895
Poruke: 244
*.beograd-3.tehnicom.net

ICQ: 42139643
Sajt: www.letva.org


Profil

icon Re: Who is online?04.07.2003. u 02:24 - pre 253 meseci
e ja sam to probao...ne mogu sad da se setim... probaj uz pomoc date naredbe... meni je radilo.


takodje sam u bazi napravio jednu tabelu gde se svaki "korisnik" upisuje prilikom posete as brise se svaki stariji od 5 minuta... za sad radi ok :D
 
Odgovor na temu

bluesman

Član broj: 4505
Poruke: 1895
*.28.EUnet.yu



+1 Profil

icon Re: Who is online?04.07.2003. u 13:07 - pre 253 meseci
Citat:
del-boy:
I jos samo, ako moze neko da mi odgovori:
Kako da u kuki stavim vreme u obliku TIMESTAMP radi lakseg poredjenja?


Ne zezaj, pa mozes da pises bilo sta. Kada pises u cookie pisi:
setcookie("timestamp", time(), "koliko ti traje cookie", "",getenv("HTTP_HOST"));

Ne znam sta je ovde problem?

Goran Pilipović fka bluesman
 
Odgovor na temu

del-boy
Bojan Delić
Beograd

Član broj: 9330
Poruke: 1089

Sajt: www.delic.in.rs


+21 Profil

icon Re: Who is online?04.07.2003. u 16:57 - pre 253 meseci
Nisam dobro objasnio...

Ja uglavnom u bazi koristim TIMESTAMP i duzina mu je 14. E sada funkcija time() vraca ceo broj sa 10 cifara pa nisam mogao da ih uporedim, a posto sam vec napravio bazu, mrzelo me da menjam pa sam mislio da u kuki mogu da stavim ceo broj od 14 cifara za vreme...

Shvatas?

Ali sada nema veze, promenio sam bazu i sve je OK.
 
Odgovor na temu

bluesman

Član broj: 4505
Poruke: 1895
*.249.EUnet.yu



+1 Profil

icon Re: Who is online?05.07.2003. u 16:51 - pre 253 meseci
Sada meni nije jasno? Timestamp je timestamp i bez obrzira da li je iz mysql ili php vraca uvek isti broj za isti datum. Ti mozes u mysql bazi da koristis obican INT UNSIGNED da bi cuvao timestamp polje jer je to upravo long int - sto dobijas i iz php. Sada sam i pogledao storage requirements u mysql i tamo lepo puse 4 bytes sto znaci long int unsigned, pa je i maksimalna vrednost timestamp upravo maksimalna vrednost koja moze da se upise u 4 bajta, pa je zato i timestamp ogranicen za merenje vremena do 2037 (ako se dobro secam)...
Zakljucak, ne mozes mi reci da iz mysql i php dobijas 2 razlicite vrednosti za timestamp!
Goran Pilipović fka bluesman
 
Odgovor na temu

del-boy
Bojan Delić
Beograd

Član broj: 9330
Poruke: 1089

Sajt: www.delic.in.rs


+21 Profil

icon Re: Who is online?05.07.2003. u 18:24 - pre 253 meseci
Ja ti nisam ni rekao da sam dobio razlicite vrednosti TIMESTAMPA u MySQLu i PHPu. Samo probaj da napravis u MySQL u nekoj tabeli polje TIMESTAMP i daj mu duzinu 14 i jos jedno sa duzinom 10. On ti vrati razlicite brojeve iako je to isto vreme. Ne znam zasto to...

Kada te brojeve izvlacis iz baze funkcijom date_format vrati istu vrednost tako da nema razlike.

Ako gresim, ispravi me, jer nisam ni ja siguran u ono sto pricam . Samo iznosim svoje zakljucke...

Pozdrav
 
Odgovor na temu

tOwk
Danilo Šegan
Zemun/Beograd

Član broj: 94
Poruke: 2743
*.beograd-3.tehnicom.net

ICQ: 9344053
Sajt: alas.matf.bg.ac.yu/~mm011..


+2 Profil

icon Re: Who is online?05.07.2003. u 18:43 - pre 253 meseci
U MySQL-u polje TIMESTAMP se ne beleži u „Unix timestamp“ fazonu.

Unix timestamp je jedan neoznačeni ceo broj u 32 bita (kako bluesman već reče), i označava broj sekundi od 1. januara 1970. godine (takozvana „Unix epoha“).

MySQL beleži TIMESTAMP kao „GGGGMMDDČČMMSS“, pa je zato potrebno 14 mesta. Da bi obavio pretvaranje između dva zapisa, moraš da poznaješ osobine kalendara u kom se zapisuje datum u MySQL TIMESTAMP-u (Gregorijanski), ali najverovatnije i neka od funkcija u PHP-u nudi pretvaranje između datuma i Unix timestamp-a.

Možda se moje mišljenje promenilo, ali ne i činjenica da sam u pravu.
 
Odgovor na temu

del-boy
Bojan Delić
Beograd

Član broj: 9330
Poruke: 1089

Sajt: www.delic.in.rs


+21 Profil

icon Re: Who is online?05.07.2003. u 18:55 - pre 253 meseci
Da i ja mislim da je tako samo nisam znao da to lepo objasnim.

E sada ono sto me je zbunilo je to da MySQL prihvata TIMESTAMP i sa 10 znakova i vraca vrednosti normalo kao i sa 14.

Kako to?
 
Odgovor na temu

tOwk
Danilo Šegan
Zemun/Beograd

Član broj: 94
Poruke: 2743
*.beograd-3.tehnicom.net

ICQ: 9344053
Sajt: alas.matf.bg.ac.yu/~mm011..


+2 Profil

icon Re: Who is online?05.07.2003. u 19:17 - pre 253 meseci
MySQL u tom slučaju posmatra nenavedeno kao 0. Npr. ako navedeš samo 20030704, sat, minut i sekunde će biti 0. Ako navedeš 10 cifara, onda će samo minuti i sekunde biti 0. Takođe, ako za npr. mesec navedeš 14, onda će se dodati 1 na godinu, i mesec će biti 2=14-12.

Možda se moje mišljenje promenilo, ali ne i činjenica da sam u pravu.
 
Odgovor na temu

CONFIQ
♫♪♥♪♫

Član broj: 4218
Poruke: 1994
*.red.bezeqint.net

ICQ: 82327428


+10 Profil

icon Re: Who is online?05.07.2003. u 19:18 - pre 253 meseci
Zato što si očigledno napravio tabelu sa TIMESTAMP(14).

i da ubaciš samo jedan znak vratiće ti 14 ili ako ne ubaciš nijedan znak vratiće ti 14 :Đ (odnosno mysql automatski stavlja TIMESTAMP sa servera ako nisi naveo u INSERT-u)

Pogledaj ovde za više informacija.

~Say FiQ
 
Odgovor na temu

del-boy
Bojan Delić
Beograd

Član broj: 9330
Poruke: 1089

Sajt: www.delic.in.rs


+21 Profil

icon Re: Who is online?05.07.2003. u 19:32 - pre 253 meseci
Da, znam da je dovoljno da samo unesem NULL u TIMESTAMP polje i on sam stavlja vrednost.

Nego mene zanima kako TIMESTAMP iz MySQLa mogu da pretvorim u broj sekundi Unix epohe. Treba mi da bih uporedio sa kukijem...

Imam par funkcija koje nesto muljaju sa kalendarom, pretvaraju ga iz jednog u drugi, a ja ne znam koju od njih treba koristiti.
 
Odgovor na temu

popeye
Branko Ivanović
Beograd

Član broj: 3846
Poruke: 960
195.66.190.*

Jabber: popeye@elitesecurity.org
ICQ: 18038966
Sajt: popeye.linuxo.org


Profil

icon Re: Who is online?06.07.2003. u 03:15 - pre 253 meseci
Probaj ovo:

function mysql_timestamp_to_timestamp($dt) {
$yr=strval(substr($dt,0,4));
$mo=strval(substr($dt,4,2));
$da=strval(substr($dt,6,2));
$hr=strval(substr($dt,8,2));
$mi=strval(substr($dt,10,2));
$se=strval(substr($dt,10,2));

return mktime($hr,$mi,$se,$mo,$da,$yr);
}
 
Odgovor na temu

-zombie-
Tomica Jovanovic
freelance programmer
ni.ac.yu

Član broj: 4128
Poruke: 3448
*.dial.InfoSky.Net

Sajt: localhost


+5 Profil

icon Re: Who is online?06.07.2003. u 03:25 - pre 253 meseci
najbolje da direktno mysql pitaš da konvertuje..

Code:

SELECT UNIX_TIMESTAMP(timestamp_kolona), * FROM tabela...


 
Odgovor na temu

[es] :: PHP :: Who is online?

Strane: 1 2

[ Pregleda: 5459 | Odgovora: 24 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.