Foros del Web » Programando para Internet » PHP »

Contador y archivo Php

Estas en el tema de Contador y archivo Php en el foro de PHP en Foros del Web. Hola, Buenas necesito ayuda para solucionar un problema que tengo con un contador para flash. He creado lo siguiente: TXT ( Contador.txt ) Abrimos el ...
  #1 (permalink)  
Antiguo 21/03/2007, 03:03
 
Fecha de Ingreso: marzo-2007
Mensajes: 4
Antigüedad: 12 años, 8 meses
Puntos: 0
Contador y archivo Php

Hola,

Buenas necesito ayuda para solucionar un problema que tengo con un contador para flash. He creado lo siguiente:

TXT ( Contador.txt )
Abrimos el bloc de notas, escribimos un 0 y guardamos como contador.txt. Mediante este archivo de texto iremos guardando el numero de visitas que se han realizado hasta el momento. Al insertar un 0 estamos iniciando nuestro contador de visitas para posteriormente ir modificándolo.

PHP ( Contador.php )
Este código lo recogí del foro forosdelweb y lo aportó un forero llamado Bandit. Es un código muy sencillito, simplificado y ordenado por lo que será ideal para aplicarlo a nuestro ejemplo. El código es el siguiente:

<?
$filename = "contador.txt";
$archivo = file($filename,"r"); //abrimos txt en modo lectura
$contador = $archivo[0];
$contador++;
$fp = fopen( $filename,"w"); //abrimos txt en modo escritura
fwrite($fp, $contador);
fclose($fp); //cerramos txt

echo "&contador=$contador&";
?>En $filename guardamos la dirección real de contador.txt, en $archivo insertamos el contenido del documento txt, en $contador metemos el primer valor del txt que será el número de visitas ( 0 nada mas iniciar el contador ), a continuación incrementamos el contador para contabilizar la nueva visita, y por último escribimos en el txt el numero de visitas actualizado ( fwrite($fp, $contador); ). Lo único que quedaría sería devolver las visitas al fla para que fueran imprimidas en pantalla.

FLA ( Contador.fla )
Dentro del fla lo único que tendremos que hacer es crearnos nuestro interfaz grafico para el contador y crear un campo de texto dinámico que tenga asignado como nombre de variable "contador". A continuación en acciones de frame insertaremos la siguiente sentencia loadVariablesNum("contador.php", 0); que se encargara de recibir la variable contador que viene del php.

Importante

Los tres archivos comentados anteriormente deberán estar en la misma carpeta o tener configuradas las direcciones según su situación en el servidor.

Error: Siempre sale 1. Si una y otra vez obtenéis un 1 en el numero de visitas recibidas esto se debe a que no estamos guardando debidamente en el txt el valor actualizado de la variable contador, por lo que siempre tendremos un 0 en el txt y un 1 en el fla que viene de incrementar en 1 dentro del php. Este problema es debido a una cuestión de Permisos. para poder actualizar el numero de visitas en el txt debemos tener permiso de escritura, sin embargo si nos encontramos con este error esto significara que simplemente tenemos permiso de lectura por lo que solo podemos leer el 0 pero no podemos escribir el nuevo valor actualizado ( 1 ).
¿Como doy permiso de escritura?

El permiso de escritura lo tendréis que dar desde vuestro programa cliente FTP, tendréis que ir hasta la carpeta donde tenéis el txt y hacer botón derecho sobre el mismo, os aparecerá un menú donde encontrareis la opción propiedades / CHMOD, pulsad sobre esta y a continuación marcar la casilla de escritura dentro de public ( publico ) para que se pueda actualizar el txt y por lo tanto el número de visitas, sea quien sea el visitante.

3.- Si quereis insertar el contador en un HTML tened cuidado de meter también este HTML en la misma carpeta para que no haya problemas de direcciones: TXT, PHP, FLA y HTM juntos en la misma carpeta


El problema es que siempre me sigue dando 1 aunque le de todos los persmisos.

Sabeis cual es el problema??, o podeis indicarme otro tutorial para crear un contador que funcione??

Muchas gracias.
  #2 (permalink)  
Antiguo 21/03/2007, 03:10
 
Fecha de Ingreso: agosto-2004
Mensajes: 118
Antigüedad: 15 años, 3 meses
Puntos: 1
Re: Contador y archivo Php

Lo mas provable es que tu hosting esté configurado para que no te deje escribir en ficheros desde tu web por motivos de seguridad, lo que me sucedio en un contador que instalé par un cliente.

Tengo un código que modifique de un ejemplo sacado de un libro que usa una tabla de mysql en vez de un fichero de texto, haber si lo encuentro y te lo pongo.

Última edición por rayder; 21/03/2007 a las 03:17
  #3 (permalink)  
Antiguo 21/03/2007, 03:44
 
Fecha de Ingreso: agosto-2004
Mensajes: 118
Antigüedad: 15 años, 3 meses
Puntos: 1
Re: Contador y archivo Php

Bueno, buscando un poco en mi repositorio de cosas lo he encontrado.

Estructura de la tabla contador
Código PHP:
CREATE TABLE `tbl_contador` (
  `
Contadorint(11NOT NULL default '0',
  
PRIMARY KEY  (`Contador`)
TYPE=MyISAM COMMENT='Almacena el contador de visitas a la web'
Y el script
Código PHP:
<?php
 
/******************************************************************
  * Contador de visitas programado en PHP  *************************
  * Añadido el soporte de directorios por Rayder *******************
  ******************************************************************/ 
  
  /////////////////////////////////////////////////////////////
  //                           Conectar a base de datos local
  /////////////////////////////////////////////////////////////
  
DEFINE (DB_USER"Usuario_de_la_BaseDatos");
  
DEFINE (DB_PASSWORD"Contraseña_BaseDatos");
  
DEFINE (DB_HOST"IP_Servidor_BaseDatos");
  
DEFINE (DB_NAME"Nombre_BaseDatos");

  
/////////////////////////////////////////////////////////////
  //                           Conexión a mysql
  /////////////////////////////////////////////////////////////
  
$db_connection mysql_connect(DB_HOSTDB_USERDB_PASSWORD)
     or die(
Error_Mysql_Conect_DB());

  
//////////////////////////////////////////////////////////////
  //                           Seleccionar db
  //////////////////////////////////////////////////////////////
  
mysql_select_db (DB_NAME);


  

  
//Leer el valor del contador
  
$Sql "SELECT * FROM tbl_contador";
  
$Query mysql_query($Sql);
  
$Row mysql_fetch_array($Query);
  
  
$cuenta $Row["Contador"];
  
$cuenta $cuenta 1;
  
  for(
$i=0;$i<strlen($cuenta);$i++) {
    
$imagen substr($cuenta,$i,1);
    
$contador .= "<img alt='$imagen ' src='ContadorVisitas/$imagen.gif'>";
  }
   
  
  
//Imprimir el contador, si falla la carga de la imagen, se imprime el
  //número correspondiente
  
print ($contador);
  
  
//Incrementa el contador y actualiza la base de datos
  
  
$ActContador "UPDATE tbl_contador
                    SET Contador = '$cuenta'"
;
  
mysql_query($ActContador);
  
  
// Cerramos la conexión a la base de datos
  
$db_connection mysql_close($db_connection);
?>
Lo único que faltaría son las imagenes en formato gif que son mostradas por el script con nombres según la cifra a mostrar 1,gif, 2.gif, etc.

Si no encuestra el fichero .gif, imprime el equivalente en cifra.

Cualquier duda ya sabes.
  #4 (permalink)  
Antiguo 21/03/2007, 04:05
 
Fecha de Ingreso: marzo-2007
Mensajes: 4
Antigüedad: 12 años, 8 meses
Puntos: 0
Re: Contador y archivo Php

Cita:
Iniciado por rayder Ver Mensaje
Bueno, buscando un poco en mi repositorio de cosas lo he encontrado.

Estructura de la tabla contador
Código PHP:
CREATE TABLE `tbl_contador` (
  `
Contadorint(11NOT NULL default '0',
  
PRIMARY KEY  (`Contador`)
TYPE=MyISAM COMMENT='Almacena el contador de visitas a la web'
Y el script
Código PHP:
<?php
 
/******************************************************************
  * Contador de visitas programado en PHP  *************************
  * Añadido el soporte de directorios por Rayder *******************
  ******************************************************************/ 
  
  /////////////////////////////////////////////////////////////
  //                           Conectar a base de datos local
  /////////////////////////////////////////////////////////////
  
DEFINE (DB_USER"Usuario_de_la_BaseDatos");
  
DEFINE (DB_PASSWORD"Contraseña_BaseDatos");
  
DEFINE (DB_HOST"IP_Servidor_BaseDatos");
  
DEFINE (DB_NAME"Nombre_BaseDatos");

  
/////////////////////////////////////////////////////////////
  //                           Conexión a mysql
  /////////////////////////////////////////////////////////////
  
$db_connection mysql_connect(DB_HOSTDB_USERDB_PASSWORD)
     or die(
Error_Mysql_Conect_DB());

  
//////////////////////////////////////////////////////////////
  //                           Seleccionar db
  //////////////////////////////////////////////////////////////
  
mysql_select_db (DB_NAME);


  

  
//Leer el valor del contador
  
$Sql "SELECT * FROM tbl_contador";
  
$Query mysql_query($Sql);
  
$Row mysql_fetch_array($Query);
  
  
$cuenta $Row["Contador"];
  
$cuenta $cuenta 1;
  
  for(
$i=0;$i<strlen($cuenta);$i++) {
    
$imagen substr($cuenta,$i,1);
    
$contador .= "<img alt='$imagen ' src='ContadorVisitas/$imagen.gif'>";
  }
   
  
  
//Imprimir el contador, si falla la carga de la imagen, se imprime el
  //número correspondiente
  
print ($contador);
  
  
//Incrementa el contador y actualiza la base de datos
  
  
$ActContador "UPDATE tbl_contador
                    SET Contador = '$cuenta'"
;
  
mysql_query($ActContador);
  
  
// Cerramos la conexión a la base de datos
  
$db_connection mysql_close($db_connection);
?>
Lo único que faltaría son las imagenes en formato gif que son mostradas por el script con nombres según la cifra a mostrar 1,gif, 2.gif, etc.

Si no encuestra el fichero .gif, imprime el equivalente en cifra.

Cualquier duda ya sabes.
Muchas gracias Ryder ¡¡¡

UF¡¡¡¡ Es que no ando muy bien de conocimientos de Php etc... me lo podrías poner un poco mas sencillo para que puediera entender donde tengo que lo colocar estos códigos, los archivos y las imagenes gif??

Sorry por mi ignoracia ¡¡
  #5 (permalink)  
Antiguo 21/03/2007, 04:31
 
Fecha de Ingreso: agosto-2004
Mensajes: 118
Antigüedad: 15 años, 3 meses
Puntos: 1
Re: Contador y archivo Php

Lo siguiente
Código PHP:
CREATE TABLE `tbl_contador` (
  `
Contadorint(11NOT NULL default '0',
  
PRIMARY KEY  (`Contador`)
TYPE=MyISAM COMMENT='Almacena el contador de visitas a la web'
es la estructura para crear la tabla en el servidor MySql, en mi caso, yo uso el phpmyadmin, si no lo tienes, te recomiento que lo instales, te permite administrar el servidor de MySql desde el navegador web. Si no lo tienes, puedes bajartelo desde http://www.phpmyadmin.net/home_page/index.php

Tendrás que crear una base de datos en el servidor MySql si es que no la has creado ya y despues ejecutar una consulta sql con estos datos para que te cree la tabla con el campo que almacenará el valor del contador.


Este código va en un fichero que llamo contador.php
Código PHP:
<?php
 
/******************************************************************
  * Contador de visitas programado en PHP  *************************
  * Añadido el soporte de directorios por Rayder *******************
  ******************************************************************/ 
  
  /////////////////////////////////////////////////////////////
  //                           Conectar a base de datos local
  /////////////////////////////////////////////////////////////
  
DEFINE (DB_USER"Usuario_de_la_BaseDatos");
  
DEFINE (DB_PASSWORD"Contraseña_BaseDatos");
  
DEFINE (DB_HOST"IP_Servidor_BaseDatos");
  
DEFINE (DB_NAME"Nombre_BaseDatos");

  
/////////////////////////////////////////////////////////////
  //                           Conexión a mysql
  /////////////////////////////////////////////////////////////
  
$db_connection mysql_connect(DB_HOSTDB_USERDB_PASSWORD)
     or die(
Error_Mysql_Conect_DB());

  
//////////////////////////////////////////////////////////////
  //                           Seleccionar db
  //////////////////////////////////////////////////////////////
  
mysql_select_db (DB_NAME);


  

  
//Leer el valor del contador
  
$Sql "SELECT * FROM tbl_contador";
  
$Query mysql_query($Sql);
  
$Row mysql_fetch_array($Query);
  
  
$cuenta $Row["Contador"];
  
$cuenta $cuenta 1;
  
  for(
$i=0;$i<strlen($cuenta);$i++) {
    
$imagen substr($cuenta,$i,1);
    
$contador .= "<img alt='$imagen ' src='ContadorVisitas/$imagen.gif'>";
  }
   
  
  
//Imprimir el contador, si falla la carga de la imagen, se imprime el
  //número correspondiente
  
print ($contador);
  
  
//Incrementa el contador y actualiza la base de datos
  
  
$ActContador "UPDATE tbl_contador
                    SET Contador = '$cuenta'"
;
  
mysql_query($ActContador);
  
  
// Cerramos la conexión a la base de datos
  
$db_connection mysql_close($db_connection);
?>
La constantes:
DEFINE (DB_USER, "Usuario_de_la_BaseDatos");
DEFINE (DB_PASSWORD, "Contraseña_BaseDatos");
DEFINE (DB_HOST, "IP_Servidor_BaseDatos");
DEFINE (DB_NAME, "Nombre_BaseDatos");

son las que almacenan los datos de acceso a la base de datos y que tienes que sustituir por los datos que te ha facilitado tu proveerdor de hosting cuando creo tu base de datos, un ejemplo:


Los datos de conexión a un servidor de MySql ficticios:
Código PHP:
 DEFINE (DB_USER"Otnica");
 
DEFINE (DB_PASSWORD"123456");
 
DEFINE (DB_HOST"127.0.0.1");
 
DEFINE (DB_NAME"Basedato_pruebas"); 
para hacer uso del contador, pues algo como esto, suponiendo que el fichero contador.php esté en el raiz de su sitio, en el lugar que deseas que aparezca el contador
Código PHP:
<?php 
include("contador.php");
?>

Última edición por rayder; 21/03/2007 a las 04:39
  #6 (permalink)  
Antiguo 21/03/2007, 04:37
 
Fecha de Ingreso: agosto-2004
Mensajes: 118
Antigüedad: 15 años, 3 meses
Puntos: 1
Re: Contador y archivo Php

Se me olvidaba, los ficheros de images con las cifras tendrias que crearlos con un photoshop o algo parecido, si los quieres, te los puedo mandar por email a tu correo. Ya me diras.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:32.