Foros del Web » Programando para Internet » PHP »

APORTE: Contador de visitas usando un archivo TXT y la BD

Estas en el tema de APORTE: Contador de visitas usando un archivo TXT y la BD en el foro de PHP en Foros del Web. Hola, cree este contador de visitas que cuenta una visita por IP por día. Si se puede mejorar el código diganme. Código PHP: <? $result  ...
  #1 (permalink)  
Antiguo 29/03/2008, 13:19
Avatar de hgp147  
Fecha de Ingreso: diciembre-2006
Ubicación: Buenos Aires, Argentina
Mensajes: 980
Antigüedad: 17 años, 10 meses
Puntos: 36
APORTE: Contador de visitas usando un archivo TXT y la BD

Hola, cree este contador de visitas que cuenta una visita por IP por día.
Si se puede mejorar el código diganme.


Código PHP:
<?

$result 
mysql_query("SELECT visitas FROM data WHERE usuario='$usuario'");

$row mysql_fetch_array($result);

$visitas $row["visitas"];




$fecha date("Y-m-d");

$ip $_SERVER['REMOTE_ADDR'];



$fp file_get_contents("ip.txt","r");


// Si la IP no existe y si es ese mismo día

if (!preg_match("/$ip/i"$fp) && date("Y-m-d"filemtime("ip.txt")) == $fecha) {

$fh fopen("ip.txt"'a');

fwrite($fh"$ip; ");

fclose($fh);

$contar_visita "si";

// Si la fecha de modificación es distinta a la de hoy

}else if(date("Y-m-d"filemtime("ip.txt")) != $fecha){

$fh fopen("ip.txt"'w');

fwrite($fh"$ip; ");

fclose($fh);

$contar_visita "si";

}



if(
$contar_visita == "si"){

$visitas++;

mysql_query("UPDATE data SET

visitas = '$visitas'

WHERE usuario='$usuario'"
);

}


?>
__________________
Spread Firefox | Download Day 2008
¡Únete en nuestra misión para alcanzar el Record Guinness al software más descargado en 24 horas! http://www.spreadfirefox.com/es-ES/worldrecord/

Última edición por hgp147; 29/03/2008 a las 15:07 Razón: Corrección de código
  #2 (permalink)  
Antiguo 29/03/2008, 17:39
okram
Invitado
 
Mensajes: n/a
Puntos:
Re: APORTE: Contador de visitas usando un archivo TXT y la BD

Gracias por el interés. Sería posible que nos compartieras también la estructura de la tabla data, y ciertos aspectos, como de donde viene la variable $usuario?

Saludos,
  #3 (permalink)  
Antiguo 29/03/2008, 18:21
Avatar de hgp147  
Fecha de Ingreso: diciembre-2006
Ubicación: Buenos Aires, Argentina
Mensajes: 980
Antigüedad: 17 años, 10 meses
Puntos: 36
Re: APORTE: Contador de visitas usando un archivo TXT y la BD

Hola okram, la variable $usuario la uso para contar las visitas que tiene cada fotolog de mi página web, no es necesaria si el contador se utiliza para contar las visitas de toda una web. Para eso hay que eliminar el WHERE usuario='$usuario', queda así:



Código PHP:
<?

$result 
mysql_query("SELECT visitas FROM data");

$row mysql_fetch_array($result);

$visitas $row["visitas"];




$fecha date("Y-m-d");

$ip $_SERVER['REMOTE_ADDR'];



$fp file_get_contents("ip.txt","r");


// Si la IP no existe y si es ese mismo día

if (!preg_match("/$ip/i"$fp) && date("Y-m-d"filemtime("ip.txt")) == $fecha) {

$fh fopen("ip.txt"'a');

fwrite($fh"$ip; ");

fclose($fh);

$contar_visita "si";

// Si la fecha de modificación es distinta a la de hoy

}else if(date("Y-m-d"filemtime("ip.txt")) != $fecha){

$fh fopen("ip.txt"'w');

fwrite($fh"$ip; ");

fclose($fh);

$contar_visita "si";

}



if(
$contar_visita == "si"){

$visitas++;

mysql_query("UPDATE data SET

visitas = '$visitas'

"
);

}


?>
La tabla data tiene un solo campo llamado visitas
__________________
Spread Firefox | Download Day 2008
¡Únete en nuestra misión para alcanzar el Record Guinness al software más descargado en 24 horas! http://www.spreadfirefox.com/es-ES/worldrecord/
  #4 (permalink)  
Antiguo 21/12/2008, 15:58
Avatar de kerze  
Fecha de Ingreso: julio-2006
Mensajes: 28
Antigüedad: 18 años, 4 meses
Puntos: 0
Respuesta: APORTE: Contador de visitas usando un archivo TXT y la BD

con esto implemento mas a una pagina que toy elaborando
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

SíEste tema le ha gustado a 2 personas




La zona horaria es GMT -6. Ahora son las 09:16.