Foros del Web » Programando para Internet » PHP »

Destruccion de sesiones(conexiones) en PHP

Estas en el tema de Destruccion de sesiones(conexiones) en PHP en el foro de PHP en Foros del Web. Buenas. Señores el asunto es el siguiente : Como logro destruir la conexiones existentes al servidor, utilizando PHP. Es decir siendo yo administrador, al darle ...
  #1 (permalink)  
Antiguo 16/07/2007, 10:04
 
Fecha de Ingreso: marzo-2007
Mensajes: 26
Antigüedad: 12 años, 11 meses
Puntos: 0
Destruccion de sesiones(conexiones) en PHP

Buenas.

Señores el asunto es el siguiente :

Como logro destruir la conexiones existentes al servidor, utilizando PHP.

Es decir siendo yo administrador, al darle click a un enlace decirle a apache o al interprete PHP que destruya todas las conexiones actuales al servidor (excepto la mia obviamente), con el fin de correr un proceso que requiere que ningun usuario este conectado.

Agradezco su colaboracion.
  #2 (permalink)  
Antiguo 16/07/2007, 11:34
 
Fecha de Ingreso: julio-2002
Ubicación: Capital Federal
Mensajes: 66
Antigüedad: 17 años, 7 meses
Puntos: 0
Re: Destruccion de sesiones(conexiones) en PHP

Como idea: Podrías vaciar el directorio con las coockies de session excepto la tuya
__________________
Adrián (@ RHCP I Wanna Be Funky Flea)
  #3 (permalink)  
Antiguo 16/07/2007, 11:37
Avatar de ghosthead-nebula  
Fecha de Ingreso: marzo-2007
Mensajes: 273
Antigüedad: 12 años, 11 meses
Puntos: 3
Re: Destruccion de sesiones(conexiones) en PHP

Cita:
Como idea: Podrías vaciar el directorio con las coockies de session excepto la tuya
Y cómo se hace eso? Me interesa, pues en mi proyecto trabajo con sesiones y me gustaría que, cuando un usuario diga "cerrar sesión" se cierre definitivo y que cuando le den "volver" en la barra del explorador se deshabilite todo lo que hizo el usuario en cuestión
  #4 (permalink)  
Antiguo 16/07/2007, 12:12
 
Fecha de Ingreso: julio-2002
Ubicación: Capital Federal
Mensajes: 66
Antigüedad: 17 años, 7 meses
Puntos: 0
Re: Destruccion de sesiones(conexiones) en PHP

Ese planteo es otro al que decías antes:
Si querés que al hacer click en ·volver· (luego de cerrar la session) el usuario no pueda ver nada, no permitas que el usuario cahee la página.

header("Cache-Control: no-cache,no-store,private");

de esta manera la va a recargar de nuevo y vos al destruir sus variables y su session podés obligarlo a que se loguee de nuevo.
__________________
Adrián (@ RHCP I Wanna Be Funky Flea)
  #5 (permalink)  
Antiguo 16/07/2007, 12:57
 
Fecha de Ingreso: marzo-2007
Mensajes: 26
Antigüedad: 12 años, 11 meses
Puntos: 0
Pregunta Re: Destruccion de sesiones(conexiones) en PHP

Las sesiones no usan cookies......

debe existir un comando en PHP o Apache el cual cierre las conexiones actuales al servidor...menos la mia.

Alguien sabe como logro esto?
  #6 (permalink)  
Antiguo 16/07/2007, 13:01
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 14 años, 11 meses
Puntos: 33
De acuerdo Re: Destruccion de sesiones(conexiones) en PHP

Pues puedes "destruir" las sesiones con unset()

Saludillos.
  #7 (permalink)  
Antiguo 16/07/2007, 13:06
 
Fecha de Ingreso: junio-2007
Ubicación: por ahi
Mensajes: 262
Antigüedad: 12 años, 7 meses
Puntos: 4
Re: Destruccion de sesiones(conexiones) en PHP

Cita:
Iniciado por ghosthead-nebula Ver Mensaje
Y cómo se hace eso? Me interesa, pues en mi proyecto trabajo con sesiones y me gustaría que, cuando un usuario diga "cerrar sesión" se cierre definitivo y que cuando le den "volver" en la barra del explorador se deshabilite todo lo que hizo el usuario en cuestión
Respuesta para

ghosthead-nebula

La seciones en PHP se guardan en un directorio temporal, "session.save_path ",

Las sesiones no usan cookies, pero si archivos en el servidor.

la idea es verificar cual es el identificador de tu seccion y borrar los demas archivo mediante: unlink ()
  #8 (permalink)  
Antiguo 16/07/2007, 13:15
 
Fecha de Ingreso: julio-2002
Ubicación: Capital Federal
Mensajes: 66
Antigüedad: 17 años, 7 meses
Puntos: 0
Re: Destruccion de sesiones(conexiones) en PHP

Creeme: las sessiones usan cockies que se depositan en el servidor y no en cliente (al reves de las cockies normales).

Eliminando esas cokies eliminaras la session de todos (porque toda la informacion que guardaste ahi como userid etc, ya no va a existir)

hace un <?= phpinfo() ?> y busca la variable "session.save_path".

Recorré la carpeta con un for y elimina todo con un unlik. pbviamente no elimines la tuya.

Me parece que con el valor de $_COOKIE['PHPSESSID'] podrías encontrar una relacion para no borrar las tuya.

Otra que se me ocurrio recien es que en una tabla insertes un dato "SUSPENDER" y en todos los archivos valides ese dato que si es true no se puede ver el sitio (muestra una alerta de suspendido) o le cierra la session siempre usando el recurso del "no cache" para que pregunte siempre por más que hagan "Back". Creo que esta es la opción más fácil.


Espero que sirva!
__________________
Adrián (@ RHCP I Wanna Be Funky Flea)
  #9 (permalink)  
Antiguo 16/07/2007, 13:28
Avatar de ghosthead-nebula  
Fecha de Ingreso: marzo-2007
Mensajes: 273
Antigüedad: 12 años, 11 meses
Puntos: 3
Re: Destruccion de sesiones(conexiones) en PHP

Ahora sí que me perdí
  #10 (permalink)  
Antiguo 17/07/2007, 08:53
 
Fecha de Ingreso: marzo-2007
Mensajes: 26
Antigüedad: 12 años, 11 meses
Puntos: 0
De acuerdo Re: Destruccion de sesiones(conexiones) en PHP

Cita:
Iniciado por Flea Ver Mensaje
Creeme: las sessiones usan cockies que se depositan en el servidor y no en cliente (al reves de las cockies normales).

Eliminando esas cokies eliminaras la session de todos (porque toda la informacion que guardaste ahi como userid etc, ya no va a existir)

hace un <?= phpinfo() ?> y busca la variable "session.save_path".

Recorré la carpeta con un for y elimina todo con un unlik. pbviamente no elimines la tuya.

Me parece que con el valor de $_COOKIE['PHPSESSID'] podrías encontrar una relacion para no borrar las tuya.

Otra que se me ocurrio recien es que en una tabla insertes un dato "SUSPENDER" y en todos los archivos valides ese dato que si es true no se puede ver el sitio (muestra una alerta de suspendido) o le cierra la session siempre usando el recurso del "no cache" para que pregunte siempre por más que hagan "Back". Creo que esta es la opción más fácil.


Espero que sirva!

Gracias flea, creo q voy a probar con la primera opcion que me das despues te cuento como me fue...
  #11 (permalink)  
Antiguo 17/07/2007, 08:59
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 13 años, 8 meses
Puntos: 2135
Re: Destruccion de sesiones(conexiones) en PHP

Flea:

Estas incorrecto, si bien las sessiones usan archivos, estos archivos se almacenan en el session_savepath, pero si se envia un cookie al cliente con el session_id, asi PHP sabe que session corresponde a que cliente, de ahi vienen los problemas y los ataques XSS, inyectan sessiones manualmente y recuperan datos de otros usuarios pero este es otro tema.

RunningWild:

Para poder "cerrar" las sessiones de una manera mas efectiva, te recomiendo sobrecargues el motor de sessiones e implementes una base de datos donde almacenes que usuarios estan logueados, asi puedes hacer un update, sacar a todos del sistema y realizar el proceso que necesitas.

Borrar manualmente de la carpeta session_savepath si es una opcion PERO si estas en un servidor compartido, seguramente no tendras los permisos para borrar de session_savepath ya que esto afectaria a todos los procesos de TODOS los usuarios no nadamas del tuyo.

Saludos.
  #12 (permalink)  
Antiguo 17/07/2007, 11:30
Avatar de ghosthead-nebula  
Fecha de Ingreso: marzo-2007
Mensajes: 273
Antigüedad: 12 años, 11 meses
Puntos: 3
Re: Destruccion de sesiones(conexiones) en PHP

Oye Gator y en mi caso? Cuando requiero cerrar sólo la sesión del usuario actual? (algo así como este foro, cierras sesión y no puedes postear más, así le des a "atrás" en el explorador)

No entiendo mucho lo que me dijeron y no sé cuál está bien y cuál está mal. Ayuda?
  #13 (permalink)  
Antiguo 17/07/2007, 11:43
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 13 años, 8 meses
Puntos: 2135
Re: Destruccion de sesiones(conexiones) en PHP

Te recomiendo ya que tu tema es algo separado que publiques un tema aparte, pero para darte una idea tienes que comprobar en cada pagina de session si la session esta abierta asi como enviar las cabeceras para que cheque y no haga el cache de la pagina, asi no importa si hacen "back" el browser va a checar la session.

Saludos.
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 16:34.