Foros del Web » Programando para Internet » PHP »

Una pregunta dificil (me parece)

Estas en el tema de Una pregunta dificil (me parece) en el foro de PHP en Foros del Web. Hola. Utilizando PHP, realizo sistemas de gestión (de escritorio), no sitios de Internet. Por lo tanto, mis sistemas serán solamente utilizados en el navegador Firefox ...
  #1 (permalink)  
Antiguo 13/01/2007, 09:03
 
Fecha de Ingreso: septiembre-2005
Mensajes: 80
Antigüedad: 19 años, 2 meses
Puntos: 0
Una pregunta dificil (me parece)

Hola.

Utilizando PHP, realizo sistemas de gestión (de escritorio), no sitios de Internet. Por lo tanto, mis sistemas serán solamente utilizados en el navegador Firefox y/o k-meleon.

Suelo guardar muchos datos en $_SESSION para tener algunas variables disponibles al pasar de .php en .php. Yo sabía que la session cambiaba (o era única) para cada cliente que se conecta. Pero, he aquí la duda, por la que acudo a sus conocimientos:
  • Si abro dos ventanas (con mi sistema) del navegador en la misma PC
  • O abro dos pestañas (con mi sistema) dentro de la misma ventana del navegador

En ambos casos la session usada es la misma. Osea entre ambas instancias se comparten los valores del array $_SESSION. O dicho de otra manera, la session no cambia dentro de una PC (me parece)

Esta forma de manejo, puede que le sirva a la mayoría de los los programadores, pero a mi me jugó una mala pasada. Pues necesitaría lograr que ambas pestañas o ventanas dentro de la misma PC, NO compartan la session.

¿Se les ocurre alguna manera de diferenciar si me estan ingresando al sistema desde una nueva pestaña/ventana de Firefox?

Por lo que investigué, el array $_SERVER trae una entrada REMOTE_PORT que cada tanto cambia. Pero no lo hace cada vez que abro una pestaña. No me queda claro cada cuanto tiempo, o bajo que circunstancias cambia. Porque me parece que ese puede ser un dato que me haga dar cuenta que es una nueva ventana/pestaña la que está ingresando al sitio.

¿Alguien tiene alguna pista, idea para este asunto?

muchas gracias
  #2 (permalink)  
Antiguo 13/01/2007, 09:19
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Re: Una pregunta dificil (me parece)

Creo tienes un poco confuso el entendimiento de las Sesiones. Estas son unicas por cada instancia que generas, ahora como se guardan? via cookies. PHP, envia un cookie con el SessionID a tu browser y tu browser cada que le haces un request a cada pagina le envia ese SessionID y se inicia la session.

Haz esta prueba, en tu misma PC entra una vez via Firefox y la otra via IE o kmeleon, y vas a ver que son sesiones diferentes aun en tu misma PC, esto es porque son unicas por cada instancia del navegador, cuando tu abres una pestaña, esta pestaña no es una instancia nueva sino una copia por lo cual comparte cookies con la otra pestaña y por ende te crea la misma sesion.

Espero con esto te resuelva tu duda, un Saludo.
  #3 (permalink)  
Antiguo 13/01/2007, 09:39
 
Fecha de Ingreso: septiembre-2005
Mensajes: 80
Antigüedad: 19 años, 2 meses
Puntos: 0
Re: Una pregunta dificil (me parece)

Gracias. Avance algo pero no mucho.

No sabia que la session se grababa en una cookie.
Pero si tenia claro lo de una session por cada navegador.

Ahora....sigo sin mi solución de fondo. ¿Como logro distinguir que mi sistema se esta abriendo en dos pestañas/ventanas del mismo navegador?

¿Alguna idea? Porque si o si, necesito, guardar ciertos datos separados por cada vez que levanten una instancia de mi sistema.

Gracias
  #4 (permalink)  
Antiguo 13/01/2007, 15:10
Avatar de urgido  
Fecha de Ingreso: febrero-2005
Mensajes: 2.351
Antigüedad: 19 años, 9 meses
Puntos: 25
Re: Una pregunta dificil (me parece)

Registra cada sesión de esta forma al inicio de tu página intenta hacer un if para verificar si la sesión ya esta registrada junto con la ip. Saludos
__________________
Hospedaje Web al mejor costo!
  #5 (permalink)  
Antiguo 13/01/2007, 15:55
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Re: Una pregunta dificil (me parece)

Desgraciadamente no creo que puedas verificar si esta abierto en mas de una tab.
  #6 (permalink)  
Antiguo 13/01/2007, 16:32
Avatar de urgido  
Fecha de Ingreso: febrero-2005
Mensajes: 2.351
Antigüedad: 19 años, 9 meses
Puntos: 25
Re: Una pregunta dificil (me parece)

si se puede por que la sentencia repetitiva con sesiones si es válida. Yo pensaba igual que GatoV pero si s epued emucho más si la inicias con mysql para almacenar datos.
__________________
Hospedaje Web al mejor costo!
  #7 (permalink)  
Antiguo 13/01/2007, 18:18
Avatar de Nefertiter  
Fecha de Ingreso: enero-2003
Ubicación: Rosario
Mensajes: 1.316
Antigüedad: 21 años, 10 meses
Puntos: 9
Re: Una pregunta dificil (me parece)

Cita:
Registra cada sesión de esta forma al inicio de tu página intenta hacer un if para verificar si la sesión ya esta registrada junto con la ip. Saludos
eso no tiene sentido

Cita:
Desgraciadamente no creo que puedas verificar si esta abierto en mas de una tab.
Error, claro que puedes!

la variable $_SERVER['REMOTE_PORT'], te indica el puerto a traves del cual se inicio la peticion de tu pagina, para cada TAB existe un puerto distinto.

Saludos
  #8 (permalink)  
Antiguo 13/01/2007, 18:21
Avatar de urgido  
Fecha de Ingreso: febrero-2005
Mensajes: 2.351
Antigüedad: 19 años, 9 meses
Puntos: 25
Re: Una pregunta dificil (me parece)

muy corta la explicación y lo que según tú dices no tiene sentido ami me soluciona problema, hay distintas formas de aplicar metodos que muchos empleamos y que otros no saben emplear. Saludos
__________________
Hospedaje Web al mejor costo!
  #9 (permalink)  
Antiguo 13/01/2007, 18:24
Avatar de Nefertiter  
Fecha de Ingreso: enero-2003
Ubicación: Rosario
Mensajes: 1.316
Antigüedad: 21 años, 10 meses
Puntos: 9
Re: Una pregunta dificil (me parece)

urgido, yo leo lo que vos pusiste y no veo como soluciona las cosas, tal vez si lo explicas seria otra la cosa...
Saludos
  #10 (permalink)  
Antiguo 14/01/2007, 04:35
Avatar de blakeyed  
Fecha de Ingreso: marzo-2004
Ubicación: Ahora mismo, Málaga
Mensajes: 78
Antigüedad: 20 años, 8 meses
Puntos: 0
Re: Una pregunta dificil (me parece)

Lo que puedes hacer también es iniciar Firefox con diferentes Profiles. Al iniciar hazlo: Firefox -ProfileManager y crea varios perfiles. Saldrán con sesiones diferentes.

O si se inician en la máquina coge el archivo de hosts y crea alias al host donde tienes la aplicacion, imaginemos que tu aplicación corre en 192.168.0.1, pues que tu hosts sea algo como:

127.0.0.1 localhost (esta tiene que estar ya)
192.168.0.1 miaplicacion1
192.168.0.1 miaplicacion2
192.168.0.1 miaplicacion3
192.168.0.1 miaplicacion4

Así, que una pestaña de abra miaplicacion1, otra miaplicacion2... y la última que abra 192.168.0.1; cada pestaña tendrá una sesión diferente.

Otra posibilidad es que en cada una de las páginas sucesivas pases un parámetro según la instancia en la que te encuentres, pero tendrías que programar muchísimo y no sería efectivo.

Siento no poder ofrecerte una solución mejor
__________________
Saludos

Gaspar Fernández
Poesía Binaria
  #11 (permalink)  
Antiguo 15/01/2007, 06:26
 
Fecha de Ingreso: septiembre-2005
Mensajes: 80
Antigüedad: 19 años, 2 meses
Puntos: 0
Re: Una pregunta dificil (me parece)

Encontré este árticulo en internet, (está en Inglés) que trata este tema puntualmente y da una solución en el siguiente enlace: sugarcrm.com/wiki/index.php?title=PHP_Sessions

Creo que con esto podemos dar por finalizado el tema

Última edición por marcoas; 15/01/2007 a las 08:20
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 14:10.