Cât de mulți oameni sunt online


Probabil multi dintre voi au văzut o piesă la modă ca „Cine este site-ul de 126 de persoane, inclusiv 89 în chat-ul.“ Dacă nu, a pus un contor pe SpyLOG puteți vedea cu ușurință cât de mulți oameni sunt pe site.
Asa ca m-am decis să realizeze o astfel de funcție în site-ul său //ancient.dax.ru și aceasta este ceea ce a venit.
Protocolul HTTP este, în principiu, imposibil de a determina numărul de vizitatori la un moment dat sunt pe site. De ce acest lucru este așa că nu vreau să explic, dar încredere în mine pe podea. De aceea, veni cu un fel de metodă artificială.

Primul lucru de care avem nevoie este o bază de date (în cazul meu MySQL). În această bază de date avem nevoie de un tabel cu două câmpuri de nume de utilizator și timp


CREATE TABLE sesiune (
Nume utilizator varchar (25) DEFAULT '' NOT NULL,
timp varchar (14) DEFAULT '' NOT NULL
);

Apoi, începe să scrie scenariul, mai degrabă o singură funcție. Astfel,

mysql_query ( „DELETE din sesiunea unde timpul <$past");
$ Rezultat = mysql_query ( "SELECT timp de la sesiunea WHERE username = '$ username'");

if ($ row = mysql_fetch_array ($ rezultat)) mysql_query ( "sesiune UPDATE SET username = '$ username', timp = '$ ctime' WHERE username = '$ username'");
> Mysql_query Else ( "INSERT INTO sesiune (nume de utilizator, ora) VALORI ( 'username $', '$ ctime')");
>

$ Rezultat = mysql_query ( "SELECT COUNT (*) de la sesiunea");
$ Count = mysql_fetch_array ($ rezultat);
echo $ conta [0];

mysql_query ( „DELETE din sesiunea unde timpul <$past");
Această linie Ștergeți toate înregistrările restante.

$ Rezultat = mysql_query ( "SELECT timp de la sesiunea WHERE username = '$ username'");
Selectați din câmpul de bază de date pentru care coincide cu REMOTE_ADDR utilizator deja înregistrat.

if ($ row = mysql_fetch_array ($ rezultat)) mysql_query ( "sesiune UPDATE SET username = '$ username', timp = '$ ctime' WHERE username = '$ username'");
> Mysql_query Else ( "INSERT INTO sesiune (nume de utilizator, ora) VALORI ( 'username $', '$ ctime')");
>
În cazul în care există astfel de înregistrări în tabel, actualizarea se înregistrează o nouă perioadă de intrare la pagina - în cazul în care nu, adăugați o nouă intrare.


$ Rezultat = mysql_query ( "SELECT COUNT (*) de la sesiunea");
$ Count = mysql_fetch_array ($ rezultat);
echo $ conta [0];
Credem că din numărul de baze de date înregistrări - acest lucru va fi numărul de vizitatori ai site-ului.

webmaster Catalog (articole, scripturi gata) //ancient.dax.ru

elseif (getenv ( "HTTP_X_FORWARDED_FOR") strcasecmp (getenv ( "HTTP_X_FORWARDED_FOR"), "necunoscut"))
$ Ip = getenv ( "HTTP_X_FORWARDED_FOR");

elseif (getenv ( "REMOTE_ADDR") strcasecmp (getenv ( "REMOTE_ADDR"), "necunoscut"))
$ Ip = getenv ( "REMOTE_ADDR");

elseif (! gol ($ _ SERVER [ 'REMOTE_ADDR']) strcasecmp ($ _ [ 'REMOTE_ADDR'], "necunoscut" SERVER))
$ Ip = $ _SERVER [ 'REMOTE_ADDR'];

2. se poate crea un tabel cu același nume ca și adresa de script la altul - verificați cu atenție.

Creat un tabel în baza de date, am inserați codul. La final, el a scris: echo „Omul de pe site-ul:“ .On () „“;.
Am ieșiri de pe site-ul:

Atenție: mysql_query () [function.mysql-query]: Acces interzis pentru 'root' @ 'localhost' utilizator (folosind parola: NO) în /home/hdd1.ru/cronica/sites/www/index.php on line 120
Atenție: mysql_query () [function.mysql-query]: Un link către serverul nu a putut fi stabilită în /home/hdd1.ru/cronica/sites/www/index.php pe linia 120
Nu se poate șterge sess vechi

Cine știe ce se întâmplă?

Vă mulțumesc, funcționează. Am vrut mult timp să facă acest lucru după ce toate :)

Vă mulțumim pentru script-ul, am setat ușor transformat, dar funcțiile de bază ale propriului tău!
molodes Avtar)

mulțumiri bine făcut ribyata

Oamenii de ajutor pentru a face schechik pe zi timp de o lună și Total
și deși prompte Shoto va fi recunoscător.

Vă mulțumim Sahdow! Script-ul de la Sahdow chiar Evgeny Popov a luat pentru lecția, și chiar direct din această
site-ul în lecția copiat))

Super! Într-adevăr funcționează!
Am pus codul de script-ul de la utilizator Sahdow. Acesta funcționează ca un ceas!
Mulțumesc.
Prin modul în care Yevgeny Popov folosit în clasă pentru a crea un blog.