login  Naam:   Wachtwoord: 
Registreer je!
 Forum

online en hoe lang?

Offline Stijn - 17/05/2005 16:46
Avatar van StijnPHP expert hallo

ik zou graag willen weten wie er online is en hoe lang ze op een pagina zitten . Maar helaas weet ik niet hoe ik het zou moeten schrijven 

Ik weet wel dat het iets te maken zou hebben met $_SESSION['..'] en microtime().

Kan er iemand me eens vertellen wat de waarde is van microtime(), heb die eens uitgevoert en krijg bv zo'n waarde op mijn scherm:
0.52784100 1116340380 :s
what the hell betekend dit 

misschien voorbeeldje wat ik zou willen weergeven:

1. Stijn : [pagina waar hij zit] : [tijd op die pagina]
2. Niels : [pagina waar hij zit] : [tijd op die pagina]
3. ...

groeten stijn 

6 antwoorden

Gesponsorde links
Offline MechaVore - 17/05/2005 17:09 (laatste wijziging 17/05/2005 17:14)
Avatar van MechaVore Gouden medaille

PHP gevorderde
als een gebruiker een pagina bezoekt, zet je gewoon die tijd (time()) in de database. als hij een nieuwe bezoekt dan update je die.

en die pagina selecteerd dan gewoon alle leden waarvan ze onder de 300 seconden actief waren (bij sitemasters).
  1. <?
  2. $tijd = time() - $fetch['time'];
  3. if ($tijd <= "300")
  4. {
  5. }
  6. ?>
zoiets denk ik ..
Offline Stijn - 17/05/2005 17:38
Avatar van Stijn PHP expert en om mijn voorbeeld weer te geven, de namen van members die online zijn en het aantal bezoekers die online zijn...
Offline jopie - 17/05/2005 18:13
Avatar van jopie Onbekend
Citaat:
Kan er iemand me eens vertellen wat de waarde is van microtime()
ooit gehoord van php.net ??

Citaat:
en om mijn voorbeeld weer te geven, de namen van members die online zijn en het aantal bezoekers die online zijn...
wat dacht je van het userid opslaan bij de tijd en de pagina (sow, dat was moeilijk)
Offline Stijn - 17/05/2005 22:11
Avatar van Stijn PHP expert
  1. <?php
  2. $ip = $_SERVER['REMOTE_ADDR'];
  3. if(mysql_num_rows(mysql_query("SELECT * FROM sessions WHERE ip='".$ip."'")) == 0)
  4. {
  5. if(mysql_num_rows(mysql_query("SELECT * FROM users WHERE ip='".$ip."'")) == 1)
  6. {
  7. $member = "ja";
  8. }else{
  9. $member = "nee";
  10. }
  11. $pagina = $_SERVER['REQUEST_URI'];
  12. mysql_query("INSERT INTO sessions (ip, member, pagina) VALUES ($ip, $member, $pagina)");
  13. }
  14. while($obj = mysql_fetch_assoc(mysql_query("SELECT * FROM sessions")))
  15. {
  16. echo "~ ".$obj->ip." : ".$obj->."<br>";
  17. }
  18. ?>


Heb dit al, zal hij dan alle bezoekers die op mijn pagina komen weergeven. Dus als er 5 mensen op die pagina komen, zal hij ze allemaal weergeven :s

en dan nog een punt, als er iemand weg gaat van de pagina, hoe weet ik dit dan zodat ik die rij kan verwijderen?

groeten stijn
Offline Stijn - 17/05/2005 22:28
Avatar van Stijn PHP expert ok, heb eens een php-nuke script gelezen en daar gebruiken ze de volgende code:
  1. function online() {
  2. global $user, $cookie, $prefix, $db;
  3. cookiedecode($user);
  4. $ip = $_SERVER["REMOTE_ADDR"];
  5. $uname = $cookie[1];
  6. if (!isset($uname)) {
  7. $uname = "$ip";
  8. $guest = 1;
  9. }
  10. $past = time()-3600;
  11. $db->sql_query("DELETE FROM ".$prefix."_session WHERE time < '$past'");
  12. $result = $db->sql_query("SELECT time FROM ".$prefix."_session WHERE uname='$uname'");
  13. $ctime = time();
  14. if ($row = $db->sql_fetchrow($result)) {
  15. $db->sql_query("UPDATE ".$prefix."_session SET uname='$uname', time='$ctime', host_addr='$ip', guest='$guest' WHERE uname='$uname'");
  16. } else {
  17. $db->sql_query("INSERT INTO ".$prefix."_session (uname, time, host_addr, guest) VALUES ('$uname', '$ctime', '$ip', '$guest')");
  18. }
  19. }


Kan ik starten van deze code??
en kan iemand een uitleggen wat time(); weergeeft in php.net zeggen ze het volgende:

Citaat:
Retourneert de huidige tijd gemeten in het aantal seconden sinds de Unix Epoch (January 1 1970 00:00:00 GMT).


groeten stijn
Offline Maarten - 17/05/2005 22:49
Avatar van Maarten Erelid Welja, time() geeft idd het aantal seconden weer sinds die tijd, maar je kan de waarde van time() door date() halen om hem weer om te zetten in een datum, bv. date("d-m-Y",24554534); zal wel iets weergeven.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.206s