Log in
Who is online?
In total there are 3 users online :: 0 Registered, 0 Hidden and 3 Guests :: 1 BotNone
Most users ever online was 18 on Wed Mar 01, 2023 5:42 pm
Statistics
We have 1651 registered usersThe newest registered user is lesn1k
Our users have posted a total of 558 messages in 467 subjects
[PHP][Tutorial]Numara vizitatorii online pe site-ul tau [PHP]
Page 1 of 1
[PHP][Tutorial]Numara vizitatorii online pe site-ul tau [PHP]
Te-ai intrebat vre-odata cati vizitatori sunt online la un moment dat pe
site-ul tau In acest tutorial vom analiza o metoda efectiva de a afisa
numarul total de vizitatori online pe site.
Variabila
$sessionTimeInMin reprezinta numarul de minute ce trebuie sa treaca
inainte de a reseta contorul. Un vizitator nu mai este luat in calcul
doar daca nu a realizat nici o actiune in intervalul de minute mai sus
mentionat.
Incepem prin a crea o clasa care se va ocupa de
statisticile noastre.
Functia
constructoare a clasei va actualiza basa de date stergand vizitatorii
inactivi si adaugand / actualizand restul de vizitatori.
ocupa de verificarea vizitatorilor in baza de date. Daca un vizitator nu
este in baza de date va returna false
Urmatoara
functie va actualiza un vizitator daca acesta exista in baza de date
Functia care
urmeaza se va ocupa de adaugarea unui vizitator daca acesta nu exista in
baza de date
Acum aflam numarul
de vizitatori din baza de date online pe site
Urmatoarea bucata de
cod se va ocupa de afisarea efectiva a counter-ului in pagina
In
final vom obtine un script php pe care il poti salva de exmplu ca
Counter.class.php al carui cod arata dupa cum urmeaza:
Utilizarea
counter-ului se face foarte simplu utilizand doar 3 linii de cod
site-ul tau In acest tutorial vom analiza o metoda efectiva de a afisa
numarul total de vizitatori online pe site.
Variabila
$sessionTimeInMin reprezinta numarul de minute ce trebuie sa treaca
inainte de a reseta contorul. Un vizitator nu mai este luat in calcul
doar daca nu a realizat nici o actiune in intervalul de minute mai sus
mentionat.
Incepem prin a crea o clasa care se va ocupa de
statisticile noastre.
- Code:
<?php
class
VisitorCounter {
var $sessionTimeInMin = 5;
}
?>
Functia
constructoare a clasei va actualiza basa de date stergand vizitatorii
inactivi si adaugand / actualizand restul de vizitatori.
- Code:
private function
cleanVisitors()
{
$sql = "select * from counter";
$res = Mysql_query($sql);
while ($row =
mysql_fetch_array($res))
{
if (time() -
$row['lastvisit'] >= $this->sessionTimeInMin * 60)
{
$dsql = "delete from counter where id =
$row[id]";
mysql_query($dsql);
}
}
}
ocupa de verificarea vizitatorilor in baza de date. Daca un vizitator nu
este in baza de date va returna false
- Code:
public function visitorExists($ip)
{
$sql = "select * from counter where IP = '$ip'";
$res = mysql_query($sql);
if (mysql_num_rows($res) > 0)
{
return true;
} else
if
(mysql_num_rows($res) == 0)
{
return
false;
}
}
Urmatoara
functie va actualiza un vizitator daca acesta exista in baza de date
- Code:
private function
updateVisitor($ip)
{
$sql = "update counter set
lastvisit = '" . time() . "' where ip = '$ip'";
mysql_query($sql);
}
Functia care
urmeaza se va ocupa de adaugarea unui vizitator daca acesta nu exista in
baza de date
- Code:
private
function addVisitor($ip)
{
$sql = "insert into
counter (ip ,lastvisit) value('$ip', '" . time() . "')";
mysql_query($sql);
}
Acum aflam numarul
de vizitatori din baza de date online pe site
- Code:
public function getAmountVisitors()
{
$sql = "select count(id) from counter";
$res =
mysql_query($sql);
$row = mysql_fetch_row($res);
return $row[0];
}
Urmatoarea bucata de
cod se va ocupa de afisarea efectiva a counter-ului in pagina
- Code:
public function show()
{
echo '<div style="padding:5px; margin:auto;
background-color:#fff"><b>' . $this->getAmountVisitors() .
'visitors online</b></div>';
}
In
final vom obtine un script php pe care il poti salva de exmplu ca
Counter.class.php al carui cod arata dupa cum urmeaza:
- Code:
<?php
class
VisitorCounter
{
var $sessionTimeInMin = 5; // time session
will live, in minutes
public function VisitorCounter()
{
$ip = $_SERVER['REMOTE_ADDR'];
$this->cleanVisitors();
if ($this->visitorExists($ip))
{
$this->updateVisitor($ip);
} else
{
$this->addVisitor($ip);
}
}
public function visitorExists($ip)
{
$sql = "select *
from counter where ip = '$ip'";
$res = mysql_query($sql);
if (mysql_num_rows($res) > 0)
{
return true;
} else
if (mysql_num_rows($res)
== 0)
{
return false;
}
}
private function cleanVisitors()
{
$sessionTime = 30;
$sql = "select * from counter";
$res = mysql_query($sql);
while ($row =
mysql_fetch_array($res))
{
if (time() -
$row['lastvisit'] >= $this->sessionTimeInMin * 60)
{
$dsql = "delete from counter where id = $row[id]";
mysql_query($dsql);
}
}
}
private function updateVisitor($ip)
{
$sql = "update
counter set lastvisit = '" . time() . "' where ip = '$ip'";
mysql_query($sql);
}
private function addVisitor($ip)
{
$sql = "insert into counter (ip ,lastvisit) value('$ip',
'" . time() . "')";
mysql_query($sql);
}
public
function getAmountVisitors()
{
$sql = "select
count(id) from counter";
$res = mysql_query($sql);
$row = mysql_fetch_row($res);
return $row[0];
}
public function show()
{
echo '<div
style="padding:5px; margin:auto; background-color:#fff"><b>' .
$this->getAmountVisitors() . 'visitors
online</b></div>';
}
}
?>
Utilizarea
counter-ului se face foarte simplu utilizand doar 3 linii de cod
- Code:
<?php
require
"Counter.class.php"; // the counter class itself
$counter = new
VisitorCounter;
$counter->show();
?>
Similar topics
» [Tutorial site] Cum fasi sa nu copie site tau!!!
» [Tutorial]AWK
» Tutorial Cars
» [Tutorial] PHP & MySql
» [Tutorial]Intro - Concluzie
» [Tutorial]AWK
» Tutorial Cars
» [Tutorial] PHP & MySql
» [Tutorial]Intro - Concluzie
Page 1 of 1
Permissions in this forum:
You cannot reply to topics in this forum
Mon Feb 25, 2013 9:12 am by Guest
» Ajuta Comunitatea
Sun Feb 24, 2013 3:36 pm by Guest
» Salut de la kalean
Wed Dec 19, 2012 5:16 pm by kalean
» firecracker
Sat Oct 20, 2012 3:14 am by 10th
» Ajuta Comunitatea in dezvoltare
Wed Jul 04, 2012 5:28 pm by Guest
» welcome........
Wed Jul 04, 2012 5:25 pm by Guest
» Cerere UnBan
Mon Jul 02, 2012 5:57 pm by Guest
» Astept potentiali clienti la componente IT si cel mai bun serviciu de gazduire din Romania!
Sat Jun 30, 2012 12:54 pm by Guest
» Cerere Rank
Fri Jun 29, 2012 10:15 am by Guest