Foros del Web » Programando para Internet » PHP »

Control de visitantes online

Estas en el tema de Control de visitantes online en el foro de PHP en Foros del Web. Hola todos y feliz año nuevo! Les cuento que tengo una web en php y si bien no tiene registro de usuarios me gustaria controlar ...
  #1 (permalink)  
Antiguo 01/01/2013, 13:46
 
Fecha de Ingreso: agosto-2012
Mensajes: 38
Antigüedad: 11 años, 7 meses
Puntos: 0
Pregunta Control de visitantes online

Hola todos y feliz año nuevo!
Les cuento que tengo una web en php y si bien no tiene registro de usuarios me gustaria controlar la cantidad de personas que estan online en el sitio , primero me figuraba el error de max_user_connections pero lo pude solucionar con un pequeño codigo al cual redirecciona a otra url diciendo que el servidor esta completo pero para esto se perdia mucho tiempo , lo que necesito es directamente poder tener un control de los usuarios activos online del sitio por ej que sea de 20 personas simultaneamente como podria lograr esto? si mi web no tiene registro de usuarios espero que me puedan aydar muchas gracias
  #2 (permalink)  
Antiguo 01/01/2013, 20:03
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: Control de visitantes online

o.O si eso marca el servidor es porque algo estas haciendo mal, mejor muestra como conectas a la base de datos, si cierras la conexión al finalizar el script, etc, el máximo numero de conexiones simultáneas no generan mayor problemas aun en sitios con muchas visitantes, solo en casos muy puntuales es necesario ampliar el numero de conexiones simultáneas...
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #3 (permalink)  
Antiguo 02/01/2013, 07:42
 
Fecha de Ingreso: agosto-2012
Mensajes: 38
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: Control de visitantes online

Lo que necesito es por ej que se puede ejecutar un maximo de 10 consultas de sql y cuando ese tope de 10 este lleno figure un cartel de server full , a penas salga uno de esos 10 vuelva a dar permiso para ingresar a un nuevo usuario y asi
  #4 (permalink)  
Antiguo 02/01/2013, 08:03
Avatar de enlinea777  
Fecha de Ingreso: mayo-2008
Ubicación: frente al pc
Mensajes: 1.830
Antigüedad: 15 años, 11 meses
Puntos: 127
Respuesta: Control de visitantes online

que clase de server es este?
lo normal es que tu en elos script uses mysql_close() para cerrar cada cosulta a la base de datos y asi puedes tener la cantidad de visitantes que permita tu ancho de banda.
  #5 (permalink)  
Antiguo 02/01/2013, 08:45
 
Fecha de Ingreso: agosto-2012
Mensajes: 38
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: Control de visitantes online

si en el archivo tiene este comando mysql_close($conms);
Pero lo que necesito es eso de limitar los usuarios como podria hacerlo?
  #6 (permalink)  
Antiguo 02/01/2013, 09:19
 
Fecha de Ingreso: agosto-2012
Mensajes: 38
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: Control de visitantes online

o alguien cooce un sript que tenga un sistema que en el panel admin figure para configurar el control de usuarios en linea? como por ej el juego Mu Online
  #7 (permalink)  
Antiguo 02/01/2013, 11:42
Avatar de enlinea777  
Fecha de Ingreso: mayo-2008
Ubicación: frente al pc
Mensajes: 1.830
Antigüedad: 15 años, 11 meses
Puntos: 127
Respuesta: Control de visitantes online

el control se hace por session.

creas una sesion al asar con php y aceptas solo un sierto numero de usuarios
entiendase sesion por usuarios.
osea aceptas una sierta cantidad de sesiones.
  #8 (permalink)  
Antiguo 02/01/2013, 13:58
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: Control de visitantes online

Cita:
Iniciado por cristiancastillo87 Ver Mensaje
Lo que necesito es por ej que se puede ejecutar un maximo de 10 consultas de sql y cuando ese tope de 10 este lleno figure un cartel de server full , a penas salga uno de esos 10 vuelva a dar permiso para ingresar a un nuevo usuario y asi
Te olvidas de algo, PHP no tiene forma de saber si un usuario se ah desconectad/abandonado la página sin que este "avise" manualmente, por lo tanto lo que quieres "a penas salga uno de esos 10" no es posible, lo unico que es posible es dar un margen de X tiempo para saber si el usuario abandono la página (cierre la ventana sin cerrar la sesión manualmente)...

En todo caso, debes llevar el control tu propio sistema, guarda en una tabla (si es que no tienes tabla de usuarios) la fecha/hora de la ultima acción/petición del usuario hacia el servidor, después checas unicamente cuantos usuarios exceden el limite impuesto, así estos los tomarás como usuarios que han abandonado el sitio
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #9 (permalink)  
Antiguo 02/01/2013, 15:12
 
Fecha de Ingreso: agosto-2012
Mensajes: 38
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: Control de visitantes online

y como podria hacerlo?
  #10 (permalink)  
Antiguo 03/01/2013, 08:40
Avatar de enlinea777  
Fecha de Ingreso: mayo-2008
Ubicación: frente al pc
Mensajes: 1.830
Antigüedad: 15 años, 11 meses
Puntos: 127
De acuerdo Respuesta: Control de visitantes online

Cita:
Iniciado por cristiancastillo87 Ver Mensaje
y como podria hacerlo?
primero crear esta tabla en la base de datos


Creas una sesion cuando entre el usuario ejemplo.
en el index.php
colocas
Código PHP:
session_start();
// LlAMA A CONEXION A LA BASE
if(!isset($_session['id'])){ // Si es la primera ves que entra se genera el id
$_session['id']=date('ymdHis');
mysql_query("Insert into user (user,hora)values('".$_session['id']."',".date('Y-m-d H:i:s').")");// agregas la hora de ingreso para compararla con la hora a la que se revisa si el usuario ha pasado mas de 10 segundos eso quiere decir que se desconecto o cerro la pagina

Luego de iniciada la sesion agregas una llamada en ajax cada 5 segundos a un archivo que podria llamarse online.php
el cual contenga algo asi:
Código PHP:
// LlAMA A CONEXION A LA BASE
session_start();
$id=$_session['id'];
$consulta=mysql_query("SELECT TIMESTAMPDIFF(MINUTE,(SELECT hora FROM `user` where user=".$id."),'".date('Y-m-d H:i:s')."')");
$resultados=mysql_fetch_array($consulta);
if(
$resultados[0]>10){
    echo 
"el usuario se ha desconectado";
}else{
    echo 
"el usuario sigue conectado";

basicamente te mantienes pendiente que este conectado con la funcion del ajax.
asi sabes exactamente cuantos estan online.
ovbio que no te dejo todo el codigo solo la idea principal.
  #11 (permalink)  
Antiguo 03/01/2013, 09:39
Avatar de DeivisAndres  
Fecha de Ingreso: febrero-2012
Ubicación: Colombia
Mensajes: 305
Antigüedad: 12 años, 2 meses
Puntos: 41
Respuesta: Control de visitantes online

@cristiancastillo87 porque no lees este ejemplo de esta pagina: Usuarios registrados online [MySQL]. Es parecido de lo que intentas lograr.
  #12 (permalink)  
Antiguo 03/01/2013, 18:29
 
Fecha de Ingreso: agosto-2012
Mensajes: 38
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: Control de visitantes online

gente estuve pensando algo como podria hacer para que directamente cierre sesion de sql de todas las consultas abiertas cada un determinado tiempo.
Por ej cada 3 miutos todos los usuarios que esten conectados a la base de datos sean desconectados por completo se podra hacer eso? gracias!
  #13 (permalink)  
Antiguo 03/01/2013, 18:48
 
Fecha de Ingreso: agosto-2012
Mensajes: 38
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: Control de visitantes online

en pocas palabas Refrescar y cerrar sesiónes mysql
Cada 5 minutos que se actualize la web automaticamente y cuando lo haga que automaticamente cierre todas las sessiones abiertas de mysql si esto es posible el que me ayude se lo agradecere genios!
  #14 (permalink)  
Antiguo 04/01/2013, 08:36
Avatar de enlinea777  
Fecha de Ingreso: mayo-2008
Ubicación: frente al pc
Mensajes: 1.830
Antigüedad: 15 años, 11 meses
Puntos: 127
Respuesta: Control de visitantes online

He.
por lo que dices.

INSISTO

lo normal es que tu en los script uses mysql_close() para cerrar cada Conexion a la base de datos y asi puedes tener la cantidad de visitantes que permita tu ancho de banda.

Etiquetas: control, registro, visitante, usuarios
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 18:03.