Autorius Tema: Who online ?  (Skaityti 283 kartai)

marvel

  • HEROJUS
  • Žinutės: 896
  • Karma: +11/-2
  • Wade can fly

  • Aktyvumas per 30d.
    82.35%
Who online ?
« : 2011-01-28 16:43:44 »
hi dar karta

savo portfolio radau veikianti who online scripta jis skaiciuoja kiek butent tuo metu zmoniu yra, o as dar noreciau pasidaryt kad sumuotu kiek isviso apsilankyta

Kodas :
<?php
 
include_once ("usersOnline.class.php");
$visitors_online = new usersOnline();

if (
count($visitors_online->error) == 0) {

    if (
$visitors_online->count_users() == 1) {
        echo 
"There is " $visitors_online->count_users() . " visitor online";
    }
    else {
        echo 
"There are " $visitors_online->count_users() . " visitors online";
    }
}
else {
    echo 
"<b>Users online class errors:</b><br /><ul>\r\n";
    for (
$i 0$i count($visitors_online->error); $i ++ ) {
        echo 
"<li>" $visitors_online->error[$i] . "</li>\r\n";
    }
    echo 
"</ul>\r\n";

}
 
?>

Cia speju butu galima kazkurioj vietoj pakeist kazka ir uztektu :)

ganjabest

  • HEROJUS
  • Žinutės: 695
  • Karma: +30/-0
  • Povilas Stankevičius

  • Aktyvumas per 30d.
    100%
Re: Who online ?
« Atsakyti #1 : 2011-01-28 17:05:23 »
Na cia parodytas kodas tik atvaizduoja kiek yra dabar. Tai taip kad is butent sito nemanau kad ispesi ka  :D


<?php
 
include_once ("usersOnline.class.php");

$visitors_online = new usersOnline();

//Tikrina ar yra klaidu
if (count($visitors_online->error) == 0) {

    if (
$visitors_online->count_users() == 1) {
// Jeigu nera klaidu ir jeigu online tik vienas useris isveda i ekrana atsakyma
        
echo "There is " $visitors_online->count_users() . " visitor online";
    }
    else {
// Jeigu nera klaidu ir jeigu online daugiau nei vienas useris online isveda i ekrana atsakyma
        
echo "There are " $visitors_online->count_users() . " visitors online";
    }
}
else {
//Isveda klaidas
    
echo "<b>Users online class errors:</b><br /><ul>\r\n";
    for (
$i 0$i count($visitors_online->error); $i ++ ) {
        echo 
"<li>" $visitors_online->error[$i] . "</li>\r\n";
    }
    echo 
"</ul>\r\n";

}
 
?>



Nebent parodytum dar klasiu faila tai is ten kazka galima butu pasakyti
Visi žmonės kaip žmonės - tik aš vienas kaip dievas!

marvel

  • HEROJUS
  • Žinutės: 896
  • Karma: +11/-2
  • Wade can fly

  • Aktyvumas per 30d.
    82.35%
Re: Who online ?
« Atsakyti #2 : 2011-01-28 19:40:10 »
Tai kad daugiau nieko nera yra tik prisijungimas prie DB :)
O negaletum man toki scripta padaryt ar papeistint jei pats turi zinok tikrai pagelbetum per google toki veikianti vos ir tai radau

class usersOnline {

var $timeout = 600;
var $count = 0;
var $error;
var $i = 0;

function usersOnline () {
$this->timestamp = time();
$this->ip = $this->ipCheck();
$this->new_user();
$this->delete_user();
$this->count_users();
}

function ipCheck() {
/*
This function will try to find out if user is coming behind proxy server. Why is this important?
If you have high traffic web site, it might happen that you receive lot of traffic
from the same proxy server (like AOL). In that case, the script would count them all as 1 user.
This function tryes to get real IP address.
Note that getenv() function doesn't work when PHP is running as ISAPI module
*/
if (getenv('HTTP_CLIENT_IP')) {
$ip = getenv('HTTP_CLIENT_IP');
}
elseif (getenv('HTTP_X_FORWARDED_FOR')) {
$ip = getenv('HTTP_X_FORWARDED_FOR');
}
elseif (getenv('HTTP_X_FORWARDED')) {
$ip = getenv('HTTP_X_FORWARDED');
}
elseif (getenv('HTTP_FORWARDED_FOR')) {
$ip = getenv('HTTP_FORWARDED_FOR');
}
elseif (getenv('HTTP_FORWARDED')) {
$ip = getenv('HTTP_FORWARDED');
}
else {
$ip = $_SERVER['REMOTE_ADDR'];
}
return $ip;
}

function new_user() {
$insert = mysql_query ("INSERT INTO useronline(timestamp, ip) VALUES ('$this->timestamp', '$this->ip')");
if (!$insert) {
$this->error[$this->i] = "Unable to record new visitor\r\n";
$this->i ++;
}
}

function delete_user() {
$delete = mysql_query ("DELETE FROM useronline WHERE timestamp < ($this->timestamp - $this->timeout)");
if (!$delete) {
$this->error[$this->i] = "Unable to delete visitors";
$this->i ++;
}
}

function count_users() {
if (count($this->error) == 0) {
$count = mysql_num_rows ( mysql_query("SELECT DISTINCT ip FROM useronline"));
return $count;
}
}

}

?>
« Paskutinis taisymas: 2011-01-28 19:55:45 nuo marvel »

ganjabest

  • HEROJUS
  • Žinutės: 695
  • Karma: +30/-0
  • Povilas Stankevičius

  • Aktyvumas per 30d.
    100%
Re: Who online ?
« Atsakyti #3 : 2011-01-28 20:34:52 »
Ziurek
Sita funkcija iraso ip i DB.
<?php

 
function new_user() {
      
$insert mysql_query ("INSERT INTO useronline(timestamp, ip) VALUES ('$this->timestamp', '$this->ip')");
      if (!
$insert) {
         
$this->error[$this->i] = "Unable to record new visitor\r\n";         
         
$this->++;
      }
   }

?>


Tai tu susikurk dar viena lentele duomenu bazeje ir prirasyk dar viena uzklausa:

<?php

 
function new_user() {
      
$insert mysql_query ("INSERT INTO useronline(timestamp, ip) VALUES ('$this->timestamp', '$this->ip')");
       
mysql_query ("INSERT INTO userall(timestamp, ip) VALUES ('$this->timestamp', '$this->ip')");  //pvz tokia
      
if (!$insert) {
         
$this->error[$this->i] = "Unable to record new visitor\r\n";         
         
$this->++;
      }
   }

?>


Po to kazkur pasirasyt skripta kad suskaiciuotu tos naujos lenteles irasus .Cia ir rodys kiek skirtingu apsilanke.
O tada atvaizdavima daraisi kazkoki tai.. trauki is tos lenteles reiksmes ir rusiuoji pagal data .. Pvz pasidarai kad rodytu ta diena tiek, kita diena tiek ir t.t.

Na dabar pats ilindes i darbus todel nelabai laiko turiu parasyt as tau  :)
« Paskutinis taisymas: 2011-01-28 20:36:44 nuo ganjabest »
Visi žmonės kaip žmonės - tik aš vienas kaip dievas!

marvel

  • HEROJUS
  • Žinutės: 896
  • Karma: +11/-2
  • Wade can fly

  • Aktyvumas per 30d.
    82.35%
Re: Who online ?
« Atsakyti #4 : 2011-01-28 20:49:30 »
O kaip tas scriptas turi atrodyt kad viska suskaiciuotu ? Tas reiksmiu traukimas ?
Nu dekui ir uz tiek jau jei uzsiemes esi netrukdysiu :) Patrukdysiu kitus :)

Lukas Liesis

  • Administratorius
  • Super HEROJUS
  • Žinutės: 3959
  • Karma: +117/-12

  • Aktyvumas per 30d.
    100%
Re: Who online ?
« Atsakyti #5 : 2011-01-31 00:06:49 »
as tai sioje vietoje nenaudociau duombazes, o tiesiog paprasta faila, kuriame butu skaiciukas, kuris nurodytu kiek atvertimu padaryta. jei tau tinka tiesiog atvertimu skaicius. jei tau reikia ir ip, tai gal tada geriau su sql. +pagalvok apie tai, kad kas kiek laiko ta pati ip skaiciuosi kaip nauja atejima: kas valanda, dvi, o gal para? zodziu pagalvok kas tavo lankytojai ir kokie ju ip :)

su failais turetu praversti sios pamokos:

http://www.tizag.com/phpT/fileopen.php
http://www.tizag.com/phpT/fileclose.php
http://www.tizag.com/phpT/filewrite.php
http://www.tizag.com/phpT/fileread.php

Jūsų draugas, kolega ir puslapio administratorius,

Lukas.

Manualai.lt Facebooke
Jums patinka manualai.lt projektas?
serveriai.lt 50% nuolaida!

marvel

  • HEROJUS
  • Žinutės: 896
  • Karma: +11/-2
  • Wade can fly

  • Aktyvumas per 30d.
    82.35%
Re: Who online ?
« Atsakyti #6 : 2011-01-31 16:48:12 »
Nelabai man sitie tutorialai ka ir padeda

Lukas Liesis

  • Administratorius
  • Super HEROJUS
  • Žinutės: 3959
  • Karma: +117/-12

  • Aktyvumas per 30d.
    100%
Re: Who online ?
« Atsakyti #7 : 2011-01-31 17:08:50 »
Nelabai man sitie tutorialai ka ir padeda


o ka darei ir kas neisejo?
Jūsų draugas, kolega ir puslapio administratorius,

Lukas.

Manualai.lt Facebooke
Jums patinka manualai.lt projektas?
serveriai.lt 50% nuolaida!

marvel

  • HEROJUS
  • Žinutės: 896
  • Karma: +11/-2
  • Wade can fly

  • Aktyvumas per 30d.
    82.35%
Re: Who online ?
« Atsakyti #8 : 2011-01-31 20:09:48 »
Nelabai man sitie tutorialai ka ir padeda


o ka darei ir kas neisejo?


Na as ant php neturiu ant tiek daug praktikos, kad galeciau pritaikyt ant sistemos kaip tuose linkuose

Lukas Liesis

  • Administratorius
  • Super HEROJUS
  • Žinutės: 3959
  • Karma: +117/-12

  • Aktyvumas per 30d.
    100%
Re: Who online ?
« Atsakyti #9 : 2011-01-31 20:24:51 »
tai tie linkai tam ir skirti. suprask kas ten rasoma ir nebus imanoma nesugebeti prisitaikyti.
Jūsų draugas, kolega ir puslapio administratorius,

Lukas.

Manualai.lt Facebooke
Jums patinka manualai.lt projektas?
serveriai.lt 50% nuolaida!

marvel

  • HEROJUS
  • Žinutės: 896
  • Karma: +11/-2
  • Wade can fly

  • Aktyvumas per 30d.
    82.35%
Re: Who online ?
« Atsakyti #10 : 2011-02-01 16:59:11 »
tai tie linkai tam ir skirti. suprask kas ten rasoma ir nebus imanoma nesugebeti prisitaikyti.


Lengva tau sakyt kaip viska moki. Zodziu dar google pasiieskosiu :)

KNx

  • Kietas forumietis
  • Žinutės: 156
  • Karma: +1/-3

  • Aktyvumas per 30d.
    14.12%
Re: Who online ?
« Atsakyti #11 : 2011-02-01 17:24:00 »
Marvel, Tave nukreipia teisinga linkme, o pats jau ar moki pasinaudoti ar ne tavo reikalas, tačiau visi mokomes, tai kodėl turi visiškai viską parašyti? Būtų kur nors klaida, ar bent būtum bandęs tai padėtų dar daugiau, o be mėginimo tai čia bus tik sausas kodas :)

marvel

  • HEROJUS
  • Žinutės: 896
  • Karma: +11/-2
  • Wade can fly

  • Aktyvumas per 30d.
    82.35%
Re: Who online ?
« Atsakyti #12 : 2011-02-01 18:25:55 »
Na teisinga tai teisinga bet i ta nelabai yra noro taip ziauriai gilintis, dar as tiek tesuprantu ta koda tai.. kai dar dabar su paskaliu pradejo kankint kolegijoj man jau bloga :D  Nu zdz jei jau taip gaila :D pats pasieskosiu :)



Bet va vieno dalyko nzn kaip surast google :D tai butu pwz kai psl persikrauna man vis grazina home.php.. nu pradini psl zdz nors buciau belekuriam o turetu uzkraut ta pati refreshinus
« Paskutinis taisymas: 2011-02-01 19:52:19 nuo marvel »

ganjabest

  • HEROJUS
  • Žinutės: 695
  • Karma: +30/-0
  • Povilas Stankevičius

  • Aktyvumas per 30d.
    100%
Re: Who online ?
« Atsakyti #13 : 2011-02-01 20:33:00 »
Siaip tai nuo Luko gausi velniu, kad toj pacioj temoj rasai :) O jei taip reikia tai tikriausiai imanoma su jQuery, nes kiek zinau eina nuskaityt narsykles mygtuku veiksmus, bei klaviaturu kodus.
Visi žmonės kaip žmonės - tik aš vienas kaip dievas!

marvel

  • HEROJUS
  • Žinutės: 896
  • Karma: +11/-2
  • Wade can fly

  • Aktyvumas per 30d.
    82.35%
Re: Who online ?
« Atsakyti #14 : 2011-02-01 22:09:53 »
Siaip tai nuo Luko gausi velniu, kad toj pacioj temoj rasai :) O jei taip reikia tai tikriausiai imanoma su jQuery, nes kiek zinau eina nuskaityt narsykles mygtuku veiksmus, bei klaviaturu kodus.


Aha googlei pasikinisau maciau kad tokiu dalykus galima pasidaryt :) 

Nu ir kas cia tokio kad toj pacioj temoj gi ne koks stambus dalykas.
« Paskutinis taisymas: 2011-02-01 22:15:46 nuo marvel »

Lukas Liesis

  • Administratorius
  • Super HEROJUS
  • Žinutės: 3959
  • Karma: +117/-12

  • Aktyvumas per 30d.
    100%
Re: Who online ?
« Atsakyti #15 : 2011-02-03 03:00:49 »
Siaip tai nuo Luko gausi velniu, kad toj pacioj temoj rasai :) O jei taip reikia tai tikriausiai imanoma su jQuery, nes kiek zinau eina nuskaityt narsykles mygtuku veiksmus, bei klaviaturu kodus.


Aha googlei pasikinisau maciau kad tokiu dalykus galima pasidaryt :) 

Nu ir kas cia tokio kad toj pacioj temoj gi ne koks stambus dalykas.



daugeliui zmoniu reikia nestambiu dalyku. reikia kokios funkcijos, atsakymo i trumpa klausima ar pns. Kaip tau atrodo, jei kazkam dar kitam refresho bedos yra, kaip jis sugebes surasti temoje, kurios pavadinimas "Who online?" ? Visi dideli dalykai susideda is mazu.

kadangi jau visiskas offtopicas temoje - rakinu.

Jūsų draugas, kolega ir puslapio administratorius,

Lukas.

Manualai.lt Facebooke
Jums patinka manualai.lt projektas?
serveriai.lt 50% nuolaida!