Contador de clic

Hola a los expertos. Quiero que me ayuden con un problema:
Tengo una lista de enlaces a diferentes páginas, quiero hacer que cada vez que le hagan clic en un enlaces este cuente. Ejemplo
Enlaces veces vistas
1.- Hotmail (1115)
2.- Yahoo (2251)
3.- AOL (2258)
Osea cada que le hagan clic en algún enlace incremente e indique en los muneros de alado como lo puedo hacer esto considerando que mi página es .htm
Gracias de antemano por la ayuda.
Respuesta
1
Este es un script en php.
Crea tres archivos vacíos: hotmail.dat, yahoo.dat, aol.dat
Dales permisos de escritura
Es una simple idea...
<?php
// Toma la variable del encabezado
$liga = $_GET['liga'];
// ---- Proceso para guardar número de visitas
// ------------------------------------------------------
// pregunta si trae algun valor y dependiendo del vinculo asigna el nombre de archivo
if ($liga > 0) {
switch($liga) {
case 1:
$archivo = "hotmail.dat";
break;
case 2:
$archivo = "yahoo.dat";
break;
case 3:
$archivo = "aol.dat";
break;
}
// Pregunta si existe el archivo, si así es, lo abre y extrae el valor contenido
if(file_exists($archivo))
{
$f=fopen($archivo,"r");
$visitas=fread($f,filesize($archivo));
$visitas++;
fclose($f);
}
// abre el archivo en modo escritura y escribe el nuevo valor
$f=fopen($archivo,"w");
fwrite($f,$visitas,strlen($visitas));
fclose($f);
}
// ------------------------------------------------------------
// --- Proceso para extraer los contadores
// ----------------------------------------
// Crea una matriz con los nombres de los archivos
$arch = explode(" ","hotmail.dat yahoo.dat aol.dat");
$x=array(1,2,3);
$y = 0;
// Hace un recorrido por la matriz extrayendo de cada archivo sus datos.
foreach ($arch as $archivo) {
if(file_exists($archivo))
{
$f=fopen($archivo,"r");
$visitas=fread($f,filesize($archivo));
$visitas++;
fclose($f);
}
$x[$y] = $visitas;
$y++;
}
// Imprime los vinculos en la página
echo "<a href={$_SERVER['PHP_SELF']}?liga=1 onclick=window.open('http://www.hotmail.com')>www.hotmail.com</a>  ($x[0])<br>";
echo "<a href={$_SERVER['PHP_SELF']}?liga=2 onclick=window.open('http://www.yahoo.com')>www.yahoo.com</a> ($x[1])<br>";
echo "<a href={$_SERVER['PHP_SELF']}?liga=3 onclick=window.open('http://www.aol.com')>www.aol.com</a> ($x[2])";
?>
¿Ya resolviste tu problema o todavía necesitas ayuda?
Aun nadie me da una buena respuesta ni me ayudan ha hacer este contador que todo el mundo dice que es fácil pero nadie me ayuda paso a paso
Gracias seria genial que me ayudes.
Sigue igual... le cambie a los dos osea aumente la b y nada.
Ok, agrega la letra "b" a la siguiente linea:
$f=fopen($archivo,"r");
debe quedar de esta manera:
$f=fopen($archivo,"rb");
Esta linea aparece dos veces en el script, modifica las dos.
Carlos SP
<?php
// Toma la variable del encabezado
$liga = $_GET['liga'];
// ---- Proceso para guardar número de visitas
// ------------------------------------------------------
// pregunta si trae algun valor y dependiendo del vinculo asigna el nombre de archivo
if ($liga > 0) {
switch($liga) {
case 1:
$archivo = "hotmail.dat";
break;
case 2:
$archivo = "yahoo.dat";
break;
case 3:
$archivo = "aol.dat";
break;
}
// Pregunta si existe el archivo, si así es, lo abre y extrae el valor contenido
if(file_exists($archivo))
{
$f=fopen($archivo,"rb");
if (filesize($archivo) == 0) {
$visitas=fread($f,1);
}else{
$visitas=fread($f,filesize($archivo));
}
$visitas++;
fclose($f);
}
// abre el archivo en modo escritura y escribe el nuevo valor
$f=fopen($archivo,"w");
fwrite($f,$visitas,strlen($visitas));
fclose($f);
}
// ------------------------------------------------------------
// --- Proceso para extraer los contadores
// ----------------------------------------
// Crea una matriz con los nombres de los archivos
$arch = explode(" ","hotmail.dat yahoo.dat aol.dat");
$x=array(1,2,3);
$y = 0;
// Hace un recorrido por la matriz extrayendo de cada archivo sus datos.
foreach ($arch as $archivo) {
if(file_exists($archivo))
{
$f=fopen($archivo,"rb");
if (filesize($archivo) == 0) {
$visitas=fread($f,1);
}else{
$visitas=fread($f,filesize($archivo));
}
$visitas++;
fclose($f);
}
$x[$y] = $visitas;
$y++;
}
// Imprime los vinculos en la página
echo "<a href={$_SERVER['PHP_SELF']}?liga=1 onclick=window.open('http://www.hotmail.com')>www.hotmail.com</a>  ($x[0])<br>";
echo "<a href={$_SERVER['PHP_SELF']}?liga=2 onclick=window.open('http://www.yahoo.com')>www.yahoo.com</a> ($x[1])<br>";
echo "<a href={$_SERVER['PHP_SELF']}?liga=3 onclick=window.open('http://www.aol.com')>www.aol.com</a> ($x[2])";
?>
Listo!
A los tres archivos dales permiso de lectura-escritura. ¡Es importante!.
Si estas en ambiente linux, utiliza ejemplo: chmod 777 hotmail.dat
Verifica que estos archivos estén en la misma ubicación que el index.php
Si después de esto sigue sin funcionar, avisame si hay algún error reportado en la página.
Carlos SP
Gracias ahora si que si...
Ya hice como me dijiste ahora dime como lo pruebo te cuento que lo puse en mi servidor pero no funciona.
He creado un archivo llamado index.php donde puse todo el código que pusiste desde <? ¿php asta?> Luego he creado los tres archivos .dat dime que más hay que hacer porque no me sale...
Gracias...
Si a los tres archivos les puse permisos pero me sale un mensaje de warming si no miralo http://www.sunriseperu.com/php/Cuentaclic/index.php
Que hago ahora, no tengo instalado nada de base de datos, esas cosas. ¿Sera por eso?
Gracias por tu tiempo.
Por favor mandame de nuevo todo el código ya me perdí... mejor sera que me des de nuevo el código.
Sustituye estas dos lineas:
$f=fopen($archivo,"rb");
$visitas=fread($f,filesize($archivo));
por lo que sigue:
$f=fopen($archivo,"rb");
if (filesize($archivo) == 0) {
$visitas=fread($f,1);
}else{
$visitas=fread($f,filesize($archivo));
}
Igual, en sus dos apariciones...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas