Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Automaticamente detectar dias sin Acceso y Bloquear

Estas en el tema de Automaticamente detectar dias sin Acceso y Bloquear en el foro de PHP en Foros del Web. Hola buen dia, mi duda es para saber de que manera podria yo en mi sistema hacer que cuando el usuario tenga (x) dias sin ...
  #1 (permalink)  
Antiguo 19/02/2013, 16:28
 
Fecha de Ingreso: agosto-2012
Ubicación: México
Mensajes: 106
Antigüedad: 12 años, 2 meses
Puntos: 6
Pregunta Automaticamente detectar dias sin Acceso y Bloquear

Hola buen dia, mi duda es para saber de que manera podria yo en mi sistema hacer que cuando el usuario tenga (x) dias sin acceder a su cuenta se bloquee..."Automaticamente", es decir, si en mi aplicacion estableci que los usuarios se bloquearan a los 10 dias sin acceso, si el usuario al dia 11 quiere acceder, la aplicacion tendra que decirle que se encuentra bloqueado por dias sin acceso (todo eso seria basicamente con JS) lo que me interesa es saber a nivel servidor (PHP) como hacer que pase automaticamente, segun yo los codigos de PHP se ejecutan cuando se hace una petición al servidor, pero en el caso de que este usuario este 10 dias sin acceder como puedo logarar que se bloque.. basicamente en mi tabla de usuarios guardo la fecha en la que se dio de alta, tambien tengo su status.. la fecha de su ultimo inicio de sesion, pero no se como manejar estos datos... Muchas gracias de antemano por su tiempo y atención. Saludos!

en mysql tengo esto

TABLA DE ESTADOS DE USUARIO
Código MySQL:
Ver original
  1. -- CREAMOS LA TABLA user_status --
  2. CREATE TABLE user_status(
  3.     estado tinyint not null,
  4.     descripcion varchar(20),
  5.     CONSTRAINT PKstat primary key (estado)
  6. );

TABLA DE USUARIOS
Código MySQL:
Ver original
  1. CREATE TABLE user_app(
  2.     id_user int not null,
  3.     id_profile int not null,
  4.     username varchar (40) not null,
  5.     pass varchar(64) not null,
  6.     id_canal varchar(5),
  7.     clave_suc varchar(30),
  8.     ultimo_ingreso TIMESTAMP,
  9.     estado tinyint not null default 2,
  10.     CONSTRAINT PK primary key (id_user),
  11.     CONSTRAINT FKstat foreign key (estado)
  12.         references user_status (estado) ON DELETE CASCADE ON UPDATE CASCADE,
  13.     UNIQUE KEY user (username)
  14. );

En este caso me interesa que cuando tenga tantos dias sin acceso se actualice su campo 'estado' en la tabla user_app...
  #2 (permalink)  
Antiguo 19/02/2013, 16:44
Avatar de jonni09lo
Colaborador
 
Fecha de Ingreso: septiembre-2011
Ubicación: Estigia
Mensajes: 1.471
Antigüedad: 13 años, 2 meses
Puntos: 397
Respuesta: Automaticamente detectar dias sin Acceso y Bloquear

Pues si quieres que se haga Automaticamente te tocaría hacer cron jobs o tareas programadas de acuerdo el SO (sitema operativo) del hosting

Pero creería que lo mejor es atar esa validación a la acción del usuario, en el momento que inicie sesión hacer esa validación y mostrar el mensaje de cuenta bloqueada

Saludos
__________________
Haz preguntas inteligentes-Como ser Hacker
No hacer preguntas por mensaje privado. No sólo no es inteligente sino que es egoísta.
  #3 (permalink)  
Antiguo 19/02/2013, 16:48
 
Fecha de Ingreso: agosto-2012
Ubicación: México
Mensajes: 106
Antigüedad: 12 años, 2 meses
Puntos: 6
Respuesta: Automaticamente detectar dias sin Acceso y Bloquear

Cita:
Iniciado por jonni09lo Ver Mensaje
Pues si quieres que se haga Automaticamente te tocaría hacer cron jobs o tareas programadas de acuerdo el SO (sitema operativo) del hosting

Pero creería que lo mejor es atar esa validación a la acción del usuario, en el momento que inicie sesión hacer esa validación y mostrar el mensaje de cuenta bloqueada

Saludos
Sip, bueno es que cuando se da de alta un usuario se le asignara el status de que esta "inactivo" por asi decirlo, pero en los requerimientos me solicitan que se programe automaticamente que (aunque ya sea un usuario 'viejo'), a los (X) dias que se establezcan en la apliacion no se conecte, se le asigne el estado de bloqueado, pero me esta diciendo la persona de servidores que me puede apoyar con una tarea programada en linux que haga esas comparativas en base a los campos de fecha alta y fecha de ultimo inicio de sesion de la tabla de usuarios, asi que creo que con eso se resolveria..la tarea programada verificaria diariametne los estatus de los usuarios... Creo..jeje gracias!
  #4 (permalink)  
Antiguo 19/02/2013, 16:58
Avatar de jonni09lo
Colaborador
 
Fecha de Ingreso: septiembre-2011
Ubicación: Estigia
Mensajes: 1.471
Antigüedad: 13 años, 2 meses
Puntos: 397
Respuesta: Automaticamente detectar dias sin Acceso y Bloquear

Pues si, ten en cuenta de que el cron ejecutaría un archivo php que tu programes...

Saludos
__________________
Haz preguntas inteligentes-Como ser Hacker
No hacer preguntas por mensaje privado. No sólo no es inteligente sino que es egoísta.
  #5 (permalink)  
Antiguo 19/02/2013, 17:00
 
Fecha de Ingreso: agosto-2012
Ubicación: México
Mensajes: 106
Antigüedad: 12 años, 2 meses
Puntos: 6
Respuesta: Automaticamente detectar dias sin Acceso y Bloquear

Cita:
Iniciado por jonni09lo Ver Mensaje
Pues si, ten en cuenta de que el cron ejecutaría un archivo php que tu programes...

Saludos
El Don Señor de Servidores me explico que seria con comandos Shell de Linux y me enseño un ejemplo :S me dijo que solo le enviara las querys con el update del estado y las comparaciones que tengo que hacer para las validaciones y el se encargaria de lo demás..aunque observare como lo hace para sacarme de dudas.. Muchas Gracias!
  #6 (permalink)  
Antiguo 20/02/2013, 03:12
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años, 7 meses
Puntos: 406
Respuesta: Automaticamente detectar dias sin Acceso y Bloquear

Mientras no tengas muchos usuarios no vas a tener problemas, ahora que si tienes bastantes o piensas que puedas tener bastantes esa es una pésima forma de hacerlo, aparte de que a cada rato consumiras procesador y ram para verificar los mismos usuarios, lo cual es un desperdicio de recursos, en fin, lo mas recomendable es verificar antes de iniciar sesión cuantos tiempo ah pasado desde su ultima visita, si son mas de 10 dias bloqueas la cuenta y cancelas el inicio de sesión, así unicamente gastarás recursos cuando es necesario y en medida de tus usuarios....
__________________
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 =)
  #7 (permalink)  
Antiguo 22/02/2013, 15:31
 
Fecha de Ingreso: agosto-2012
Ubicación: México
Mensajes: 106
Antigüedad: 12 años, 2 meses
Puntos: 6
Respuesta: Automaticamente detectar dias sin Acceso y Bloquear

Cita:
Iniciado por Nemutagk Ver Mensaje
Mientras no tengas muchos usuarios no vas a tener problemas, ahora que si tienes bastantes o piensas que puedas tener bastantes esa es una pésima forma de hacerlo, aparte de que a cada rato consumiras procesador y ram para verificar los mismos usuarios, lo cual es un desperdicio de recursos, en fin, lo mas recomendable es verificar antes de iniciar sesión cuantos tiempo ah pasado desde su ultima visita, si son mas de 10 dias bloqueas la cuenta y cancelas el inicio de sesión, así unicamente gastarás recursos cuando es necesario y en medida de tus usuarios....
Si el detalle que segun quieren que sea automatico... yo habia pensado eso, pero ellos quieren que si pasan 10 dias sin acceso automaticamente se bloquee el usuario :/ y pues no se si unos 1000 usuarios seria una cantidad muy grande. Saludos!
  #8 (permalink)  
Antiguo 22/02/2013, 17:29
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años, 7 meses
Puntos: 406
Respuesta: Automaticamente detectar dias sin Acceso y Bloquear

Eso es irrelevante ya que el chequeo se hará de forma automatica, es tu deber como desarrollador decir que se puede hacer y que no se DEBE hacer, al final es lo mismo, porque para el usuario final no habrá diferencia alguna si el chequeo lo haces en el mismo momento que intenta iniciar sesión que si hubiera un cronjob ejecutando un archivo cada día, al final obtendrás el mismo resultado y no habrá forma de saltarlo, la diferencia es que tu sistema será muchisimo mas estable y consumira mucho menos recursos, que al final eso puede resultar en menos dinero que pagar al hosting...

Nota: 1000 usuarios "no es nada", pero no cometas el error de no pensar a futuro, no has dicho que tipo de aplicación es si cerrada (para una empresa o similar) o abierta (para todo internet)
__________________
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 23/02/2013, 09:57
 
Fecha de Ingreso: agosto-2012
Ubicación: México
Mensajes: 106
Antigüedad: 12 años, 2 meses
Puntos: 6
Respuesta: Automaticamente detectar dias sin Acceso y Bloquear

Cita:
Iniciado por Nemutagk Ver Mensaje
Eso es irrelevante ya que el chequeo se hará de forma automatica, es tu deber como desarrollador decir que se puede hacer y que no se DEBE hacer, al final es lo mismo, porque para el usuario final no habrá diferencia alguna si el chequeo lo haces en el mismo momento que intenta iniciar sesión que si hubiera un cronjob ejecutando un archivo cada día, al final obtendrás el mismo resultado y no habrá forma de saltarlo, la diferencia es que tu sistema será muchisimo mas estable y consumira mucho menos recursos, que al final eso puede resultar en menos dinero que pagar al hosting...

Nota: 1000 usuarios "no es nada", pero no cometas el error de no pensar a futuro, no has dicho que tipo de aplicación es si cerrada (para una empresa o similar) o abierta (para todo internet)
Si tienes razon, por que aunque cualquier otro usuario, por ejemplo si se trata de un usuario no autorizado, que tenga las claves, al hacer esa comprobacion cada vez inicia sesion, pues en dado caso se bloquearia y no le permitiria el acceso, la aplicacion es cerrada, especifica para una empresa, y en cuanto al cliente final, es demasaido quisquilloso y no tengo voz y voto ahi jaja,soy como una esclava desarrolladora o algo asi, ya que no esta en mi si no en mis jefes que si me dicen que el cielo es verde pues verde es :/.... en cuanto a los usuarios yo calculo unos mil, pero es un proyecto a nivel nacional para tiendas de todo el pais, asi que no se en realidad cuanto podria llegar a crecer (las personas lideres de proyecto no me han compartido ese dato..) sin embargo si tu dices que hacer una tarea programada consume muchos mas recursos, y funciona mejor la comprobación cada vez que inicia sesion pues seria mejor asi.. y de esa manera lo podria controlar yo desde la aplicacion. Muchas gracias por tus comentarios!!!

Etiquetas: inactividad
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 17:49.