Foros del Web » Programando para Internet » PHP »

Que Sepan Cuando Estoy Conectado

Estas en el tema de Que Sepan Cuando Estoy Conectado en el foro de PHP en Foros del Web. Hola a todos de nuevo. Vamos a ver si alguien me puede ayudar: Resulta que intento hacer un sistema para que, almacenando la ip de ...
  #1 (permalink)  
Antiguo 11/09/2005, 20:00
 
Fecha de Ingreso: agosto-2005
Mensajes: 28
Antigüedad: 12 años, 4 meses
Puntos: 0
Que Sepan Cuando Estoy Conectado

Hola a todos de nuevo. Vamos a ver si alguien me puede ayudar:

Resulta que intento hacer un sistema para que, almacenando la ip de los usuarios que entren, en un archivo .txt, pueda el servidor a traves de PHP, distinguir las ip e identificar la mia, para visualizar a los usuarios, que yo (webmaster) estoy conectado.

Estoy utilizando para escribir las ip's el siguiente codigo fopen()


<? $archivo="usuarios.txt";

$res.="$REMOTE_ADDR \n";

$fp=fopen($archivo,"w");

fwrite ($fp,$res);

fclose($fp);

?>


y aqui es donde vienen mis dudas, ya que no se como hacer para que a traves de la función de lectura de fopen(), lea las lineas que se van creando en el archivo de texto, e identifique de entre todas ellas mi ip (que es estatica), y visualice que estoy conectado.

y el segundo problema es ¿como puedo borrar las ip's que ya no estan visualizando la pagina, para que no se queden siempre de por vida en el archivo de texto?

Encontré un codigo aqui en forosdelweb, que reconoce de un archivo de texto las ip's y las diferencia, para que nunca se cuenten ip's iguales, y que las cuenta, poniendo los usuarios conectados en el momento.

Yo creo que a partir de este codigo php, se puede hacer, pero como aun no soy muy experto, y me lio, he intentado modificarlo y no me de resultado.

Les dejo también el codigo para ver si se puede modificar desde éste y si no se puede, a ver si pueden por favor ponerme el codigo que debo usar o que otra manera hay. Las bases MySQL aun no las manejo bien tp. Sé que pido bastante pero si me pudieran hacer el favor se lo agradecia mucho, gracias, Alberto

Codigo PHP:

<? $archivo="usuarios.txt";

$inactivo=600;

$contar=0;

$fp=fopen($archivo,"r");

$tiempo=time();

$contenido=fread($fp,filesize($archivo));

fclose($fp);

$lineas=split("\n",$contenido);

$filas=file($archivo);

for ($a=0; $a < sizeof($filas); $a++) {

$datos=split(':',$lineas[$a]);

$descontar=$tiempo-$inactivo;

if ($datos[0] != $REMOTE_ADDR && $datos[1] > ($descontar)) {

$res.= $datos[0].":".$datos[1]."\n";

$contar++;

}}

$res.="$REMOTE_ADDR:$tiempo\n";

$contar++;

$fp=fopen($archivo,"w");

fwrite ($fp,$res);

fclose($fp);

if ($contar==1){$contar="1 usuario activo";}else{$contar="$contar usuarios activos";}

echo $contar;

?>

  #2 (permalink)  
Antiguo 11/09/2005, 20:51
 
Fecha de Ingreso: junio-2005
Mensajes: 981
Antigüedad: 12 años, 6 meses
Puntos: 2
Primero que nada, necesitas guardar todas las ip? porque seria más simple que hagas algo como esto.
Código PHP:
if($REMOTE_ADDR == "TU IP")
{
//Codigo para guardar hora en que entraste
}

//Codigo que verifica que no alla pasado mas de 5 minutos de tu ultima
//actividad en la web, si pasaron mas de 5 minutos te muestra desconectado
//y sino conectado 
Ten OJO con la variable $REMOTE_ADDR ya que sino me equivoco y tienes las register_globals a OFF no te servira. Para obtener el resultado del tiempo que paso entre dos horas tienes muchas funciones y fue bastante tratado el tema, por favor usa el buscador del foro.Lo restante te ocupas tu, ya que como dices es demasiado lo que pides.

Otra cosa, cuando pongas codigo PHP trata de usar los tag para que sea coloreado, es mas facil de visualizar.

Saludos.
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:39.