Ver Mensaje Individual
  #6 (permalink)  
Antiguo 14/09/2010, 09:13
Avatar de vertigo112
vertigo112
 
Fecha de Ingreso: agosto-2006
Ubicación: Estado de Mexico
Mensajes: 25
Antigüedad: 17 años, 8 meses
Puntos: 1
Respuesta: Consulta borrar datos de sesion

me he topado en un par de ocaciones con este problema, cuando trabajo con SESSIONES en php, se me queda colgada la Session anterior aaaaa pero esto solo pasa Localmente en el mismo PC de pruebas pense que esto sucedia de igual forma montando la aplicacion en la Web pero no es asi ya que lo he probado y eso jamas podria pasar por que cada acceso al PHP_SID es diferente desde cada IP se crea una session diferente,,,,

pero al grando podria pasar que de 1 entre 1000 casos un usuario accede a nuestra aplica, desde un CAFE Internet, y sale de la pagina sin tener que cerrar sesion y el siguiente usuaro accede a nuestra web desde esa misma maquina y se ha quedado colgada la session.. pues ahi se dara el caso...

para solucionar eso lo primero que hacia es detectar en javascript cuando un navegador se ha cerrado, llamo al evento que se ejecuta cuando se cierra la ventana y le cuelgo un AJAX una vez dentro elimino la session todo lo hace cuando el usuario cierra la ventana.

esa opcion no es muy optima ya que no me funcionaba bajo algunas versiones de navegador haci que podria no ser una opcion 100% ..

ahora lo que te comentaron anteriormente es la opcion 100% funcional PHP tiene todo o casi todo resulto para el mismo caso que te comento funciona de forma transparente es cuestion de echar un cambio al php.ini y listo ya que hay unas funciones que tiene como regla que cuando una session exista creada mediante
session_start() esta pueda ser propagado solo y esclusivamente por el PATH ruta o en este caso el dominio en el que te encuentres esto quiere decir que si en dado caso te vas desde la pagina a otro URL, o cierras el navegador o cierras la pestaña la session se pierde esto claro esta desactivo la mayoria de sitios no les sirve que si un usuario salido de su sitio tenga que volver a loguearse:

session.use_only_cookies = 1

esta variable por defecto esta comentada hay que descoemntar OJO no confundir con otra que se llama session.use_cookies = 1 ya que no son iguales,,

y la otra a revizar que no es la importante pero si necesaria por algunas versiones es esta

session.use_trans_sid = 0

si tienes PHP 5 no hay problema ya esta descomentada incluso en las ultimas version del 4.x.x



ahora este seria el caso de que puedas tener acceso al php.ini pero que pasa si no puedes acceder a el pues hay una solucion seria desde el propio script de PHP

Código PHP:
ini_set()
ini_set("session.use_trans_sid","0");
ini_set("session.use_only_cookies","1");

session_set_cookie_params(0"/"$HTTP_SERVER_VARS["HTTP_HOST"],  0); 

ahora aqui algo importante es que esto se puede hacer solo y esclusivamente si el Servidor me lo permite ya que lo he provado en unos servidores y me funciona bien pero hay uno por ahi que no me funcionaba y se debia por la configuracion que tenia y que ese provedor lo tenia en IIS pero solo fue cuestion de pedirles esa modificaion y me lo resolvieron,,

Última edición por GatorV; 15/09/2010 a las 10:22