Foros del Web » Programando para Internet » PHP »

Problema Contador de visitas sin db

Estas en el tema de Problema Contador de visitas sin db en el foro de PHP en Foros del Web. hola gente miren tengo este contador : index.php: Código PHP: <? $ip  =  $_SERVER [ 'REMOTE_ADDR' ]; $existe  =  0 ; $visitas  =  0 ; ...
  #1 (permalink)  
Antiguo 16/07/2009, 17:00
Avatar de danistrein  
Fecha de Ingreso: septiembre-2008
Ubicación: Salta Capital
Mensajes: 550
Antigüedad: 15 años, 7 meses
Puntos: 9
Pregunta Problema Contador de visitas sin db

hola gente miren tengo este contador :

index.php:
Código PHP:
<?
$ip 
$_SERVER['REMOTE_ADDR'];
$existe 0;
$visitas 0;
$fp fopen("visitantes.txt","r"); 
while(
$ip2 fgets($fp)){
$visitas++;
$ips .= $ip2;
if(
$ip.' ' == $ip2)$existe 1;
}
fclose($fp);
if(
$existe == 0){
$fp fopen("visitantes.txt","w+");
fwrite($fp$ip.' '.$ips);
fclose($fp);
}
echo 
'Visitas: '.$visitas.'';
?>
me guardas las ip pero el contador se queda en 1 xD y no sube segun las visitas :P me pueden decir cual es el error ?

Última edición por danistrein; 16/07/2009 a las 17:17
  #2 (permalink)  
Antiguo 16/07/2009, 20:46
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Problema Contador de visitas sin db

En lugar de $ip . ' ' . $ips (separados por un espacio) usa $ip . PHP_EOL . $ips (separados por un salto de línea)
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 17/07/2009, 07:57
Avatar de danistrein  
Fecha de Ingreso: septiembre-2008
Ubicación: Salta Capital
Mensajes: 550
Antigüedad: 15 años, 7 meses
Puntos: 9
Pregunta Respuesta: Problema Contador de visitas sin db

eh probado asi

Código PHP:
<?
$ip 
$_SERVER['REMOTE_ADDR'];
$existe 0;
$visitas 0;
$fp fopen("visitantes.txt","r"); 
while(
$ip2 fgets($fp)){
$visitas++;
$ips .= $ip2;
if(
$ip PHP_EOL $ip2)$existe 1;
}
fclose($fp);
if(
$existe == 0){
$fp fopen("visitantes.txt","w+");
fwrite($fp$ip.' '.$ips);
fclose($fp);
}
echo 
'Visitas: '.$visitas.'';
?>
pero no me da resultado :S
como puedo hacer?
  #4 (permalink)  
Antiguo 17/07/2009, 08:01
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Problema Contador de visitas sin db

Sigues teniendo el espacio al escribir:
Código php:
Ver original
  1. fwrite($fp, $ip.' '.$ips);
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 17/07/2009, 08:11
Avatar de danistrein  
Fecha de Ingreso: septiembre-2008
Ubicación: Salta Capital
Mensajes: 550
Antigüedad: 15 años, 7 meses
Puntos: 9
Pregunta Respuesta: Problema Contador de visitas sin db

jejej mira
Código PHP:
<?
$ip 
$_SERVER['REMOTE_ADDR'];
$existe 0;
$visitas 0;
$fp fopen("visitantes.txt","r"); 
while(
$ip2 fgets($fp)){
$visitas++;
$ips .= $ip2;
if(
$ip.' ' == $ip2)$existe 1;
}
fclose($fp);
if(
$existe == 0){
$fp fopen("visitantes.txt","w+");
fwrite($fp$ip PHP_EOL $ips);
fclose($fp);
}
echo 
'Visitas: '.$visitas.'';
?>
ahora si funciona , pero ahy otro problema xD ahora cada vez que actualizo la web me suma 1 visita XD, como se hace para que cuente solo 1 vez la misma ip?
  #6 (permalink)  
Antiguo 17/07/2009, 08:13
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Problema Contador de visitas sin db

Al comparar también debes usar PHP_EOL en lugar de un espacio.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #7 (permalink)  
Antiguo 17/07/2009, 08:24
Avatar de danistrein  
Fecha de Ingreso: septiembre-2008
Ubicación: Salta Capital
Mensajes: 550
Antigüedad: 15 años, 7 meses
Puntos: 9
Pregunta Respuesta: Problema Contador de visitas sin db

e probado asi :

Código PHP:
<?
$ip 
$_SERVER['REMOTE_ADDR'];
$existe 0;
$visitas 0;
$fp fopen("visitantes.txt","r"); 
while(
$ip2 fgets($fp)){
$visitas++;
$ips .= $ip2;
if(
$ipPHP_EOL $ip2)$existe 1;
}
fclose($fp);
if(
$existe == 0){
$fp fopen("visitantes.txt","w+");
fwrite($fp$ip PHP_EOL $ips);
fclose($fp);
}
echo 
'Visitas: '.$visitas.'';
?>
y no me funciona :S
  #8 (permalink)  
Antiguo 17/07/2009, 08:25
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema Contador de visitas sin db

mmm....

Código PHP:
<?php
$ip 
$_SERVER['REMOTE_ADDR'];
$existe 0;
$visitas 0;

$set file("visitantes.txt");

foreach (
$set as $line) {
  ++
$visitas;
  if (
$line == $ip$existe =1;
}

/*$fp = fopen("visitantes.txt","r"); 
while($ip2 = fgets($fp)){
$visitas++;
$ips .= $ip2;
if($ip . PHP_EOL . $ip2)$existe = 1;
}
fclose($fp);*/

if($existe == 0){
  
$set []= $ip;
  
$fp fopen("visitantes.txt","w+");
  
fwrite($fpjoin("\n"$set));
  
fclose($fp);
}


echo 
'Visitas: '.$visitas.'';
?>
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #9 (permalink)  
Antiguo 17/07/2009, 08:31
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: Problema Contador de visitas sin db

En el join es recomendable usar PHP_EOL como lo indico David para que su script sea más portable.

Saludos.
  #10 (permalink)  
Antiguo 17/07/2009, 08:32
Avatar de danistrein  
Fecha de Ingreso: septiembre-2008
Ubicación: Salta Capital
Mensajes: 550
Antigüedad: 15 años, 7 meses
Puntos: 9
probe tambien con el code de pateketrueke y no me da tampoco resultado :P

hola eh probado el code este :

Código PHP:
<?php
$ip 
$_SERVER['REMOTE_ADDR'];
$existe 0;
$visitas 0;

$set file("visitantes.txt");

foreach (
$set as $line) {
  ++
$visitas;
  if (
$line == $ip$existe =1;
}

/*$fp = fopen("visitantes.txt","r"); 
while($ip2 = fgets($fp)){
$visitas++;
$ips .= $ip2;
if($ip . PHP_EOL . $ip2)$existe = 1;
}
fclose($fp);*/

if($existe == 0){
  
$set []= $ip;
  
$fp fopen("visitantes.txt","w+");
  
fwrite($fpjoin("\n"$set));
  
fclose($fp);
}


echo 
'Visitas: '.$visitas.'';
?>
me pueden decir como ago para reemplasar esto ("\n") para que en el txt deje una linea para cada ip es decir ejemplo:

127.0.0.2
127.0.0.3
127.0.0.4
127.0.0.5
127.0.0.6

por que teniendo ("\n") se agrega asi:

127.0.0.2

127.0.0.3

127.0.0.4

127.0.0.5

127.0.0.6

y cada linea vacia me la cuenta en el contador

como puedo hacer?

Última edición por GatorV; 17/07/2009 a las 09:28
  #11 (permalink)  
Antiguo 17/07/2009, 09:27
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Problema Contador de visitas sin db

Al usar file(), los saltos de línea son incluídos al final de cada elemento del array, por lo que sería mejor usar join() con una cadena vacía en lugar de con un salto de línea (para evitar duplicar el salto)

P.S.: También hay que tomar en cuenta ese hecho al comparar si ya está registrada esa IP.
Otra opción es usar la bandera FILE_IGNORE_NEW_LINES paraque no se agregue ese salto.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #12 (permalink)  
Antiguo 17/07/2009, 09:28
Avatar de danistrein  
Fecha de Ingreso: septiembre-2008
Ubicación: Salta Capital
Mensajes: 550
Antigüedad: 15 años, 7 meses
Puntos: 9
Respuesta: Problema Contador de visitas sin db

jejej disculpa mi ignorancia , me dirias como hacerlo? xD no entiendo xD
  #13 (permalink)  
Antiguo 17/07/2009, 09:31
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema Contador de visitas sin db

Cita:
Iniciado por danistrein Ver Mensaje
jejej disculpa mi ignorancia , me dirias como hacerlo? xD no entiendo xD
la ignorancia se combate con voluntad...

si necesitas aprender a hacerlo, comienza por investigar el manual de PHP

http://www.php.net/manual/en/function.file.php


si no lo haces, dudo que te superes... además, de que nadie va a llevarte de la mano siempre!!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #14 (permalink)  
Antiguo 17/07/2009, 09:38
Avatar de danistrein  
Fecha de Ingreso: septiembre-2008
Ubicación: Salta Capital
Mensajes: 550
Antigüedad: 15 años, 7 meses
Puntos: 9
Respuesta: Problema Contador de visitas sin db

jajaj oks, xD mejor la ago mas facil uso uno con db xD mas facil xD, muchas gracias por la ayuda , lo mismo ahora me pongo a investigar para aprender bien eso :P suerte!
  #15 (permalink)  
Antiguo 17/07/2009, 09:43
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema Contador de visitas sin db

mira... buscando en el foro, no me tomo mas de un minuto...

http://www.forosdelweb.com/f18/usuarios-linea-695648/

__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #16 (permalink)  
Antiguo 17/07/2009, 09:53
Avatar de danistrein  
Fecha de Ingreso: septiembre-2008
Ubicación: Salta Capital
Mensajes: 550
Antigüedad: 15 años, 7 meses
Puntos: 9
Respuesta: Problema Contador de visitas sin db

xD si pero ese es para usuarios en line , yo busco el contador de visitas , estube buscando y la mayoria son con db :P
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 20:45.