Als je bezoekers in je db zet kun dus zo aangeven dat er bv 3 bezoekers zijn... het probleem is :
Hoe kan ik mensen die gewoon het venster hebben gesloten (of verder gesuft) zijn verwijderen?
Volgens mij kan dat met sessions... die worden volgens mij verwijderd als het venster gesloten wordt...
Hoe dan?

Als iemand gewoon naar mijn site gaat...
Bv jij gaat naar www.mijnsite.nl dan voeg ik je IP oid toe aan mijn DB.
Maar als jij weer weggaat ben je niet meer online dus moet het record daarna weer verwijdert worden....
Sessies worden niet verwijderd wanneer het vesten gesloten wordt. Alleen als bijvoorbeeld een cookie als sessie id gebruikt wordt en deze door de browser verdijderd wordt, in principe wordt in de sessies directory van php alleen een sessie verwijderd wanneer expliciet het einde van de sessie wordt aangegeven.

Deze manier werkt op een andere manier: er wordt gekeken naar het aantal bezoekers over de afgelopen x minuten. (Heb je geen request meer gedaan over de afgelopen x minuten, ben je geen 'huidige bezoeker' meer.

verzin dr maar eens iets op ;)

Ik zou wel willen maar snap nog niet wat je bedoelt:
Deze manier werkt op een andere manier: er wordt gekeken naar het aantal bezoekers over de afgelopen x minuten. (Heb je geen request meer gedaan over de afgelopen x minuten, ben je geen 'huidige bezoeker' meer.

Dit vind ik nogal vaag.. en hoe weet je dat iemand geen requests meer heeft gedaan... en requests waarvoor?
Tabelletje bijhouden met IP's en de laatste tijd van klikken. En dan ergens anders die tabel uitlezen waar laatste kliktijd groter dan de huidige tijd min de maximale waarde is... snappie? :D
En dan laat je ook gelijk alles verwijderen uit de tabel waar de laatste kliktijd kleiner dan de huidige tijd min de maximale waarde...

Elwin
1: Iemand bezoekt de site:
INSERT into bezoekers (tijd, sessie_id) values ($tijd, $sessie_id)

2: Je wil weten hoeveel bezoekers online zijn:
SELECT DISTINCT count(sessie_id)
FROM bezoekers
where tijd < 3 minuten geleden

en je wil die verwijderen:

DELETE from bezoekers
WHERE tijd > 3 minuten geleden
Ty Kikker en Adje ik denk dat ik het snap :)
En dit is het geworden :)

<?

$vis_sql = "SELECT id FROM visitors WHERE ip = '$_SERVER[REMOTE_ADDR]'";
$vis_res = mysql_query($vis_sql);

$time = time();

if (mysql_num_rows($vis_res) == 0)
{
$vis2_sql = "INSERT INTO visitors SET ip = '$_SERVER[REMOTE_ADDR]', time = '$time'";
$vis2_res = mysql_query($vis2_sql);
}
else
{
$vis3_sql = "UPDATE visitors SET time = '$time' WHERE ip = '$_SERVER[REMOTE_ADDR]'";
$vis3_res = mysql_query($vis3_sql);

$vis4_sql = "DELETE FROM visitors WHERE time < '$tijd - 600'";
$vis4_sql = mysql_query($vis4_sql);
}

?>

Nog suggesties?
<?
{
$vis3_sql = "UPDATE visitors SET time = '$time' WHERE ip = '$_SERVER[REMOTE_ADDR]';DELETE FROM visitors WHERE time < '$tijd - 600'";
$vis3_res = mysql_query($vis3_sql);
}
?>
waarom 2 queries gebruiken als 1 ook kan :)

Reageren