Foros del Web » Programando para Internet » PHP »

Sesiones online

Estas en el tema de Sesiones online en el foro de PHP en Foros del Web. Buenos días a todos espero me puedan ayudar con lo siguiente, estoy diseñando una aplicativo web en php y mysql, lo que necesito hacer es ...
  #1 (permalink)  
Antiguo 07/03/2011, 08:53
 
Fecha de Ingreso: marzo-2011
Mensajes: 49
Antigüedad: 13 años, 1 mes
Puntos: 0
Exclamación Sesiones online

Buenos días a todos espero me puedan ayudar con lo siguiente, estoy diseñando una aplicativo web en php y mysql, lo que necesito hacer es ingresar a un modulo y ver que usuarios están logueados en el momento y si es posible desloguearlos, la verdad no se si toca hacer una comparación de sesiones activas o algo asi espero me puedan ayudar o almenos dar una idea, gracias de antemano.
  #2 (permalink)  
Antiguo 07/03/2011, 09:01
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 18 años, 11 meses
Puntos: 394
Respuesta: Sesiones online

Con SESIONES es bastante dificil y adicional a eso un error de seguridad impresionante ya que tendrias que dar acceso al archivo donde se almacenan todas las sesiones de los usuarios...

session_save_path() en el apache.

Acá te dejo como hacerlo con ese sistema pero te digo que es un problema de seguridad

La otra forma es hacerlo con la base de datos almacenando la fecha y hora en la que el usuario inicio la sesión

Acá esta el que utiliza la base de datos.
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #3 (permalink)  
Antiguo 07/03/2011, 09:21
 
Fecha de Ingreso: marzo-2011
Mensajes: 49
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Sesiones online

Cita:
Iniciado por jotaincubus Ver Mensaje
Con SESIONES es bastante dificil y adicional a eso un error de seguridad impresionante ya que tendrias que dar acceso al archivo donde se almacenan todas las sesiones de los usuarios...

session_save_path() en el apache.

[URL="http://sentidoweb.com/2007/09/04/obtener-usuarios-conectados-en-php-de-forma-rapida.php"] Acá[/URL] te dejo como hacerlo con ese sistema pero te digo que es un problema de seguridad

La otra forma es hacerlo con la base de datos almacenando la fecha y hora en la que el usuario inicio la sesión

[URL="http://www.desarrolloweb.com/articulos/615.php"] Acá[/URL] esta el que utiliza la base de datos.
bueno pues gracias por su pronta respuesta, este codigo lo he estado mirando, lo unico que he modificado de este codigo es los datos de la conexion a la base de datos pero mmm no me ingresa la ip ni la fecha a la base de datos lo que hago es in include("conexion.php");
  #4 (permalink)  
Antiguo 07/03/2011, 09:28
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 18 años, 11 meses
Puntos: 394
Respuesta: Sesiones online

Pero ya tienes el campo IP y todos los campos que el tutorial explica en tus tablas ???? no es solo cambiar la conexión a la base de datos.
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #5 (permalink)  
Antiguo 07/03/2011, 09:35
 
Fecha de Ingreso: marzo-2011
Mensajes: 49
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Sesiones online

Cita:
Iniciado por jotaincubus Ver Mensaje
Pero ya tienes el campo IP y todos los campos que el tutorial explica en tus tablas ???? no es solo cambiar la conexión a la base de datos.
si incluso ahi nos dan la sentencia sql para crear la tabla y sus campos, ya la cree en mi base de datos
  #6 (permalink)  
Antiguo 07/03/2011, 09:37
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 18 años, 11 meses
Puntos: 394
Respuesta: Sesiones online

muéstranos el código para ver como lo estas haciendo...
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #7 (permalink)  
Antiguo 07/03/2011, 09:48
 
Fecha de Ingreso: marzo-2011
Mensajes: 49
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Sesiones online

<?
////////////////////////////////////////////
//USUARIOS ACTIVOS
//Calcula el numero de usuarios activos
////////////////////////////////////////////

function usuarios_activos()
{
//permitimos el uso de la variable portadora del numero ip en nuestra funcion
global $REMOTE_ADDR;

//asignamos un nombre memotecnico a la variable
$ip = $REMOTE_ADDR;
//definimos el momento actual
$ahora = time();

include ("conexion.php");

//actualizamos la tabla
//borrando los registros de las ip inactivas (24 minutos)
$limite = $ahora-24*60;
$ssql = "delete from control_ip where fecha < ".$limite;
mysql_query($ssql);

//miramos si el ip del visitante existe en nuestra tabla
$ssql = "select ip, fecha from control_ip where ip = '$ip'";
$result = mysql_query($ssql);

//si existe actualizamos el campo fecha
if (mysql_num_rows($result) != 0) $ssql = "update control_ip set fecha = ".$ahora." where ip = '$ip'";
//si no existe insertamos el registro correspondiente a la nueva sesion
else $ssql = "insert into control_ip (ip, fecha) values ('$ip', $ahora)";

//ejecutamos la sentencia sql
mysql_query($ssql);

//calculamos el numero de sesiones
$ssql = "select ip from control_ip";
$result = mysql_query($ssql);
$usuarios = mysql_num_rows($result);

//liberamos memoria
mysql_free_result($result);

//devolvemos el resultado
return $usuarios;
}
?>
  #8 (permalink)  
Antiguo 07/03/2011, 09:49
 
Fecha de Ingreso: marzo-2011
Mensajes: 49
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Sesiones online

y pues la sentencia sql
CREATE TABLE control_ip (
ip VARCHAR(15) NOT NULL,
fecha INT(14) UNSIGNED NOT NULL,
INDEX (ip)
);
  #9 (permalink)  
Antiguo 07/03/2011, 10:08
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 18 años, 11 meses
Puntos: 394
Respuesta: Sesiones online

Y donde llamas la funcion ? sigue leyendo el tutorial... ahi te muestran como hacer un llamado a dicha funcion para que se ejecute.
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #10 (permalink)  
Antiguo 07/03/2011, 10:28
 
Fecha de Ingreso: marzo-2011
Mensajes: 49
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Sesiones online

Cita:
Iniciado por jotaincubus Ver Mensaje
Y donde llamas la funcion ? sigue leyendo el tutorial... ahi te muestran como hacer un llamado a dicha funcion para que se ejecute.
la llamada de esta funcion $active_users = usuarios_activos(); se llama dentro de la función o afuera yo la realice asi pero me manda unos errores

function usuarios_activos()
{

include ("conexion.php");
//permitimos el uso de la variable portadora del numero ip en nuestra funcion
global $REMOTE_ADDR;

//asignamos un nombre memotecnico a la variable
$ip = $REMOTE_ADDR;
//definimos el momento actual
$ahora = time();

//actualizamos la tabla
//borrando los registros de las ip inactivas (24 minutos)
$limite = $ahora-24*60;
$ssql = "delete from control_ip where fecha < ".$limite;
mysql_query($ssql);

//miramos si el ip del visitante existe en nuestra tabla
$ssql = "select ip, fecha from control_ip where ip = '$ip'";
$result = mysql_query($ssql);

//si existe actualizamos el campo fecha
if (mysql_num_rows($result) != 0) $ssql = "update control_ip set fecha = ".$ahora." where ip = '$ip'";
//si no existe insertamos el registro correspondiente a la nueva sesion
else $ssql = "insert into control_ip (ip, fecha) values ('$ip', $ahora)";

//ejecutamos la sentencia sql
mysql_query($ssql);

//calculamos el numero de sesiones
$ssql = "select ip from control_ip";
$result = mysql_query($ssql);
$usuarios = mysql_num_rows($result);

//liberamos memoria
mysql_free_result($result);

//devolvemos el resultado
return $usuarios;
}

$active_users = usuarios_activos();


los errores que me aparecen son los siguientes
Warning: mysql_query() [function.mysql-query]: Access denied for user 'ODBC'@'localhost' (using password: NO) in C:\xampp\htdocs\ping.php on line 24

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in C:\xampp\htdocs\ping.php on line 24

Warning: mysql_query() [function.mysql-query]: Access denied for user 'ODBC'@'localhost' (using password: NO) in C:\xampp\htdocs\ping.php on line 28

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in C:\xampp\htdocs\ping.php on line 28

Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\ping.php on line 31

Warning: mysql_query() [function.mysql-query]: Access denied for user 'ODBC'@'localhost' (using password: NO) in C:\xampp\htdocs\ping.php on line 36

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in C:\xampp\htdocs\ping.php on line 36

Warning: mysql_query() [function.mysql-query]: Access denied for user 'ODBC'@'localhost' (using password: NO) in C:\xampp\htdocs\ping.php on line 40

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in C:\xampp\htdocs\ping.php on line 40

Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\ping.php on line 41

Warning: mysql_free_result() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\ping.php on line 44
  #11 (permalink)  
Antiguo 07/03/2011, 10:39
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Sesiones online

el error que te da es de conexion a la base de datos
Cita:

Warning: mysql_query() [function.mysql-query]: Access denied for user 'ODBC'@'localhost' (using password: NO) in C:\xampp\htdocs\ping.php on line 24
especificamente en el mysql_connect, verifica bien que los parametros que le estas pasando a este sean correctos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #12 (permalink)  
Antiguo 07/03/2011, 10:49
 
Fecha de Ingreso: marzo-2011
Mensajes: 49
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Sesiones online

Cita:
Iniciado por carlos_belisario Ver Mensaje
el error que te da es de conexion a la base de datos

especificamente en el [URL="http://php.net/manual/en/function.mysql-connect.php"]mysql_connect[/URL], verifica bien que los parametros que le estas pasando a este sean correctos
listo muchas gracias por su ayuda tenia un error en los parámetros ya me funciono gracias

Etiquetas: sesiones
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 19:31.