Foros del Web » Programando para Internet » PHP »

ayuda con usuarios online

Estas en el tema de ayuda con usuarios online en el foro de PHP en Foros del Web. miren aqui hise este coigos peor no funciona del todo bien, el error es que el mismo usuario lo pone varias veces pongo aquie l ...
  #1 (permalink)  
Antiguo 28/10/2008, 22:50
 
Fecha de Ingreso: diciembre-2007
Mensajes: 927
Antigüedad: 18 años, 9 meses
Puntos: 12
ayuda con usuarios online

miren aqui hise este coigos peor no funciona del todo bien, el error es que el mismo usuario lo pone varias veces pongo aquie l codigo

Código PHP:
<? 
include("conectar.php");
$inactivo=300; //tiempo en segundos en que un usuario estará inactivo
 
$sql = "SELECT * FROM activos";
$result = mysql_query($sql) or die (mysql_error());
$row = mysql_fetch_array($result);

$ip = $_SERVER['REMOTE_ADDR'];

$ano = date('Y');
$mes = date('m');
$dia = date('j');
$hora = date('H');
$min = date('i');
$sec = date('s');

do{
$ano2 = $row['ano'];
$mes2 = $row['mes'];
$dia2 = $row['dia'];
$hora2 = $row['hora'];
$min2 = $row['min'];
$sec2 = $row['sec'];

$time = ($ano * 31536000)+($mes * 2592000)+($dia * 3600)+($min * 60)+$sec;
$time2 = ($ano2 * 31536000)+($mes2 * 2592000)+($dia2 * 3600)+($min2 * 60)+$sec2;

if(
$time > $time2) {
$sql_del = "UPDATE activos SET activo=1 WHERE ip='$ip'";
mysql_query($sql_del) or die (mysql_error());
}else{
$sql_ac = "UPDATE activos SET activo=0 WHERE ip='$ip'";
mysql_query($sql_ac) or die (mysql_error());
}
}while(
$row = mysql_fetch_array($result));

$sql_ip = "SELECT ip FROM activos";
$result_ip = mysql_query($sql_ip) or die (mysql_error());
$row_ip = mysql_fetch_array($result_ip);

if(
in_array($ip, $row_ip)) {
$sql_up = "UPDATE activos SET ano='$ano', mes='$mes', dia='$dia', hora='$hora', min='$min', sec='$sec', activo=0 WHERE ip='$ip'";
mysql_query($sql_up) or die (mysql_error());
}else{
$sql_in = "INSERT INTO activos (ip, ano, mes, dia, hora, min, sec, activo) VALUES ('$ip', '$ano', '$mes', '$dia', '$hora', '$min', '$sec', 0)";
mysql_query($sql_in) or die (mysql_error());
}
?>
  #2 (permalink)  
Antiguo 29/10/2008, 02:54
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 21 años
Puntos: 49
Respuesta: ayuda con usuarios online

y donde imprimes los usuarios :/
__________________
Gokuh Salvo al mundo. PUNTO!!!!
  #3 (permalink)  
Antiguo 29/10/2008, 10:48
 
Fecha de Ingreso: diciembre-2007
Mensajes: 927
Antigüedad: 18 años, 9 meses
Puntos: 12
EDIT:

Bueno con este nuevo codigo lo que pasa es que a los inactivos jamas los detecta y pues lo que pone al usuario 2 veces o mas aun no lo he probado pero creo que es minimo.

salu2

Código PHP:
<? 
include("conectar.php");
 
$sql = "SELECT * FROM activos WHERE activo=0";
$result = mysql_query($sql) or die (mysql_error());
$row = mysql_fetch_array($result);

$ip = $_SERVER['REMOTE_ADDR'];

$ano = date('Y');
$mes = date('m');
$dia = date('j');
$hora = date('H');
$min = date('i');
$sec = date('s');

do{
if(
$row['ano']>$ano) {
}elseif(
$row['mes']>$mes) {
}elseif(
$row['dia']>$dia) {
}elseif(
$row['ano']<$ano) {
$sql_del = "UPDATE activos SET activo=1 WHERE ip='$ip'";
mysql_query($sql_del) or die (mysql_error());
}elseif(
$row['mes']<$mes) {
$sql_del = "UPDATE activos SET activo=1 WHERE ip='$ip'";
mysql_query($sql_del) or die (mysql_error());
}elseif(
$row['dia']<$dia) {
$sql_del = "UPDATE activos SET activo=1 WHERE ip='$ip'";
mysql_query($sql_del) or die (mysql_error());
}elseif(
$row['hora']>$hora) {
}elseif(
$row['hora']<$hora) {
$sql_del = "UPDATE activos SET activo=1 WHERE ip='$ip'";
mysql_query($sql_del) or die (mysql_error());
}elseif(
$row['min']>$min) {
}elseif(
$row['min']<$min) {
$sql_del = "UPDATE activos SET activo=1 WHERE ip='$ip'";
mysql_query($sql_del) or die (mysql_error());
}elseif(
$row['sec']>$sec) {
}elseif(
$row['sec']<$sec) {
$sql_del = "UPDATE activos SET activo=1 WHERE ip='$ip'";
mysql_query($sql_del) or die (mysql_error());
}
}while(
$row = mysql_fetch_array($result));

$sql_ip = "SELECT ip FROM activos";
$result_ip = mysql_query($sql_ip) or die (mysql_error());
$row_ip = mysql_fetch_array($result_ip);

$min += (5);

if(
in_array($ip, $row_ip)) {
$sql_up = "UPDATE activos SET ano='$ano', mes='$mes', dia='$dia', hora='$hora', min='$min', sec='$sec', activo=0 WHERE ip='$ip'";
mysql_query($sql_up) or die (mysql_error());
}else{
$sql_in = "INSERT INTO activos (ip, ano, mes, dia, hora, min, sec, activo) VALUES ('$ip', '$ano', '$mes', '$dia', '$hora', '$min', '$sec', 0)";
mysql_query($sql_in) or die (mysql_error());
}
?>
Edit:
Lo probe una tarde completa y pues si me suige poninedo varias veces la misma ip :P

Última edición por Edig; 29/10/2008 a las 17:19
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 05:28.