webForumDet fria alternativet

Räknare

24 svar · 5 211 visningar · startad av Axel

AxelMedlem sedan aug. 20004 638 inlägg
#1

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..

------------------
/Axel - http://www.axelweb.nu

nanneMedlem sedan dec. 19991 749 inlägg
#2

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

------------------
Vackra djur gör fula saker även dom

nanne.net

woodiMedlem sedan feb. 20001 270 inlägg
#3

Med hjälp av Sessions..

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

------------------
woodi

Svenska FF1
www.johan-skog.nu

RobbanMedlem sedan dec. 19992 555 inlägg
#4

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. :)

------------------
Robban < robban@lipogram.com >

nicclasMedlem sedan feb. 20001 050 inlägg
#5

*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]

MattiMedlem sedan dec. 19996 592 inlägg
#6

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

------------------
fint.

woodiMedlem sedan feb. 20001 270 inlägg
#7

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!

------------------
woodi

Svenska FF1
www.johan-skog.nu

AxelMedlem sedan aug. 20004 638 inlägg
#8

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

------------------
/Axel - http://www.axelweb.nu

woodiMedlem sedan feb. 20001 270 inlägg
#9

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..

------------------
woodi

Svenska FF1
www.johan-skog.nu

stevenetMedlem sedan juni 20001 251 inlägg
#10

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

------------------
SteveNet
Notera: Funktionen för Signatur är för tillfället påslagen.

woodiMedlem sedan feb. 20001 270 inlägg
#11

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..

------------------
woodi

Svenska FF1
www.johan-skog.nu

stevenetMedlem sedan juni 20001 251 inlägg
#12

Ok!

------------------
SteveNet - stevenet@webmarkit.net

nicclasMedlem sedan feb. 20001 050 inlägg
#13

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

emissionMedlem sedan dec. 19996 721 inlägg
#14

Haha!! Borde ligga i FAQ:n :e

woodiMedlem sedan feb. 20001 270 inlägg
#15

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

------------------
woodi

Svenska FF1
www.johan-skog.nu

Skoog2000Medlem sedan mars 200379 inlägg
#16

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?

PeeerMedlem sedan mars 20025 907 inlägg
#17

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 koden istället.

Skoog2000Medlem sedan mars 200379 inlägg
#18

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.

PeeerMedlem sedan mars 20025 907 inlägg
#19

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.

Skoog2000Medlem sedan mars 200379 inlägg
#20

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..

130 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)