Preskoči na sadržaj
Ista raja. Nova runda.
GAMERZ.ba — REBORN
Diskusija

[TUT]Broj online korisnika

297 pregleda · 7 odgovora · otvorena 16.02.2010. u 18:43

E pozz svima posto vidim da bas nema pametnih tutorijala na web dizajnu odlucio sam da napravim par dobrih tutorijala koji ce vam biti sigurno odlici msm valjda :D
Svaki dan ce te dobijete 1 pametan :D
Pa da krenem:


U ovom tutorijalu, koji je malo složeniji naučićemo kako da napravimo prostu PHP aplikaciju, koja će nam reći u svakom trenutku koliko korisnika imamo na sajtu.
Korak1

Kreiranje MySQL tabele. Kopirajte sledeći kod, uz pomoć koga ćete jednostavno kreirati tabelu u MySQL bazi podataka, koja se zove counter.

CREATE TABLE `counter` (
`id` int(10) unsigned NOT NULL auto_increment,
`ip` varchar(100) NOT NULL,
`lastvisit` varchar(100) NOT NULL,
PRIMARY KEY (`id`)
);
Korak 2
Sada ćemo da napravimo klasu VisitorCounter. Otvorite PHP tag i ukcuajte sledeće:

<?php
class VisitorCounter {

var $sessionTimeInMin = 5;
}
?>

Promenljiva sesionTimeInMin, je promeljiva koja označava koliko je potrebno vremena da prodje da bi se statistika osvežila!

Korak 3.

Sada ćemo da napravimo konstruktora klase. Konstruktor će nam pomoći da očistimo bazu podataka od korisnika čija je sesija istekla.

public function VisitorCounter()
{
$ip = $_SERVER['REMOTE_ADDR'];
$this->cleanVisitors();

if ($this->visitorExists($ip))
{
$this->updateVisitor($ip);
} else
{
$this->addVisitor($ip);
}
}
Korak 4.

Sada ćemo napraviti funkciju koja će nam pomoći da proverimo da li korisnik već postoji na sajtu, tačnije da li njegova sesija nije istekla, ako ne postoji funkcija će dati negativan odgovor (false)

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;
}
}
Korak 5.

Pravimo funkciju koja će samo ažurirati korisnika koji se već nalazi u bazi.

private function updateVisitor($ip)
{

$sql = "update counter set lastvisit = '" . time() . "' where ip = '$ip'";
mysql_query($sql);
}
Korak 6.

U ovom koraku ćemo dodati korisnika ukoliko se on ne nalazi u bazi podataka!

private function addVisitor($ip)
{
$sql = "insert into counter (ip ,lastvisit) value('$ip', '" . time() . "')";
mysql_query($sql);
}
Korak 7.

I sada još trebamo da vidimo koliko se to korisnika nalazi u bazi? Tačnije koliko je to korisnika na našem sajtu!

public function getAmountVisitors()
{
$sql = "select count(id) from counter";
$res = mysql_query($sql);
$row = mysql_fetch_row($res);
return $row[0];
}

Korak 8.

U ovoj klasi još trebamo da prikažemo broj online korisnika i da zatvorimo php tag (pa završili smo sa ovom klasom)

public function show()
{
echo '<div style="padding:5px; margin:auto; background-color:#fff"><b>' .
$this->getAmountVisitors() . ' korisnika online</b></div>';
}
Korak 9.

Sada ćemo da se povežemo na bazu podataka!

<?php

// Server baze (obično localhost)
define("HOST", "localhost";);
// Korisnicko ime (ukoliko koristite Wamp server to je ROOT)
define("DBUSER", "";);
// Lozinka za bazu (ukoliko koristite Wamp server ostavite prazno)
define("PASS", "";);
// Ime baze (Napomena: NE ime tabele vec ime beze podataka u kojo se tabela nalazi)
define("DB", "";);

############## Povezivanje na bazu ###########
$conn = mysql_connect(HOST, DBUSER, PASS);
if (!$conn)
{
// neuspelo
die('Neuspelo povezivanje na bazu !');
}
$db = mysql_select_db(DB);
if (!$db)
{
// cneuspelo povezivanje na bazu
die('Neuspelo povezivanje na bazu !');
}
?>
NAPOMENA: SAcuvati kao dbconnect.inc.php.

Korak 10.

Sada ćemo samo da napravimo stranu na kojoj će da se vidi naš rad, nazovite je index.php.

<?php
require "dbconnect.inc.php"; // konekcija na bazu
require "class.visitorcounter.inc.php"; // counter klasa
$counter = new VisitorCounter; //nov brojac
$counter->show(); // koliko korisnika, a?
?>


Eto mislim da ce nekome pomoci tutorijal jeste c/p ali je sa moga kompa imam ga odavno sjecam se da sam se pregulio dok sam ga kucao :D

Dje vam je ovaj smajli ;) tu vam je ovaj znak ; ) samo spojeno

Valjda ce nekome pomoci! :D
Odlican tutorial, samo ako pravis vec neku " seriju " njih, nisi trebao od toga poceti, bolje bi bilo nesto jednostavnije pa tek onda ovog tipa.

Reddion je napisao/la:
Odlican tutorial, samo ako pravis vec neku " seriju " njih, nisi trebao od toga poceti, bolje bi bilo nesto jednostavnije pa tek onda ovog tipa.

;)
prvo da se malo mucite pa cu vas onda olaksati :D
Jarane svaka čast ali nisi trebao koristiti javascript lakše bi ti bilo ...
dobar tutorial samo c/p,nema veze sto si ti patio nek se i oni malo pate,tako ce barem neshto naucit
XicX je napisao/la:
Jarane svaka čast ali nisi trebao koristiti javascript lakše bi ti bilo ...
Gdje ti tu vidis Javascript ?
_InfinitY je napisao/la:
Gdje ti tu vidis Javascript ?
al bas :D

Prijavi se da bi odgovorio/la na ovu temu.