Como cierro todas las Sesiones en PHP??
Publicado por Kathyu (905 intervenciones) el 26/04/2019 01:07:48
Hola, leyendo por ahí me tope con algo que no se como resolver, a ver si me dan una luz.
Problema: Usuarios descuidados que inician sesión donde sea. Y no cierran la sesión.
Solución 1: Cerrar por medio de una opción que solo los SA manejemos todas las sesiones de los usuarios, no importa quien ni donde, que se cierren todas las sesiones de php.
Datos:
Encontré esto para el php.ini
Pero yo no lo quiero por configuración, lo que quiero es una opción, donde al dar click sea como cuando yo hago logout, que destruyo la sesión mía, pero que en este proceso destruya todas las conexiones o sesiones del sistema, de todo el mundo.
Y esto que creo que es por medio de "código"
Y esto que es por medio de tiempo y creación de variables de sesión, pero para este ejemplo tengo las siguientes dudas:
1- Se aplica solo en el login o debo hacer este proceso en cada archivo php?
2- Este proceso cerraría las sesiones de otras maquinas o solo las sesiones de la maquina actual?
Se podrá?
Solución 2: Hacer un proceso donde, o no lo deje entrar si hay una sesión abierta o que cierre la sesión abierta que tenga en otra PC.
Pero esto me llevaría al hecho de que un usuario no podría tener dos sesiones abiertas, cosa que sabemos que no es muy factible pues si yo me logeo en LWP en mi oficina de igual forma lo puedo hacer en casa o en mi celular y LWP no me restringe el acceso, igual gmail, FB entre otros. Pero no así los bancos, que no importa donde o como, si hay sesión iniciada no permite otra sesión, en una PC diferente.
Alguna idea?
Problema: Usuarios descuidados que inician sesión donde sea. Y no cierran la sesión.
Solución 1: Cerrar por medio de una opción que solo los SA manejemos todas las sesiones de los usuarios, no importa quien ni donde, que se cierren todas las sesiones de php.
Datos:
Encontré esto para el php.ini
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
; Defines the probability that the 'garbage collection' process is started
; on every session initialization. The probability is calculated by using
; gc_probability/gc_divisor. Where session.gc_probability is the numerator
; and gc_divisor is the denominator in the equation. Setting this value to 1
; when the session.gc_divisor value is 100 will give you approximately a 1% chance
; the gc will run on any give request.
; Default Value: 1
; Development Value: 1
; Production Value: 1
; http://php.net/session.gc-probability
session.gc_probability = 1
; Defines the probability that the 'garbage collection' process is started on every
; session initialization. The probability is calculated by using the following equation:
; gc_probability/gc_divisor. Where session.gc_probability is the numerator and
; session.gc_divisor is the denominator in the equation. Setting this value to 1
; when the session.gc_divisor value is 100 will give you approximately a 1% chance
; the gc will run on any give request. Increasing this value to 1000 will give you
; a 0.1% chance the gc will run on any give request. For high volume production servers,
; this is a more efficient approach.
; Default Value: 100
; Development Value: 1000
; Production Value: 1000
; http://php.net/session.gc-divisor
session.gc_divisor = 1000
Pero yo no lo quiero por configuración, lo que quiero es una opción, donde al dar click sea como cuando yo hago logout, que destruyo la sesión mía, pero que en este proceso destruya todas las conexiones o sesiones del sistema, de todo el mundo.
Y esto que creo que es por medio de "código"
1
2
3
4
5
Me parece q lo q estás pidiendo es una forma de borrar todas las sesiones de todos los usuarios.
Con session_destroy() solo borras la sesión del usuario q ha llamado a esa función.
Para borrar todas las sesiones necesitas saber donde tu instalación de php guarda estas sesiones, esa información te la dá la función session_save_path().
Luego solo tienes q borrar todos los ficheros q se encuentren en ese directorio.
Y esto que es por medio de tiempo y creación de variables de sesión, pero para este ejemplo tengo las siguientes dudas:
1- Se aplica solo en el login o debo hacer este proceso en cada archivo php?
2- Este proceso cerraría las sesiones de otras maquinas o solo las sesiones de la maquina actual?
Se podrá?
Solución 2: Hacer un proceso donde, o no lo deje entrar si hay una sesión abierta o que cierre la sesión abierta que tenga en otra PC.
Pero esto me llevaría al hecho de que un usuario no podría tener dos sesiones abiertas, cosa que sabemos que no es muy factible pues si yo me logeo en LWP en mi oficina de igual forma lo puedo hacer en casa o en mi celular y LWP no me restringe el acceso, igual gmail, FB entre otros. Pero no así los bancos, que no importa donde o como, si hay sesión iniciada no permite otra sesión, en una PC diferente.
Alguna idea?
Valora esta pregunta


1