Muskampen 2025: Segraren korad!

[PHP] "Just nu tittar x på denna sida"-funktion?

Permalänk
Medlem

[PHP] "Just nu tittar x på denna sida"-funktion?

Antagligen är det lätt att göra, men jag kommer bara inte på hur, och framförallt hur man gör det lättast.

Hur gör man en "Just nu tittar x på denna sida"-funktion i PHP?

Alltså en som visar hur många personer som för tillfället tittar på sidan? Globala variabler? Sessions i kombination med en global array?

O en fråga till:

Hur gör ni med sidräknare - sparar ni IP-numret för att inte få dubletter i loggen? Men folk byter ju IP, då kan man ju råka missa en person med samma IP en halvtimme senare ?

Visa signatur

"... ååh ja lättar ja flyger ja svävar fram..."

Permalänk
Visa signatur

Så du söker den perfekta sidan om webbradio? Surfa då vidare till
http://www.radioworld.se
där finns allt du behöver veta om hur du drar upp en ström!

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av MittroSpaung
www.phpportalen.net

http://www.phpportalen.net/wiki/index.php?page=Antal+personer... för att vara mer exakt.

Visa signatur

- "Sometimes you make the right decision,
sometimes you make the decision right."
/Dr. Phil

Permalänk
Medlem

Re: [PHP] "Just nu tittar x på denna sida"-funktion?

Citat:

Ursprungligen inskrivet av dot
Antagligen är det lätt att göra, men jag kommer bara inte på hur, och framförallt hur man gör det lättast.

Hur gör man en "Just nu tittar x på denna sida"-funktion i PHP?

Alltså en som visar hur många personer som för tillfället tittar på sidan? Globala variabler? Sessions i kombination med en global array?

O en fråga till:

Hur gör ni med sidräknare - sparar ni IP-numret för att inte få dubletter i loggen? Men folk byter ju IP, då kan man ju råka missa en person med samma IP en halvtimme senare ?

Jag använder sessions för besöksräknare.

Visa signatur

Sverige är ett så litet land att det bara får plats en åsikt i taget där.

Permalänk
Kontot avslutas
Citat:

Ursprungligen inskrivet av Lavve
http://www.phpportalen.net/wiki/index.php?page=Antal+personer... för att vara mer exakt.

Han menade nog inte så... Han ville ha ett skript som visar hur många som sitter o glor _just nu_ inte hur många som har kollat sedan ett visst datum.

Har för mig att jag har ett sådant skript nån stans... ett ögonblick.

EDIT

Är inte 100 på att det fungerar, har inte testat själv...

Jobbar mot en DB, se nedanför PHP-skriptet dokumentet__________________________________ <?php /* start session, connect to db, select db, set save time(seconds) */ session_start(); mysql_connect("host","user","password"); /* put your own settings here */ mysql_select_db("database"); /* put your own settings here */ $intSavetime = 20; /* seconds a user should be considerd online */ /* first delete all old posts */ mysql_query("DELETE FROM currentUsers WHERE time<" . time()) or die(mysql_error()); /* get amount of users online */ $sqlNum = mysql_num_rows(mysql_query("SELECT id FROM currentUsers WHERE ip='" . $_SERVER['REMOTE_ADDR'] . "' AND sess='" . session_id() . "'")); /* slq query's for update/new entries in db */ $sqlUpdate = "UPDATE currentUsers SET time='" . (time()+$intSavetime) . "' WHERE ip='" . $_SERVER['REMOTE_ADDR'] . "' AND sess='" . session_id() . "'"; $sqlNew = "INSERT INTO currentUsers (ip,sess,time) VALUES ('" . $_SERVER['REMOTE_ADDR'] . "','" . session_id() . "','" . (time()+$intSavetime) . "')"; /* update/insert new entry in db */ if($sqlNum > 0){ mysql_query($sqlUpdate) or die(mysql_error()); }elseif($sqlNum == 0){ mysql_query($sqlNew) or die(mysql_error()); }else{ echo "<b>Something realy wierd just happend</b>"; } /* define constant */ define("_USERS_ONLINE_",mysql_num_rows(mysql_query("SELECT id From currentUsers"))); /* * EXAMPLE OUTPUT: */ echo "<br />Users: " . _USERS_ONLINE_; ?> databasen______________________________________________________ CREATE TABLE `currentUsers` ( `ip` varchar(255) NOT NULL default '', `sess` varchar(255) NOT NULL default '', `time` varchar(250) NOT NULL default '', `id` int(11) NOT NULL auto_increment, PRIMARY KEY (`id`) ) TYPE=MyISAM AUTO_INCREMENT=1 ;