Foros del Web » Programando para Internet » PHP »

sesiones mozilla frente a ie5

Estas en el tema de sesiones mozilla frente a ie5 en el foro de PHP en Foros del Web. Aupa, Me pasa una cosa un poco rara y queria saber porque. Tengo una aplicacion desarollada en php (que yo he confeccionado, no se si ...
  #1 (permalink)  
Antiguo 22/06/2004, 11:52
 
Fecha de Ingreso: mayo-2004
Mensajes: 70
Antigüedad: 13 años, 7 meses
Puntos: 0
Pregunta sesiones mozilla frente a ie5

Aupa,

Me pasa una cosa un poco rara y queria saber porque. Tengo una aplicacion desarollada en php (que yo he confeccionado, no se si bien o mal), un servidor Apache montado en WXP, y utilizo como navegador Mozilla o ie6.
Cuando utilizo ie6 y creo dos ventanas entro en la aplicacion con diferentes usuarios y todo bien. Pero cuando lo hago con mozilla, me pasa lo siguiente cuando abro la segunda ventana del navegador para abrir denuevo el programa con otro usuario, el primer mozilla con el primer usuario coge el valor de la segunda ventana de mozilla que he creado.
No se si me he expresado con claridad.

¿Es por alguna configuracion de mozilla?
Habre programado mal mis sesiones??


Gracias,

Un saludo,

Niko.
  #2 (permalink)  
Antiguo 22/06/2004, 13:05
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Y .. conoces como propagas el SID? (en tu aplicación y como lo usa la configuración de PHP)

Por qué el SID se puede propagar por el URL o por cookies ..

Un saludo,
  #3 (permalink)  
Antiguo 22/06/2004, 13:23
 
Fecha de Ingreso: mayo-2004
Mensajes: 70
Antigüedad: 13 años, 7 meses
Puntos: 0
Lo hago por la url, en ningun momento utilizo cookies que yo sepa. Respecto a lo de la configuracion de php tampoco se lo que hay que mirar.

Lo que es raro es que me funcione bien con un navegador y que con otro no.¿no?

¿Si me puedes decir donde mirar eso?


Gracias,

Un saludo,

Niko.
  #4 (permalink)  
Antiguo 22/06/2004, 13:33
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pues .. lo primero que tienes que saber siempre para ver el por qué fallan las sesiones es la configuración de estas en tu servidor y saber como lo hace tu programación.

Paste un phpinfo() a tu servidor y revisa el apartado de directivas de sesiones: (o mira tu php.ini si tienes acceso a el)

session.use_cookies
session.use_trans_sid

Y todas las del tema ..

No pusistes nada de programación sobre tu código y como propagas el SID .. dices que "por el URL" pero si no conocias lo que es el "SID" ni como lo estás propagando .. mejor pon algo de código que usas de sesiones (sobre todo un link que uses para redireccionar a otra página) y constatar como propages el SID.

Todo esto no sirve nada más para intentar ver si propagas el SID en cookies o no y empezar a hacer pruebas sobre ese tema en el navegador que te dé problemas y sobre todo evaluar no lo que hace tu aplicación sino el valor del "SID" en cada paso de tu aplicación .. Es decir .. no "suponer" nada sino probarlo.

Por ejemplo ..si propagas el SID en cookies si tu navegador de pruebas no acepta cookies por ahí tendrás problemas.

Un saludo,
  #5 (permalink)  
Antiguo 22/06/2004, 14:11
 
Fecha de Ingreso: junio-2004
Ubicación: Stgo, Chile
Mensajes: 51
Antigüedad: 13 años, 5 meses
Puntos: 0
A mi me pasaba lo mismo ....
Deshabilité la caché y el uso de cookies
Implementé el paso del id sesion por la URL y problema resuelto.


Saludos
  #6 (permalink)  
Antiguo 23/06/2004, 10:12
 
Fecha de Ingreso: mayo-2004
Mensajes: 70
Antigüedad: 13 años, 7 meses
Puntos: 0
Pregunta

Aupa,

He mirado lo de los valores esos que me comentas y estan puestos asi:
Código:
session.use_cookies--> on
session.use_trans_sid -->off
He puesto el valor de session.use_trans_sid y el error es el mismo.

Te pongo aqui el codigo como lo he escrito:

uso un index.php que al principio tiene lo siguiente:

Código PHP:
/**********************************************************************************************************
* Fase 1 :Preprocesamiento
* Establecimiento de la sesion procesamiento de las acciones antes de enviar los encabezados
***********************************************************************************************************/

  
include ('funciones/funciones.php');
  
session_start();


//variable que va contener las diferentes opciones del menu ie: Account_settings ...
  
$action $HTTP_GET_VARS['action'];
  
$buttons = array();

  
//se adjunta a esta si hay contenidos antes de procesar el encabezado
  
$status '';


  
// es necesario procesar antes que nada las solicitudes de conexion y desconexion
  
if($HTTP_POST_VARS['codusuario']&&$HTTP_POST_VARS['password'])
  {
    
$login login($HTTP_POST_VARS['codusuario'], $HTTP_POST_VARS['password']);
    
$HTTP_SESSION_VARS['usuario'] = $HTTP_POST_VARS['codusuario'];

    if(
$login == 'admin')
    {
      
$status .= "<p><b>".get_real_name($HTTP_POST_VARS['codusuario']).
                 
"</b> se conecto "." correctamente como  <b>Administrator</b></p>
                  <br /><br /><br /><br /><br />"
;
      
$HTTP_SESSION_VARS['admin_user'] = $HTTP_POST_VARS['codusuario'];


    }
    else if(
$login == 'normal')
    {
      
$status .= "<p><b>".get_real_name($HTTP_POST_VARS['codusuario'])."</b> se conecto correctamente en la aplicacion"
                 
." successfully.</p><br /><br />";
      
$HTTP_SESSION_VARS['normal_user'] = $HTTP_POST_VARS['codusuario'];
    }
    else
    {
      
$status .= "<p>Conectese por favor</p><br />";
    }
  }

  if(
$action == 'log-out')
  {
    unset(
$action);
    unset(
$HTTP_SESSION_VARS);
    
session_destroy();
  } 
Luego tengo una variable action que puede coger varios valores en funcion de la accion que se quiera realizar y del usuario que se sea

algo de este estilo:

Código PHP:
    switch ( $action )
    {
      case 
'account-settings' :
      {
        
display_account_form(get_email(),
              
get_real_name(get_email()));
        break;
      } 
y para el paso de varibles uso simples form, con inputs: de este estilo:

Código PHP:
 <center>
          <
form name "formul" action "index.php?action=borrar-usuario" method "post" method "post">
          <
table border 0 cellpadding 6 cellspacing 0>
          <
tr>
            <
th colspan 2 bgcolor '#5B69A6' rowspan 16>
            
Resultados de la busqueda
            
</th>
          </
tr>
          <
table

No se si con esto te vale.
Es que realmente no se como va aqui lo del SID.
A ver si me puedes ayudar,

Gracias,

un saludo,

Niko.
  #7 (permalink)  
Antiguo 23/06/2004, 10:38
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Si usas PHP 4.1.0 o superior . usa preferentemente los arrays superglobales en lugar de los $HTTP_xxx_VARS ..

Para las sesiones sería:
$_SESSION['variable']

Por qué .. por ejemplo esto:

unset($HTTP_SESSION_VARS);
no sé si funciona correctamente .. lo que es si usas $_SESSION si funciona bien.

-----

Sobre el problema concreto .. si usas session.use_cookies a ON .. estás propagando el SID en cookies así que el navegador que uses debe aceptar cookies (revisalo en tus navegadores).

El hecho de usar session.use_trans_sid = ON simplemente (para tu caso) sería para los casos que tengas un navegador que no acepte cookies la "cookie" no se creará y se propagará el SID en el URL .. pero no en todos los casos (ejemplo no lo hace en redireccionamientos vía javasript, header ("Location: ...") .. en esos casos hay que propagar el SID a mano.)

La propia creación de la cookie es la que "podría" estar dando problemas en ese navegador. En el mismo php.ini veras otros parámetros para definir la cookie que crean las sesiones (si usas propagación del SID en cookies como lo estás haciendo) donde se definen propiedades de la cookie como el tiempo de expiración o el directorio y ambito del domino ..

De todo esto habla el manual oficial de PHP: www.php.net/session

Un saludo,
  #8 (permalink)  
Antiguo 23/06/2004, 10:59
 
Fecha de Ingreso: mayo-2004
Mensajes: 70
Antigüedad: 13 años, 7 meses
Puntos: 0
De acuerdo,

Voy a revisar entonces todos los parametros del php.ini de las cookies para poder ver si me funciona bien con el mozilla.
De todas maneras he estado mirando en otras webs y desaconsejan el poner el valor de session.use_trans_sid = ON pues dicen que crea problemas de seguridad.

Muchas gracias,

Un saludo,

Niko.
  #9 (permalink)  
Antiguo 23/06/2004, 11:23
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Desaconsejan propagar el SID en el URL (sea que lo haga PHP automático: session.use_trans_sid = ON o bien lo hagas tu a mano usando la constante SID o session_name() y session_id() ..)

Lo que se suele aconsejar es que se propage el SID en cookeis (pese que esto requiera de un navegador que las acepte con sus pro's y contras).

Todo esto viene del "que significa el SID" .. El SID asocia bajo un identificador único (un 09asdf89798asdf87 o similar (de ID aleatorio)) que crea PHP para identificar y asociar el archivo de la sesión que está en curso con sus datos que lo contienen y el cliente (navegador) que los esté usando .. Por eso, es tan "necesario" propagar ese SID y que sea ese mismo y no otro. Si lo "pierdes" las variables (sesión en si) la tendras en el servidor .. pero ya no tendras ese "nº" que las relaciona así que no podras acceder a ellas.

Bajo la misma filosofía .. si por "error" me "das" un link con ese SID en el propagado ejemplo: nose.php?PHPSESSID=a8789asd7f87sdf657865asdf .. podría acceder a tus datos de tu sesión abriendo esa sesión en otro navegador. Por suerte PHP tiene ahora otras directivas que revisan el "referer" de quien creó esa sesión (cliente) y quien la está pidiendo para eviatar esos problemas .. Pero, con cookies desaparece ese problema (casi) por qué en tus links nunca viajará el SID en ellos por qué ya lo hará en la cookie con lo cual ganas en seguridad en ese aspecto.

Un saludo,
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 09:41.