PHP - Un sistema que lo están usando 8 o 10 horas, como conservo el login

 
Vista:
Imágen de perfil de Cristian
Val: 4
Ha disminuido su posición en 225 puestos en PHP (en relación al último mes)
Gráfica de PHP

Un sistema que lo están usando 8 o 10 horas, como conservo el login

Publicado por Cristian (95 intervenciones) el 30/09/2015 15:21:20
Hola a todos....
Estoy desarrollando un sistema de gestion pero no se como hacer con el tema de el tiempo en las variables.

Por ejemplo, un sistema que lo están usando 8 o 10 hs. para facturar como conservo los valores y login tanto tiempo. ?

Saludos y gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Un sistema que lo están usando 8 o 10 horas, como conservo el login

Publicado por xve (6935 intervenciones) el 30/09/2015 19:18:57
Hola Cristian, lo suyo es utilizar un token, que es una cadena que no tiene ningun valor, pero que hace referencia al usuario.

Estaria bien, que esa cadena, por ejemplo fuera el md5 del navegador, algo así:
1
$token=md5($_SERVER["HTTP_USER_AGENT"]);

Esta cadena, la tienes que guardar en la base de datos, para que este asignada a un usuario en concreto, y generas la cookie con dicho valor para 1 año.

Cada vez que el usuario se mueva, revisas que el token de la cookie sea igual al md5 del navegador... algo así:
1
if($_COOKIE[$token]==md5($_SERVER["HTTP_USER_AGENT"]))

Luego, si coinciden, lo buscas en la base de datos, y sabrás que usuario es... de esta manera, la sesión no caduca nunca... si algun dia la quieres eliminar, simplemente eliminando el token de la base de datos, o eliminando la cookie...

Espero que te sirva... si hay algo que no te ha quedado claro, me comentas, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Cristian
Val: 4
Ha disminuido su posición en 225 puestos en PHP (en relación al último mes)
Gráfica de PHP

Un sistema que lo están usando 8 o 10 horas, como conservo el login

Publicado por Cristian (95 intervenciones) el 30/09/2015 20:49:45
Hola xve... una vez mas muchas gracias. Muy claro.

Cualquier cosa me vuelvo a comunicar.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 729
Bronce
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Un sistema que lo están usando 8 o 10 horas, como conservo el login

Publicado por Gonzalo (615 intervenciones) el 01/10/2015 19:30:54
si te refieres a mantener la pagina activa durante 8 horas pero sin hacer nada ... bueno, tal vez debas revisar la parte del navegador que controla la vida de la session y la extiendes al tiempo que necesites y listo.

aunque no te recomeindo que uses tanto tiempo.

la sesion tiene un limite de tiempo esto para tratar de impedir que alguien no autorizado haga uso de una pagina, es algo asi como un salvapantallas en windows.

abres la pagina, le das tu win y password, entras al portal ... y te vas a desayunar, eso dejaria la pagina habilitada para que pudieran usar la pagina cuando estas ausente a sabiendas de que te vas a tomar una hora en el desayuno (o lunch, o cena o reunion con el comite, etc).

una ventana digamos de unos 5 minutos de vida causaria que la siguiente peticion se cancelara despues de este tiempo.

esto es si alguien intenta usar la pagina 5 minutos despues de la ultima actualizacion no va a poder ya que te mandaria al login.

eso da un poco de tranquilidad al saber que dejaste la terminal abierta con la pagina logueada.

pero con una ventana de 8 horas ... imaginate, le das todo el tiempo del mundo a quien sea para usar la pagina, esto seria muy conveniente para personas con intenciones ... no muy aceptables..

mi recomendacion seria de que dejaras 5 minutos, es mejor estarse logueando a cada rato que exponer la pagina con un login activado, esto en mi opinion claro, al final tu tienes la mejor descicion.

aparte, si mantienes activa la pagina, esto es, si capturas, consultas o haces algo en la pagina cada 4 minutos esto mantiene la session abierta ya que el reloj se reinicia con cada llamada.

suerte, salu2.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Cristian
Val: 4
Ha disminuido su posición en 225 puestos en PHP (en relación al último mes)
Gráfica de PHP

Un sistema que lo están usando 8 o 10 horas, como conservo el login

Publicado por Cristian (95 intervenciones) el 01/10/2015 21:10:11
Hola Gonzalo...
Mil gracias en escribir.
Si necesito justamente eso. Sinceramente no manejo demasiado este tipo de cosas. A decir verdad siempre desarrolle para escritorio.


Dije 8 horas por tomar un ejemplo, ya que un sistema administrativo se usa continuamente; y la pregunta iba justamente al tiempo de uso.
Cualquier duda te consulto.

Muchas gracias de verdad.

cordial saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 729
Bronce
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Un sistema que lo están usando 8 o 10 horas, como conservo el login

Publicado por Gonzalo (615 intervenciones) el 01/10/2015 21:26:31
ok, entonces lo ideal es usar variables de session $_SESSION["variable"], estas duran segun elt iempo que tienes definido en el servidor web, apache o iis segun sea el caso.

si defines la vida de las variables a digamos 10 minutos entonces a partir de la ultima consulta se inicia un reloj, si llegan los 10 minutos y no registra actividad la session se destruye.

en php es indispensable iniciar la session con

<?php
session_start();

esto debe ser en todas las paginas, con eso conectas al usuario con la sessionq ue abrio y ahi recuperas las variables.

esas variables tienen un limite, asi que usa lo minimo indispensable para guardar informacion ahi.

ahora para iniciar una variable solo debes darle el nombre y el valor

$_SESSION["Usuario"]="Cristian";
$_SESSION["Activo"]=1;

y listo, si te pasas a otra pagina e inicias la session entonces

<?php
session_start();

echo($_SESSION["usuario"]." ".$_SESSION["Activo"]);

debe imprimir

Cristian 1

y cuando el usuario da logout entonces usas

session_destroy();

y se borra todo, ya nadie puede usar esa session.

esto esta muy simplificado pero es basicamente la forma en que se puede trabajar con esas variables.

recuerda, la vida de las variables de sesion dura segun la configuracion de tu servidor web (iis, o apache, o del que se trate)

suerte salu2.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Cristian
Val: 4
Ha disminuido su posición en 225 puestos en PHP (en relación al último mes)
Gráfica de PHP

Un sistema que lo están usando 8 o 10 horas, como conservo el login

Publicado por Cristian (95 intervenciones) el 01/10/2015 21:49:51
Gracias por tu tiempo Gonzalo...

Las variables de session (con un tiempo definido, por ejemplo 10 min.) para que no se destruya tiene que demostrar actividad ? si hay actividad continua en este caso no se necesita loguearse ???
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 729
Bronce
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Un sistema que lo están usando 8 o 10 horas, como conservo el login

Publicado por Gonzalo (615 intervenciones) el 01/10/2015 23:35:16
exacto, si el tiempo de vida de la session es de 10 minutos y tu usas la pagina digamos cada 8 minutos entonces la variable de session no se autodestruye.

mientras la pagina este en uso no ha problema.

pero a partir de la ultima vez que usaste la pagina, si pasan 10 minutos y 1 segundo la session se destruye.

no se usan para loguearse, aqui hay que dejarlo muy claro, las variables de session se usan solamente para mantener informacion del usuario en la session estes logueado o no.

pero eso si, son muy utilizadas en paginas que piden usuario y password esto debido a que son individuales, dependen de la session de cada usuario asi que te ayudan a identificar al usuario cada vez que manda informacion al server, pero igual funcionan en paginas que no usan login y password.

y debido a que tienen un tiempo de vida se usan para controlar el tiempo que un usuario puede usar la pagina, si el usuario dejo de usar por mas de 10 minutos la session se destruye, asi detectas que una session ya no esta activa y los sacas de la pagina, asi que deben loguearse de nuevo.

salu2.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Cristian
Val: 4
Ha disminuido su posición en 225 puestos en PHP (en relación al último mes)
Gráfica de PHP

Un sistema que lo están usando 8 o 10 horas, como conservo el login

Publicado por Cristian (95 intervenciones) el 02/10/2015 01:44:39
Si si, cuando dije de loguearse estaba dando un ejemplo, se usa usualmente para eso.
Entiendo es para guardar informacion de ese tipo.


Muy claro Gonzalo...

Muchas gracias.
Cualquier cosa te vuelvo a molestar.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar