Foros del Web » Programando para Internet » PHP »

no me va usuarios activos con txt

Estas en el tema de no me va usuarios activos con txt en el foro de PHP en Foros del Web. pues en todas partes esta este codigo para mostrar los usuarios que estan en linea, digamos 2 usuarios en linea, pero lo he probado desde ...
  #1 (permalink)  
Antiguo 02/07/2009, 17:34
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 7 meses
Puntos: 49
no me va usuarios activos con txt

pues en todas partes esta este codigo para mostrar los usuarios que estan en linea, digamos 2 usuarios en linea, pero lo he probado desde mis tres pc diferentes ip pero siempre me muestra que hay solo 1.... alguna sugerencia...
le faltara algo :/

Código php:
Ver original
  1. <?php
  2. // Usuarios activos con PHP sin utilizar bases de datos
  3.  
  4. // Tiempo en segundos en que expira la sesión.
  5. $fin_session = 600; // esto en segundos
  6.  
  7. // En usuarios.dat guardaremos el IP y hora en que el usuario inicio la sesión
  8. $arr = file("usuarios.dat");
  9. $contenido = $REMOTE_ADDR.":".time()." ";
  10.  
  11. for ( $i = 0 ; $i < sizeof($arr) ; $i++ )
  12. {
  13. $tmp = explode(":",$arr[$i]);
  14. if (( $tmp[0] != $REMOTE_ADDR ) && (( time() - $tmp[1] ) < $fin_session ))
  15. {
  16. $contenido .= $REMOTE_ADDR.":".time()." ";
  17. }
  18. }
  19.  
  20. $fp = fopen("usuarios.dat","w");
  21. fputs($fp,$contenido);
  22. fclose($fp);
  23.  
  24. $array = file("usuarios.dat");
  25.  
  26. $USUARIOS_ACTIVOS = count($array);
  27.  
  28. // Imprimimos la cantiadad de usuarios activos
  29. echo "Hay ".$USUARIOS_ACTIVOS." usuarios activos";
  30. ?>
__________________
Gokuh Salvo al mundo. PUNTO!!!!
  #2 (permalink)  
Antiguo 02/07/2009, 17:51
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: no me va usuarios activos con txt

Cita:
pero lo he probado desde mis tres pc diferentes ip pero siempre me muestra que hay solo 1
Suponiendo que ya tienes el codigo subido en tu servidor de internet,
¿Esas 3 PC comparten el mismo Internet?
  #3 (permalink)  
Antiguo 02/07/2009, 17:59
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 7 meses
Puntos: 49
Respuesta: no me va usuarios activos con txt

si comparten el mismo internet, pero tengo otro código por ejemplo, que me guarda las visitas eso lo hago con mysql y agarro las ip, y me funciona en mis 3 pc, todos traen ip's diferentes.... entonces si funciona ese, este debería ir bien también, ahora que veo el archivo de texto que se crea, como que suprime las antiguas entradas por la nueva :/
__________________
Gokuh Salvo al mundo. PUNTO!!!!
  #4 (permalink)  
Antiguo 02/07/2009, 19:53
Avatar de acoevil  
Fecha de Ingreso: julio-2008
Ubicación: localhost/colombia/sevillaValle.php
Mensajes: 1.123
Antigüedad: 15 años, 9 meses
Puntos: 32
Respuesta: no me va usuarios activos con txt

Q tal, si quieres puedes utilizar esta clase que permite hacer lo que quieres
http://www.forosdelweb.com/wiki/PHP:...con_un_.txt%3F
  #5 (permalink)  
Antiguo 02/07/2009, 20:16
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 7 meses
Puntos: 49
Respuesta: no me va usuarios activos con txt

me da error en php4 : Parse error: parse error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in g:\proyect\web\usuarios.php on line 5
__________________
Gokuh Salvo al mundo. PUNTO!!!!
  #6 (permalink)  
Antiguo 02/07/2009, 20:24
Avatar de acoevil  
Fecha de Ingreso: julio-2008
Ubicación: localhost/colombia/sevillaValle.php
Mensajes: 1.123
Antigüedad: 15 años, 9 meses
Puntos: 32
Respuesta: no me va usuarios activos con txt

En la que te pase?
  #7 (permalink)  
Antiguo 02/07/2009, 20:28
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 7 meses
Puntos: 49
Respuesta: no me va usuarios activos con txt

sep me da error...., pero pa mi que es por el private :/
__________________
Gokuh Salvo al mundo. PUNTO!!!!
  #8 (permalink)  
Antiguo 02/07/2009, 20:30
Avatar de acoevil  
Fecha de Ingreso: julio-2008
Ubicación: localhost/colombia/sevillaValle.php
Mensajes: 1.123
Antigüedad: 15 años, 9 meses
Puntos: 32
Respuesta: no me va usuarios activos con txt

Ui que raro pegalo asi


<?php

class Activos
{
//creado por acoevil
private $nombre;
private $modo;
private $ip;
private $inactivo=300;
private $hora;
private $activos=0;

function Activos($nombre)
{
$this->nombre=$nombre;
$this->modo="r";
$this->ip=$_SERVER['REMOTE_ADDR'];
$this->hora=$tiempo=date("h:i:s");
################################
$apuntador=$this->abrir();
$usuarios=$this->leer($apuntador);
$this->escribimos($usuarios);
echo "Usuarios en linea: ".$this->activos;
}
function abrir()
{
$apuntador=fopen($this->nombre,$this->modo);
return $apuntador;
}
function leer($apuntador)
{
while(!feof($apuntador))
{
$linea=fgets($apuntador);
list($ip,$tiempo_t)=split(" ",$linea);
if($ip==$this->ip)
{
$mi_ip=$this->ip." ".$this->hora;
$this->activos++;
}
else
{
if(strtotime($this->hora)>strtotime($tiempo_t)){
$diferencia=strtotime($this->hora)-strtotime($tiempo_t);
}else{
$diferencia=strtotime($tiempo_t)-strtotime($this->hora);
}



if($diferencia<$this->inactivo)
{
$tx=$tx.$ip." ".$tiempo_t."\n";
$this->activos++;
}
}

}
if($mi_ip=="")
{
$mi_ip=$this->ip." ".$this->hora;
$this->activos++;
}
fclose($apuntador);
return $introduce=$tx.$mi_ip;

}
function escribimos($usuarios)
{
$fp=fopen($this->nombre,"w");
fwrite($fp,$usuarios);
fclose($fp);


}
}
$usuarios=new Activos("usuarios.txt");


?>
  #9 (permalink)  
Antiguo 02/07/2009, 20:37
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 7 meses
Puntos: 49
Respuesta: no me va usuarios activos con txt

nops me sigue dando error : linea 5
Parse error: parse error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in g:\proyect\web\activos.php on line 5

private $nombre;

seguro que esta clase es para php5 yo tengo php4, no me reconoce private....

edito : cambie los private por var
y anda pero no se aun si funciona del todo, provare desde las otras maquinas y te cuento ;)
__________________
Gokuh Salvo al mundo. PUNTO!!!!
  #10 (permalink)  
Antiguo 02/07/2009, 20:42
Avatar de acoevil  
Fecha de Ingreso: julio-2008
Ubicación: localhost/colombia/sevillaValle.php
Mensajes: 1.123
Antigüedad: 15 años, 9 meses
Puntos: 32
Respuesta: no me va usuarios activos con txt

Si es para php5
  #11 (permalink)  
Antiguo 02/07/2009, 21:24
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 7 meses
Puntos: 49
Respuesta: no me va usuarios activos con txt

te cuento que cambiando los private a var funciona tanto para php4 y 5 probado y hace bien la suma ;)

saludos y gracias....
__________________
Gokuh Salvo al mundo. PUNTO!!!!
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 21:57.