*Host harkel*
Klart det går att använda sessions och sånt men det går också att göra ett "hack" utan.
Pillade ihop lite kod (som ni ser nedan).
Så här funkar koden
Istället för session-variabler så bygger den på IP-adress-loggning. Varje gång sidan läses så läses en fil där tidigare besökares IP och tidsstämpel finns. "Gamla" IP nummer "glöms", medan "aktiva" skrivs tillbaka till filen. Är IP nummret på "nuvarande" besökaren ej med så adderas även det.
Vad jag ser/förstår så fungerar detta sätt (minst) lika bra som med sessions.
Koden är som vanligt ett hack, så ni får gärna ge förslag på förbättringar... Koden är dock testad, och fungerar. (Ibland är det bra med 3 fasta IP-adresser för att debugga :) )
Koden ges i form av en komplett sida:
<?
//
// Räkna antalet "aktiva" besökare på en sajt "just nu".
// (c) 2000 Clas Rydergren, [url="http://www.nic-sys.se,"]www.nic-sys.se,[/url] [url="http://www.allanyheter.com"]www.allanyheter.com[/url]
//
// "activetime" anger hur länge (i sekunder) en besökare är "aktiv".
$activetime=600;
// Läs in IP och tid för tidigare besökare från filen "active.txt".
$fp = fopen("active.txt", 'r');
$noactive=0;
while(!feof($fp)){
$activeip[$noactive]=fgets($fp,255);
$timeticks[$noactive]=fgets($fp,255);
$activeip[$noactive]=str_replace("\n","",$activeip[$noactive]);
$timeticks[$noactive]=str_replace("\n","",$timeticks[$noactive]);
if(strlen($activeip[$noactive])>3 && strlen($timeticks[$noactive])>3)
$noactive++;
}
fclose($fp);
// Skriv tillbaka IP-adress och tider för besökare som laddat sidan
// inom $activetime sekunder.
$fp = fopen("active.txt", 'w');
$newactive=1;
for($i=0;$i<$noactive;$i++){
if($timeticks[$i]>time()-$activetime && strlen(strstr($activeip[$i],$REMOTE_ADDR))==0){
fputs($fp,"$activeip[$i]\n$timeticks[$i]\n");
$newactive++;
}
}
fputs($fp,"$REMOTE_ADDR\n".time()."\n");
fclose($fp);
?>
<html>
<head>
</head>
<body>
<? echo "Sidan har ".$newactive." besökare just nu!"; ?>
</body>
</html>
Som vanligt måste filen "active.txt" finnas (tom) och vara skrivbar från PHP.
För att du skall få använda koden på din hemsida måste du lova att besöka www.nic-sys.se minst en gång varje dag i ett år framöver ;)
/nicclas - http://www.nic-sys.se
[Redigerat av nicclas den 11 aug 2000]