buenas.
tengo una plataforma web donde varios usuarios inician sesion con una misma cuenta por ejemplo
User: grupo_1
pass: contraseña
------------
User: grupo_2
pass: contraseña
------------
User: grupo_3
pass: contraseña
por cada grupo se conectan al rededor de 5 usuarios con el mismo nombre y contrsaña (grupo_x, y pass)
cada usuario ingresa a una sesion diferente, contenido diferente para cada grupo. el problema que tengo es que puse un contador de usuarios conectaos en la pagina principal index cuando inician sesion. el contador da el total de usuarios conectados al grupo que se logeo el usuario.
para poder contar los usuarios hice una seccion en la base de datos y agrego +1 cada vez que un usuario se logea y cuando se desloguea (apreta el boton salir) se resta -1 de la base de datos.
se refresca automaticamente..
---------------------------------------------
----------------------------------
el probelma que tengo es que los usuarios no apretan el boton salir, directamente desconectan la pagina o la cierran forzandola desde android. y el contador no resta el usuario que se retira del sitio.
necesito que el usuario reste del contador a los usuarios que se van de la pagina sin apretar el boton Salir.
agrego parte del codigo del contador.
---------------------------------------------
----------------------------------
$self = $_SERVER['PHP_SELF']; //Obtenemos la página en la que nos encontramos
header("refresh:7203; url=$self"); //Refrescamos
if(isset($_SESSION["nombre"])):
if(isset($_SESSION['tiempo']) ) {
//Tiempo en segundos para dar vida a la sesión.
$inactivo = 7200;
//Calculamos tiempo de vida inactivo.
$vida_session = time() - $_SESSION['tiempo'];
//Compraración para redirigir página, si la vida de sesión sea mayor a el tiempo insertado en inactivo.
if($vida_session > $inactivo)
{
if(isset($_SESSION["nombre"])){
require_once("../objetos/seguridad/[login to view URL]");
$sql = "UPDATE usuarios SET `num_conected` = `num_conected` - 1 WHERE `username`= '".$_SESSION["nombre"]."'";
$REG = mysqli_query($conexion,$sql) or die ("Problema con el UPDATE: " .mysqli_error($conexion));
unset($_SESSION["nombre"]);
//Removemos sesión.
session_unset();
//Destruimos sesión.
session_destroy();
//Redirigimos pagina.
header("Location: index");
exit();
header("location: index");
} else {
header("location: index");
}
}
} else {
//Activamos sesion tiempo.
$_SESSION['tiempo'] = time();
}
?>
Buen día, me gustaría ayudarle. Que le parece llamar a ese archivo encargado de restar el número de usuarios mediante ajax? El método se dispararía con el evento de cierre de página
$12 USD om 1 dag
5,0 (45 omtaler)
4,6
4,6
11 freelancers are bidding on average $23 USD for this job
Muy buenas tardes! gusto en saludarte, te comento que me especializo en MySQL, tanto cómo en PHP que son las herramientas involucradas en tu requerimiento. Para tu problema en particular poseo otra solución, la cual te puedo detallar en un mensaje si estás interesado(al menos es la que yo ocupo para contar sesiones activas en mis plataformas). Estas utilizan consulta SQL tal como lo planteas. Quedo atento, saludos!
Buen día! Vi tu oferta y soy un excelente candidato para tu proyecto, estaré esperando tu contacto atentamente para coordinar cada punto, fechas y contenido, saludos!
Hola buenos días soy ingeniero desarrollador de sotfware con 4 años de experiencia en el tema y considero tener el conocimiento para ayudarte realizar tu proyecto.
Hola te lo resuelvo en 1 dia. Al parecer es bastante sencillo, solo tendria que ver bien el codigo y el funcionamiento. Te oferte por el minimo de dinero ya que lo unico que me interesa en este momento es ganar reputacion en la pagina.
No hace falta que me asignes el proyecto, yo te lo resuelvo y si te gusta como quedo, recien ahi me lo asignas.
Hablamos por chat si queres para ver los detalles.
Saludos.
Skype: juanaquino77
Lo podemos hacer muy fácil con un socket y NodeJs (para interacciones en tiempo real va mejor que PHP), así tendrás siempre el número de usuarios conectados a tu web en tiempo real. Te propongo hacer un backend sencillo en NodeJs con una petición para poder recuperar el resultado cuando quieras.
Es sencillo y podemos tenerlo listo en un día.
Un saludo