Online Users script

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Yme-Jan

Yme-Jan

23/01/2005 20:23:00
Quote Anchor link
Ik heb nu al heel wat site's afgezocht, en nooit gevonden wat ik nou eigenlijk zoek..
namelijk een script wat de Online gebruikers laat zien voor mijn site.. (http://www.lagazy-intruders.com/pli)...

heeft mischien iemand zoiets voor mij?
als ik nog dingen aan moet passen, geen probleem
ik vind het dan wel uit, heb tog wel enige ervaring met php.. (heb die hele site zelf gescript)

iniedergeval... Alvast bedankt.. ^_^
 
PHP hulp

PHP hulp

18/12/2024 06:31:57
 
Alfred -

Alfred -

23/01/2005 20:28:00
Quote Anchor link
Als ze inloggen, een insert query:
naam ip datum -> sec sinds epoch lijkt me het simpelst.
Als ze van pagina veranderen,
delete & nieuwe insert
dan bij elke pagina, als datum langer dan 10minuten geleden is, delete...

ipv die delete & nieuwe insert, zou een update ook gaan, alleen niet zo zeker... als ze 11 min lezen op een pagina, zal de update geen effect hebben, omdat dat record dan al gewist is....

Succes
 
Yme-Jan

Yme-Jan

23/01/2005 20:31:00
Quote Anchor link
zoiets had ik zelf idd ook wel in gedachten..
maar wat is nou het scriptje van zo'n timer dat na 10 minuten niks gedaan is bla bla bla.. ?
 
Alfred -

Alfred -

23/01/2005 20:36:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?
$datum
= date("U") - 600; # -> 600sec -> 10min
mysql_query("DELETE FROM online WHERE datum < '" . $datum . "'");
?>
 
Yme-Jan

Yme-Jan

23/01/2005 20:38:00
Quote Anchor link
ik zal es probeeren... bedankt :-)

edit:
doordat ik include gebruik in indes.php, kan ik dan ook die regel alleen in index.php zetten, dat het niet meer in de anderen hoeft?
Gewijzigd op 23/01/2005 20:41:00 door Yme-Jan
 
Legolas

Legolas

23/01/2005 20:45:00
Quote Anchor link
lijkt me wel :)
 
Alfred -

Alfred -

23/01/2005 20:45:00
Quote Anchor link
Wat denk je nu zelf ?
Try and find out ?
Of denk logisch na... Het antwoord bestaat uit 2 letters ^^
 
Yme-Jan

Yme-Jan

23/01/2005 20:47:00
Quote Anchor link
ja toch wel eh ? :P
 
Thijs -

Thijs -

23/01/2005 20:48:00
Quote Anchor link
Rafael:
Als ze inloggen, een insert query:
naam ip datum -> sec sinds epoch lijkt me het simpelst.
Als ze van pagina veranderen,
delete & nieuwe insert
dan bij elke pagina, als datum langer dan 10minuten geleden is, delete...

ipv die delete & nieuwe insert, zou een update ook gaan, alleen niet zo zeker... als ze 11 min lezen op een pagina, zal de update geen effect hebben, omdat dat record dan al gewist is....

Succes


Gebruik dan MySQL functie: replace, Deze functie is neller dan 2 query's het is een mix van insert en update dus er hoeft geen delete of insert te worden gedaan.

voor meer info http://dev.mysql.com/doc/mysql/en/replace.html
Gewijzigd op 23/01/2005 20:50:00 door Thijs -
 
Yme-Jan

Yme-Jan

23/01/2005 20:56:00
Quote Anchor link
dan heb ik dit in mijn index staan:

$date = date("U");
mysql_query("REPLACE INTO pli_online (id, username, date) VALUES (NULL,'" . $_SESSION["user"] . "','$date'));

$datum = date("U") - 600; # -> 600sec -> 10min
mysql_query("DELETE FROM pli_online WHERE datum < '" . $datum . "'");



als dit niet klopt......
 
Yme-Jan

Yme-Jan

23/01/2005 20:58:00
Quote Anchor link
Parse error: parse error, unexpected T_STRING in /data/members/paid/l/a/lagazy-intruders.com/htdocs/www/pli/index.php on line 23

r23:
$datum = date("U") - 600;


hmm... k heb zo'n idee dak da REPLACE tog niet helemaal snap..
zou je een voorbeel regeltje willen maken?

mysql_query("REPLACE INTO pli_online (id, username, date) VALUES (NULL,'" . $_SESSION["user"] . "','$date'));

is niet goed d8 ik zo...
Gewijzigd op 23/01/2005 21:04:00 door Yme-Jan
 
Alfred -

Alfred -

23/01/2005 21:10:00
Quote Anchor link
@Hiska; khad nog nooit van dat commando gehoord... Ga het eens uitpluizen.. Bedankt voor de tip ;)
 
Yme-Jan

Yme-Jan

23/01/2005 22:16:00
Quote Anchor link
oke... nu zet hij het ding in de db..
maar telkens als ik op vernieuwen druk..
komt er 1 bij...

das ook niet helemaal goed denk ik..
 
Niels

Niels

23/01/2005 23:46:00
Quote Anchor link
Zet dit boven de html code:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php

require 'connect.php';

mysql_select_db("usersonline");  

$s_aantal = mysql_query("Select Count(id) From usersonline Where ip = '".$_SERVER['REMOTE_ADDR']."'") or die(mysql_error());  

if (!mysql_result($s_aantal, 0))  
    mysql_query("Insert Into usersonline (id, ip, tijd) Values ('NULL', '".$_SERVER['REMOTE_ADDR']."', '".time()."')") or die(mysql_error());  
else {  
    mysql_query("Update usersonline Set tijd = '".time()."' Where ip = '".$_SERVER['REMOTE_ADDR']."'") or die(mysql_error());  
    mysql_query("Delete From usersonline Where tijd < ".time()." - 60*5") or die(mysql_error());  
}
  

// Bezoekers  online definieren
$s_aantal = mysql_query("Select Count(id) From usersonline");  
$aantal = mysql_result($s_aantal, 0);  
//$aantal++;

if ($aantal > 1 || $aantal == 0)  
    
    $bez = "Er zijn <b>".$aantal."</b> bezoekers online";  
else  
    $bez = "Er is <b>één</b> bezoeker online";  
?>


En maak tabel:

CREATE TABLE `usersonline` (
`id` int(11) NOT NULL auto_increment,
`ip` varchar(50) NOT NULL default '',
`tijd` varchar(50) NOT NULL default '',
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=963 ;

Zet dit in de pagina:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo "$bez"; ?>


En dan werkt t.

Groet, Niels
 
Yme-Jan

Yme-Jan

24/01/2005 14:37:00
Quote Anchor link
das met bezoekersaantal...

nu nog dat hij de usernames laat zien die online zijn......
 
Legolas

Legolas

24/01/2005 15:59:00
Quote Anchor link
alle usernames en ids uit de usertabel halen en dan met for de online userids doorlopen en de bij behorende naam echoen
 
Yme-Jan

Yme-Jan

24/01/2005 16:02:00
Quote Anchor link
Ik dacht dat ik best veel van php afwist..
maar hier snap ik duz helemaal geen snars van :P

Bij alles wat ik wil/kan maken moet ik eigenlijk altijd een voorbeeld bij zien.. dan is het denk ik toch iets beter te snappen..
of dat iemand een kant en klaar scriptje heeft die ik kan door neuzen.... dat mag ook... ;)
 
Legolas

Legolas

24/01/2005 17:30:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php

require 'connect.php';

mysql_select_db("usersonline");  

$s_aantal = mysql_query("Select Count(id) From usersonline Where ip = '".$_SERVER['REMOTE_ADDR']."'") or die(mysql_error());  

if (!mysql_result($s_aantal, 0))  
    mysql_query("Insert Into usersonline (id, ip, tijd) Values ('NULL', '".$_SERVER['REMOTE_ADDR']."', '".time()."')") or die(mysql_error());  
else {  
    mysql_query("Update usersonline Set tijd = '".time()."' Where ip = '".$_SERVER['REMOTE_ADDR']."'") or die(mysql_error());  
    mysql_query("Delete From usersonline Where tijd < ".time()." - 60*5") or die(mysql_error());  
}
  

$query = mysql_query("SELECT username, userid FROM users") or die(mysql_error());  

while($row = mysql_fetch_array($query)) {
   $users[$row["userid"]] = $row["username"];
}


$query = mysql_query("SELECT id FROM usersonline") or die(mysql_error());  

while($row = mysql_fetch_array($query)) {
   $bez .= $user[$row["id"]] . "<br />\n";
}




?>


voor de rest: wat niels postte
 
Yme-Jan

Yme-Jan

24/01/2005 17:51:00
Quote Anchor link
das moeilijk doen duz.... ;)
k heb al een goede die zo werkt:

In Login.php komt boven de header('Location: index.php');
--dit:
$time = time();
mysql_query("INSERT INTO `online` (id, username, date) VALUES (NULL, '" . $_SESSION["user"] . "', '$time')");

--in elke andere pagina komt dit:
$date = time();
$online_verval = time()-300;

mysql_query("UPDATE `pli_online` SET `date`='$date' WHERE `username`='" . $_SESSION["user"] . "'");

mysql_query("DELETE FROM pli_online WHERE date < '$online_verval'");
 
Alfred -

Alfred -

24/01/2005 17:53:00
Quote Anchor link
Rafael:
ipv die delete & nieuwe insert, zou een update ook gaan, alleen niet zo zeker... als ze 11 min lezen op een pagina, zal de update geen effect hebben, omdat dat record dan al gewist is....


Mij ook goed als jullie het zo willen... ^^
Ik zou eerder eens zoeken naar Hiska's uitleg....
 
Yme-Jan

Yme-Jan

24/01/2005 20:05:00
Quote Anchor link
ik kan geen info vinden ofer dat replace.. en dit wertk ook wel.. ;)
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.