Contador de visitantes multipágina en PHP

Contador de mano

Realización de dos contadores de visitas programados en PHP:

  • El primero guarda un sólo contador para toda la web en un fichero de texto
  • El segundo almacena un contador independiente para cada página de la web en una base de datos SQLite

Introducción

Ejemplos

Instrucciones: Pulsa la tecla F5 dentro de los ejemplos para que se recargue la página web y así incrementar el contador de visitas

Descargar

Modo de empleo del contador simple

  1. Copia los archivos numero.txt y contador.php en la carpeta raíz de tu web

  2. Edita el fichero numero.txt y escribe el número de visitas inicial, por ejemplo 0

    Asegúrate que este fichero tiene puesto el permiso de escritura ya que será sobreescrito por cada visita

  3. Si la página de inicio de tu web se llama index.html renómbrala a index.php

    Copia el siguiente código dentro de tu página index.php:

    <span id="counter">
    <?php include("contador.php"); ?>
    </span>
  4. Copia el siguiente código CSS dentro de la hoja de estilos de tu web:

    #counter {
    background-color:#333;
    color:#ccc;
    padding:0.2em 0.7em;
    letter-spacing:0.2em;
    text-shadow:1px 1px 0 #000;
    font-size:16pt;
    font-family:monospace;
    font-weight:bold;
    border-radius:6pt;
    }

Modo de empleo del contador multipágina

  1. Descarga el archivo counter.7z y descomprímelo en la subcarpeta counter dentro de la raíz de tu web

  2. La base de datos counter/counters.db debe tener permisos rw (de lectura y escritura)

    La subcarpeta counter, que es dónde se encuentra la base de datos, debe tener los permisos rwx (de lectura, escritura y ejecución) [#1]

  3. La página web donde quieras añadir un contador debe tener extensión .php en vez de .html

    Para cada página de tu web donde quieras poner un contador has de añadir el siguiente código:

    <span id="counter">
    <?php include("counter/page-counter.php"); ?>
    </span>
  4. Copia el código CSS indicado en el apartado anterior dentro de tu hoja de estilos

Código fuente

El contador simple contador.php

<?php
$num = file_get_contents("/numero.txt");
$num = $num + 1;
file_put_contents("/numero.txt", $num);
echo $num;
?>

Crear la base de datos counters.db

$ sqlite3 counters.db

Crear la tabla page_counters dentro de la BD

CREATE TABLE IF NOT EXISTS page_counters (
id INTEGER PRIMARY KEY AUTOINCREMENT,
page VARCHAR(255),
counter INTEGER DEFAULT 0
);

El contador multipágina page-counter.php

<?php

$page = $_SERVER['SCRIPT_NAME'];
$counter = 0;

try
{
$dir = dirname(__FILE__);
$db = new PDO("sqlite:$dir/counters.db");

$quoted_page = $db->quote($page);
$sql = "SELECT counter FROM page_counters WHERE page=$quoted_page;";
$result = $db->query($sql, PDO::FETCH_OBJ);
$row = $result->fetch();
if ($row !== false) $counter = $row->counter;

$counter++;

if ($row === false)
$sql = "INSERT INTO page_counters(page, counter) VALUES ($quoted_page, $counter);";
else
$sql = "UPDATE page_counters SET counter=$counter WHERE page=$quoted_page;";

$result = $db->query($sql);

////if ($result === false) echo "<p>not updated</p>"; else echo "<p>updated</p>";
////echo "<p>errorCode ".$db->errorCode()."</p>";
////echo "<pre>errorInfo "; var_dump($db->errorInfo());
////echo "</pre>";

$db = null;
}
catch (PDOException $e)
{
print '<p class="error">Error!:'.$e->getMessage().'</p>';
die();
}

////echo "<p>page = $page<br />counter = $counter</p>"; // Prueba
//printf("%07d", $counter); // Con 7 dígitos
echo $counter;
?>

Referencias

  1. #1 Fixing Sqlite error "unable to open database file"

Comentarios

  1. 1 MILENA 2013-10-30 Hace 4 años
    Muchas gracias por ayudarmen con mi pagina web ya que la explicacion dada en esta pagina para insertar un contador de visitas simple me fue de gran ayuda, me parece genial mucho mejor que los contadores de visitas que ofrecen otras paginas pero que incluyen publicidad chocante.
  2. 2 amc7 2013-11-04 Hace 4 años
    Hola buenas, mi duda es la siguiente.
    Tengo un contador de visitas en la web dividido en 3 contadores.

    Significa que cada vez que te registras debes de poner como qué te registras.

    Ej: visitante, comprador, ojeador.

    Necesito que una vez la gente se registre, el contador de visitas coja de la base de datos como te has registrado y lo añada al contador de visitas de la web, sin tener que añadirlo manualmente.

    Gracias, saludos
Proinf.net, ©2003-2017 ci 3.1.5 (CC) Esta obra está bajo una licencia de Creative Commons Este software está sujeto a la CC-GNU GPL