Tæl de besøgende på dine sider

serverside-tællere på eget domæne:

Siden er opdateret 20.1.2007

Tæller med php

Hvis din hjemmeside i forvejen er lavet med php, kan du lave din egen besøgstæller meget enkelt med et lille script, der skriver og opdaterer en tekstfil på din server.

Scriptet, der laver og opdaterer tekstfilen, kan laves på flere måder. Hvilken måde du skal vælge afhænger af din server - nogle servere vil have det ene script for at virke korrekt, andre vil have det andet.


php-tæller 'model 1'

Det første script ser sådan ud (hop ned til det andet script):

<?php
session_start();
function counter($updateOn='always', $filename='counter.txt') {
  if (file_exists($filename)) {
  $myFile = fopen($filename,'r+');
  } else {
    $myFile = fopen($filename,'w+');
  }
    if (!$myFile) { return -1; }
    $fcontent = fread($myFile, filesize($filename)+1);
    if ($fcontent == '') $fcontent = 0;
    $fsession = isset($_SESSION[$filename]);
    if (($updateOn == 'session' && !$fsession)
    || $updateOn == 'always') {
    // Session-sensitive, session false (not noted) OR update = always
    $fcontent++;
    $_SESSION[$filename] = 1;
    rewind($myFile);
    fwrite($myFile,$fcontent);
    }
  fclose($myFile);
  return $fcontent;
}
?>

Det sted i koden herover, hvor der er sort tekst, defineres den tekstfil, der indeholder tælleresultatet (inklusive sti).

Gem koden i en selvstændig fil, kald den taeller.php. Derefter indsætter du denne kode i øverst (før DTD) på dine php-sider:

<? include("taeller.php"); ?>

Det sted på dine sider, hvor tælleren skal vises, indsætter du denne kode:

<p>Besøg nr: <?=counter('session','counter.txt')?></p>

Det vil på siden komme til at se sådan ud:

Besøg nr: 1684


Hvis du vil have tælleren til at tælle 1 op ved hver genindlæsning af siden eller hentning af en ny side på dit site, skal du indsætte denne kode på siderne i stedet:

<p>Besøg nr: <?=counter('always','counter.txt')?></p>

Vil du lave en privat side, hvor du kan gå ind og tjekke tællerstanden uden selv at blive talt, indsætter du denne kode på siden:

<p>Der har været <?=counter('none','counter.txt')?> besøg</p>

Hvis scriptet kaldes med parameteren 'session', tjekker scriptet, om der er sat en session. Er det ikke tilfældet, opdateres tælleren i tekstfilen med 1 og session sættes. Derved tælles kun unikke hits på sitet. Der tælles ikke hvis:


Hvis scriptet kaldes med parameteren 'always', tjekker scriptet ikke, om der er sat en session. Tælleren opdateres ved hver genindlæsning eller sideskift.


php-tæller 'model 2'

Scriptet ser sådan ud (gem det i en fil, du kalder count.php:

<?php
if(!session_id()){
session_start();
}
if($_SESSION['tracked'] == "../") { // Lad stå tom, hvis samme mappe
$_SESSION['tracked'] = "done";
$path = $PHP_SELF."";
$fp = fopen($path."counter.txt", "r");
$total = fread($fp, 10000) + 1;
fclose($fp);
$fp = fopen($path."counter.txt", "w");
fwrite($fp, $total);
fclose($fp);
} function output_total() {
$path = $PHP_SELF."../"; // Lad stå tom, hvis samme mappe
$fp = fopen($path."counter.txt", "r");
$total = fread($fp, 10000) + 1;
fclose($fp);
echo $total;
}
?>

I toppen af alle sider, som skal have tæller, indsættes denne kodelinje:

<?php include("count.php"); ?>

På det sted på siden, hvor du vil have din tællerudlæsning, anbringer du denne kode:

<?php output_total(); ?> besøg på denne side

^ Tilbage til sidens top

Valid XHTML og CSS / Copyright © Hjemmesideskolen september 2000
Hjemmesideskolen
Du er her: Forsiden - scripts - Tæl de besøgende på dine sider
Brugere lige nu: Antal aktive brugere
Home Mail