Foros del Web » Programando para Internet » PHP »

Contador de Visitas

Estas en el tema de Contador de Visitas en el foro de PHP en Foros del Web. Hola a todos, espero y me puedan ayudar el problema es el siguiente: Estoy creando un contador de visitas con php y archivos, el codigo ...
  #1 (permalink)  
Antiguo 16/09/2009, 07:33
 
Fecha de Ingreso: mayo-2009
Ubicación: Stgo. Pinotepa Nacional Oaxaca
Mensajes: 34
Antigüedad: 15 años
Puntos: 0
Contador de Visitas

Hola a todos, espero y me puedan ayudar el problema es el siguiente:

Estoy creando un contador de visitas con php y archivos, el codigo del archivo es este:
public function visitas()
{
$ip = $_SERVER['REMOTE_ADDR'];
$existe = 0;
$visitas = 0;
$ips = 0;
$archivo = "visitantes.txt";

//Pregunto si existe el archivo visitas si no lo creo
if (file_exists($archivo))
{
$fp = fopen($archivo,"r");
}
else
{
$fp = fopen($archivo,"w+");
}
while($ip2 = fgets($fp))
{
$visitas++;
$ips .= $ip2;
if($ip.' ' == $ip2)$existe = 1;
}
fclose($fp);
if($existe == 0)
{
$fp = fopen("visitantes.txt","w+"); //no olvidar crear al archivo visitantes.txt y poner el path correcto
fwrite($fp, $ip.' '.$ips);
fclose($fp);
}
echo $visitas;


Pero solo me muestra siempre una visita, y cuando abro el archivo "visitantes.txt" me manda esto:
187.132.150.17 0187.132.150.17 0189.188.165.89


Todas la direcciones Ips con un 0 antes y no entiendo porque sucede....
  #2 (permalink)  
Antiguo 16/09/2009, 12:21
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Contador de Visitas

Tema trasladado desde PHP Orientado a Objetos.
  #3 (permalink)  
Antiguo 16/09/2009, 13:07
Avatar de zeuslife  
Fecha de Ingreso: enero-2008
Ubicación: Madrid
Mensajes: 533
Antigüedad: 16 años, 4 meses
Puntos: 11
Respuesta: Contador de Visitas

La verdad, no entiendo que es lo que falla realmente, luego probaré el código y veré que falla, pero así de primeras, yo llevaria el recuento de visitas por DB en vez de por archivo. Es más manejable, más seguro, etc, y te vasta con una tabla, una consulta para ver si existe la ip, y si no, agregarla a la DB.

Un Saludo!
  #4 (permalink)  
Antiguo 17/09/2009, 12:38
 
Fecha de Ingreso: mayo-2009
Ubicación: Stgo. Pinotepa Nacional Oaxaca
Mensajes: 34
Antigüedad: 15 años
Puntos: 0
Respuesta: Contador de Visitas

zeuslife porfavor ayudame, con ese codigo o con este que estoy probando para mi sitio web contador de visitas PHP y MySQL, pero al igual tampoco me funciona....
Estoy utilizando una clase que se llama Conexión BD y es ahi dond estoy almacenando mi conexion a la BD
function Contar_Visitas($aniodesde, $mesdesde, $diadesde)
{
try
{
$conBD = new ConexionBD();
$conBD->setConectar();
$cSQL = $conBD->getSQL("select count(*) from visitas where fecha >= '$aniodesde-$mesdesde-$diadesde'");
if($datos=$conBD->getDatos($cSQL))
{
return $datos[0];
}
else
{
return(0);
}
$conBD->setCerrar();
}
catch(Exception $ex)
{
throw new Exception($ex->getMessage());
}
}


Y la otra función:
function Registrar_Visita($IDUSER)
{
$fecha=date('Y-m-d H:i:s'); // Fecha y hora actual
/* --------------------------------------------------
Primero hacemos una consulta para ver si ese mismo
usuario ya está registrado el día de hoy.
------------------------------------------------- */
try
{
$conBD = new ConexionBD();
$conBD->setConectar();
$cSQL = $conBD->getSQL("select * from visitas where direccion_ip='$IDUSER' and year(fecha)=year(CURDATE()) and month(fecha)=month(CURDATE()) and DAYOFMONTH(fecha)=DAYOFMONTH(CURDATE())");
if(mysql_num_rows($cSQL) == 0)
{
$sql = "INSERT INTO visitas VALUES(NULL,'$IDUSER','$fecha')";
$conBD->setSQL($sql);
}
$conBD->setCerrar();
}
catch(Exception $ex)
{
throw new Exception($ex->getMessage());
}
}
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 02:26.