---
title: "Räknare"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/14737-räknare"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "Axel"
published: "2000-08-10T22:22:00.000Z"
updated: "2003-05-30T07:45:30.000Z"
replies: 24
views: 5217
page: 1
pages: 2
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/14737-räknare"
---

# Räknare

_Sida 1 av 2._

## #1 — Axel, 2000-08-10T22:22Z

Kan man göra en sån där kul räknare "Hur många är inne på sidan nu?" i php? JAg antar det. =) Jag känner liksom för att ställa frågor, så jag passar på när jag är på det humöret. Jag satt och pillade på en sån där i asp förut, men upptäckte att min hemsideleverantör inte kommit igång med asp-stödet än. Skulle oxå gärna ha adress till nåt bra ställe, typ cgi-resources.com och aspin.com fast för php? Jo det blev lite text nu igen..

Permalänk: https://www.webforum.nu/p/14737

## #2 — nanne, 2000-08-11T05:37Z

Min chef har gjort en sån räknare men jag har inte satt mig in i hur den funkar helt än. Jag återkommer med det :)

Den andra frågan har jag dock svar på.
 <http://www.scriptsearch.f2s.com/> 

PS När du har kommit igång med PHP så kommer du sky ASP som pesten DS

Permalänk: https://www.webforum.nu/p/311870

## #3 — woodi, 2000-08-11T09:28Z

Med hjälp av Sessions..  

Sök nästa gång, ämnet har varit uppe tidigare..

Permalänk: https://www.webforum.nu/p/311871

## #4 — Robban, 2000-08-11T11:28Z

> Sök nästa gång, ämnet har varit uppe tidigare ..

\*Host, harkel\* Jo, men man kom väl aldrig fram till hur det skulle genomföras?

Problemet är ju att det inte finns något som motsvarar ASPs "Session_OnStart" och "Session_OnEnd". Avsaknaden av den senare gör t.ex. att man inte enkelt kan räkna ner räknaren när en session går ut.

Håller på att skriva en funktion som ger dessa två "events". Kan ta ett tag innan den är klar dock. Kan ju vara möjligt att någon annan redan gjort det (det är möjligt genom att man kan omdefiniera session-hanterarna i PHP), så det kan ju löna sig att leta om det är bråttom. :)

Permalänk: https://www.webforum.nu/p/311872

## #5 — nicclas, 2000-08-11T18:35Z

\*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](http://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\]

Permalänk: https://www.webforum.nu/p/311873

## #6 — Matti, 2000-08-11T19:03Z

YES.. jag har nic-sys.se som startsida så jag får använda skriptet :e

Permalänk: https://www.webforum.nu/p/311874

## #7 — woodi, 2000-08-11T21:58Z

Och Niccläs gör det ännu en gång!  :)
Jag hadde samma lösning i stort sett klar fast till en databas!  :)

Jaja, starkt jobbat Clarre!

Permalänk: https://www.webforum.nu/p/311875

## #8 — Axel, 2000-08-11T23:33Z

Oups.. Det där ser inte helt fel ut.. =) hehe :D :D :D
\*glad\*

Permalänk: https://www.webforum.nu/p/311876

## #9 — woodi, 2000-08-12T07:00Z

Vill man visa vem som är inloggad i sitt system för närvarande så är det bara att lägga till användar IDt i listan..  På så sätt kan man hämta information om användaren från en textfil eller en databas..

Permalänk: https://www.webforum.nu/p/311877

## #10 — stevenet, 2000-08-12T09:33Z

Skulle man kunna få se databas-varianten? Jag antar att den är snabbare.

Permalänk: https://www.webforum.nu/p/311878

## #11 — woodi, 2000-08-13T09:25Z

stevenet
Databas variante är ju i stort sett likadan, byt ut filläsningen/skrivningen mot en select- resp. updatesats till databasen och lagra samma data..

Permalänk: https://www.webforum.nu/p/311879

## #12 — stevenet, 2000-08-13T10:02Z

Ok!

Permalänk: https://www.webforum.nu/p/311880

## #13 — nicclas, 2000-08-21T18:53Z

Här kommer bästa lösningen på "antal besökare just nu"-scriptet för oss som inte har så många besökare på hemsidan. Kräver varken textfil eller MySQL!

\<?
srand((double)microtime()\*1000000); 
$newactive=rand(7,31); 
echo "Sidan har ".$newactive." besökare just nu!";
?\>

 :e

/nicclas - <http://www.nic-sys.se>

Permalänk: https://www.webforum.nu/p/311881

## #14 — emission, 2000-08-21T19:23Z

Haha!! Borde ligga i FAQ:n :e

Permalänk: https://www.webforum.nu/p/311882

## #15 — woodi, 2000-08-21T19:39Z

nicclas
Hehe, för det tipset har Du just blivit min idol!  :e :e

Permalänk: https://www.webforum.nu/p/311883

## #16 — Skoog2000, 2003-05-28T16:47Z

> **nicclas skrev:**
>
> Här kommer bästa lösningen på "antal besökare just nu"-scriptet för oss som inte har så många besökare på hemsidan. Kräver varken textfil eller MySQL!
> 
> \<?
> srand((double)microtime()\*1000000); 
> $newactive=rand(7,31); 
> echo "Sidan har ".$newactive." besökare just nu!";
> ?\>

Altså, hur gör man? Visst lägger man in det på sin sida där man vill att det ska fungera å sen så lägger man ut det på sin server? Är det nå mer man ska göra?

Permalänk: https://www.webforum.nu/p/1066479

## #17 — Peeer, 2003-05-28T16:57Z

Använd inte den koden, den fungerar inte. (Den slumpar ut ett tal mellan 7 & 31 aktiva användare varje gång sidan uppdateras.
Använd den [här](http://www.webforum.nu/showthread.php?s=&postid=89040#post89040) koden istället.

Permalänk: https://www.webforum.nu/p/1066489

## #18 — Skoog2000, 2003-05-28T17:03Z

ok, nu känner jag mej dum. 

haha, nä men, jag fick inte det andra att fungera heller. Visst gör man såhär:

Man kopierar in Den där koden i htmldokumentet där man vill att det ska visas. Sedan lägger man en  active.txt fil i samma mapp som html-filen. Sen är det väll bara att lägga upp den?

Eller ska htm filen heta ".php"??

REDIGERAT:

Ja, fattar nu att det ska heta .php men jag får det endå inte att fungera. Kan inte någon bara göra en sida på sin server där det står så här:

Status: 0 st Online
Besökare: 0 besökare idag, 0 besökare totalt 

Börjar misstänka att det kanske inte är stöd för php på mitt webbhotel, fast dom har sagt det.

Permalänk: https://www.webforum.nu/p/1066496

## #19 — Peeer, 2003-05-28T17:28Z

Japp, filen ska ha ändelsen .php. Får du några felmeddelanden när du besöker din sida? Om du väljer att "visa källa" på din php-sida, ser du då phpkoden? Om du ser den så har ditt webbhotell inte stöd för php nej.

Permalänk: https://www.webforum.nu/p/1066515

## #20 — Skoog2000, 2003-05-28T18:44Z

du kan gå in och titta själv:

<http://www.skelleftea.org/forening/efs/medle/down.php>

Någonting händer ju för bakgrunden blir ju svart som den ska, men sen händer det inte mycket.

Du kan gå in på sidan jag angav och visa källa så ser du. På den där sidan har jag lagt in onlinesaken som fanns här och en besöksräknare som finns i en annan tråd på i php forumet.

Hoppas på hjälp..

Permalänk: https://www.webforum.nu/p/1066558

---

Tråden på webben: https://www.webforum.nu/amne/php/14737-räknare  
Nästa sida: https://www.webforum.nu/amne/php/14737-räknare/page2.md
